Rolf B: Was meinst Du mit „anderer Server“?

Beitrag lesen

Hallo Martl,

$test = false;              // <<<----- der hier fehlt!
if(isset($_COOKIE['Keks'])){
		$test = true;
}

if($test){
// do something
}

und

if(isset($_COOKIE['Keks'])){
// do something
}

können nur in exakt einem Fall zu unterschiedlichen Ergebnissen führen: Falls $test zuvor schon auf true gesetzt war. Deswegen habe ich die Zeile hinzugefügt, wo es mit false vorbelegt wird, und "Der hier fehlt" dazugeschrieben.

Andernfalls muss das Ergebnis identisch sein. Ich kann mir keinen PHP Bug vorstellen, der den von Dir behaupteten Unterschied hervorrufen könnte.

Wenn das bei Dir nicht der Fall zu sein scheint, spielen äußere Faktoren hinein, die man aus deinem geposteten Code nicht erkennt. Deswegen sagte ich "behauptet". Du behauptest, dass es einen Unterschied macht, aber deine Beweiskette muss irgendwo ein Loch haben. Auch wenn Du es nicht siehst.

Was passiert hiermit:

echo "[";
if(isset($_COOKIE['Keks'])) {
  echo "1";
}
if($test) {
  echo "2";
}
if(isset($_COOKIE['Keks'])) {
  $test = true;
  echo "3;
}
if($test) {
  echo "4";
}
echo "]";

Die Ausgabe MUSS [134] sein, wenn der Cookie da ist, und [], wenn er fehlt. Eine 2 darf nicht erscheinen. Und [34] kann definitiv nicht sein, das wäre ein PHP Bug.

Rolf

--
sumpsi - posui - obstruxi