Cookie auf weiteren Seiten nutzen

BFreakout

Erfahrenes Mitglied
Hiho@all...

ich mal wieder ;o) und steh vor einem Problem...


also dies ist die erste page

view.php?ref=BFreakout

hier wird ein Cookie erstellt wo der Name "BFreakout" in einem Cookie gespeichert wird...

bei der 3 Seite kommt email.php
email.php

und soll den wert der Cookie auslesen... bekommt das aber irgendwie nich hin :o/

hier mal die wichtigsten Code schnipsel...

Erste PHP Datei... z.B. view.php?ref=BFreakout

Code:
if($_GET['ref']) 
{	
  $id = $_GET['ref'];
	
   SetCookie ("ref",$_GET['ref']);
// SetCookie ("ref",$_GET['ref']);
// SetCookie ("ref",$_GET['ref']);
// SetCookie ("ref",$_GET['ref']);
// SetCookie ("ref",$_GET['ref']);

  session_start();
  $_SESSION['ref'] = $_GET['ref'];
}
?>

hier die zweite oder dritte datei....

Code:
session_start();

$ref = $_COOKIE['ref'];

if (!$ref)
{
	$ref = $_SESSION['ref']; 
}


if (!$ref)
  exit;


würde mich ends um Hilfe freuen...

Gruss BFreakout
 
Das freut mich, dass dein Script keine Fehlermeldung verursacht ... ich schätze du musst den [phpf]setCookie[/phpf] mit ein wenig mehr Informationen füttern!
 
hatte ich auch schon, soll aber nich schlimm sein beim auslassen... habs geändert und es geht immer noch nicht :o/

Code:
if($_GET['ref']) 
{	
  $id = $_GET['ref'];
  	
  SetCookie ("ref", $id, "time()+60*60*24*30", "/", "www.web-enliven.de", "1");

  session_start();
  $_SESSION['ref'] = $_GET['ref'];
}

und gibt auch keine Fehlermeldungen ;o)

gibt es irgendwelche bestimmten Regeln wo sie nicht mehr abgerufen werden können oder?! Ich hab das übrigends auf 3 Rechnern getestet, wo alle Cookies an sind *g*
 
oh man... habs versucht... geht auch nich... mmmhh... 0 bedeutet auch das es nur für eine SSL verbindung gedacht is, glaub ich...

Code:
<?php  

if($_GET['ref']) 
{	
  $id = $_GET['ref'];
  
  // Hier wird die gewählte seite geladen
  header("Location: http://www.web-enliven.de/service/su/su.htm");
  	
  SetCookie ("ref", $id, "time()+60*60*24*30", "/", "www.web-enliven.de", "0");


  session_start();
  $_SESSION['ref'] = $_GET['ref'];

  include "test/affconfig.php";   

  mysql_connect($server, $db_user, $db_pass) 
    or die ("Database CONNECT Error (line 17)"); 
  mysql_db_query($database, "INSERT INTO test VALUES ('".$_GET['ref']."', '$test ', '$test', '$test ', '$test ', '$test ', '')"); 

}
?>

Das ist der Originalcode... oder es ist, weil die nächste seite durch header geladen wird oder
 
du könntest einmal auf der Seite wo du das Cookie gesetzt hast direkt danach ausgeben was so allgemein im Cookie rumlümmelt

print_r($_COOKIE);

dann siehst du ob, und auch was da so an Werten abgelegt wurde.

Die erste 0 die du nach dem Namen und dem Wert setzen würdest entspricht der expire time, 0 heißt damit wenn du die Browser Instanz verlässt sollte der Cookie ablaufen.

Ich gehe nun einmal davon aus, dass du sowas nicht gemacht hast - also Browser zu anderen auf oder so? Dann muss da nämlich eine expire Zeit angegeben werden.

mfg
Sebastian
 
ok... kommt wohl das richtige ergebnis raus...

Array ( [ref] => BFreakout [PHPSESSID] => f1ec361a64fa2be9da423df9ef64fb )

aber das mit der 0 hab ich nicht verstanden?! ich glaub auch, wenn der Browser irgendwie wechselt das der Cookie dann gekillt is?!...
 
Das ist ja schon mal mehr oder weniger was :)

also die Ausgabe von dir sieht gut aus. Zur der 0

die funktion sieht ja so aus

setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

der name ist req, der rest optional - optional bei der expire zeit heißt aber, das der Cookie nach der Laufzeit abläuft. Wenn du den Browser zu machst ist die Laufzeit rum, der Cookie quasi abgelaufen und sollte (wenn das alles so klappt wie es theoretisch soll) gelöscht werden.


setzt einfach mal die zeit auf 100 sekunden, die angabe ist nen Unix Timestamp, also $expire = time()+100;

Du kannst ja auch mal nen Auge in den Ordner werfen wo deine Cookies gespeichert werden.

Nebenbei ein Cookie ohne expire Zeit kann in der regel auch über eine session gelöst werden, da ja allgemein Cookies von vielen als böse angesehen werden ist das meiner meinung nach auch ne bessere option.

Sebastian
 
hab das jetzt so geändert... geht aber immer noch nich *schnief*

Code:
SetCookie ("ref", $id, "time()+100", "/", "www.web-enliven.de", "0");

ich vermute das es an

Code:
header("Location: http://www.web-enliven.de");

header liegt oder so?!...
 
Zurück