Sven Rautenberg: Schleife auf PHP 4.2.2 aber nicht auf 4.3.2 ?? WICHTIG

Beitrag lesen

Moin!

Ich habe folgende Schleife, die leider nur auf 4.2.2 läuft aber nicht auf 4.3.2.

So läuft Sie auf 4.2.2 :
<?

while ($i<10) {
   echo $i.' test <br>';
     $i++;
   }
?>

Bei 4.3.2 muß man die $i vorher eine Wert zuweisen:
<?
$i=0;
   while ($i<10) {
   echo $i.' test <br>';
     $i++;
   }
?>

Bei PHP werden die neuen Versionen zunehmend auf Sicherheit getrimmt. Dementsprechend wirft die Benutzung einer nicht initialisierten Variable zumindest eine NOTICE, wahrscheinlich auch mehr. Dies ist aus Sicherheitssicht absolut notwendig.

Es hat schon zuviele Skripte gegeben, bei denen man aufgrund von register_globals=on Werte von außen einschleppen konnte. Das geht bei deinem 4.2.2-Skript auch: skript.php?i=10 aufrufen, und schon läuft deine Schleife nicht mehr 10 mal.

Wenn du so eine dumme Schleife wie oben benutzen willst, warum nimmst du keine for-Schleife?

Kann mir jemand erklären woran das liegen kann? Was muß evtl. in der PHP.ini der neueren Version geändern werden, damit auch "alte" Scripte laufen?

Ändere deine Skripte. Besser ist es auf jeden Fall.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|