Register Globals már a PHP 5.3.0 verzióban is elítélt, helytelenített, és a PHP 5.4.0. verziónál el is távolították.
GLOBALS változók beállítása.
(Ha rendszergazda jogosúltsággal rendelkezünk. Vagy felvesszük rendszergazdával a kapcsolatot, és megkérjük, hogy állítsa be nekünk.)
PHP.ini fájlban, a variables_order = "EGPCS" meghatározással állíthatjuk be, Hogy mely GLOBALS változók legyenek érvényben.
Rövidítések: G, P, C, E, S; azaz, GET, POST, COOKIE, ENV, SERVER.
<?php echo'<pre>'; echo'<hr></hr><h5>$_SERVER</h5>'; echo print_r($_SERVER); echo'<hr></hr><h5>$_ENV</h5>'; echo print_r($_ENV); echo'<hr></hr><h5>$_REQUEST</h5>'; echo print_r($_REQUEST); echo'<hr></hr><h5>$_GET</h5>'; echo print_r($_GET); echo'<hr></hr><h5>$_POST</h5>'; echo print_r($_POST); echo'<hr></hr><h5>$_COOKIE</h5>'; echo print_r($_COOKIE); echo'<hr></hr><h5>$_FILES</h5>'; echo print_r($_FILES); echo'</pre>'; ?>
<?php print ("<p>". $_SERVER['HTTP_HOST']."</p>"); ?>
A következő php.ini direktívák, eltávolításra kerültek:
A következő php.ini direktívák, bevezetésre kerültek:
A következő php.ini irányelvek, megváltoztak:
Nem kötelező, csak ajánlott beállítási értékek:
<p><b><u>Matematika űrlapunk</u></b></p> <form action="fájlnév.php" method="POST"> Első érték: ------- <input type="text" name="egy" value="2" /><br /> Második érték:-- <input type="text" name="ketto" value="3" /><br /> <p> <input type='submit' name='valami' value="Matematika TESZT mehet? Kattins ide!"> </p> </form> <p> <?php $a = $_POST['egy']; $b = $_POST['ketto']; echo "Első érték = ".$a."<br />"; echo "Második érték = ".$b; $c=$a+$b; echo "<br /><u>Matematika eredménye</u> ".$a."+".$b."=".$c; ?> </p>
PHP 5.4.34 verziónál a következő hibajelzéseket kapjuk:
Notice: Undefined index: egy in C:\Apache2.2\htdocs\teszt.php on line xx
Notice: Undefined index: ketto in C:\Apache2.2\htdocs\teszt.php on line xx
Hiba oka:
Ezen feltételnél, akkor aktiválódnak, ha felhasználó a submit gombra kattint. if(isset($_POST['valami'])) {$a=$POST['egy']; $b=$_POST['ketto'];} Ezen feltételnél, a submit gombra történő kattintás előtt aktiválódnak. if(empty($_POST['valami'])) {$_POST['egy']=""; $_POST['ketto']="";}
<p><b><u>Matematika űrlapunk</u></b></p> <form action="fájlnév.php" method="POST"> Első érték: ------- <input type="text" name="egy" value="2" /><br /> Második érték:-- <input type="text" name="ketto" value="3" /><br /> <p> <input type='submit' name='valami' value="Matematika TESZT mehet? Kattins ide!"> </p> </form> <p> <?php if(isset($_POST['valami'])) { $a = $_POST['egy']; $b = $_POST['ketto']; echo "Első érték = ".$a."<br />"; echo "Második érték = ".$b; $c=$a+$b; echo "<br /><u>Matematika eredménye</u> ".$a."+".$b."=".$c; } ?> </p>
<p><b><u>Matematika űrlapunk</u></b></p> <form action="fájlnév.php" method="POST"> Első érték: ------- <input type="text" name="egy" value="2" /><br /> Második érték:-- <input type="text" name="ketto" value="3" /><br /> <p> <input type='submit' name='valami' value="Matematika TESZT mehet? Kattins ide!"> </p> </form> <p> <?php if(empty($_POST['valami'])) {$_POST['egy']=""; $_POST['ketto']="";} $a = $_POST['egy']; $b = $_POST['ketto']; echo "Első érték = ".$a."<br />"; echo "Második érték = ".$b; $c=$a+$b; echo "<br /><u>Matematika eredménye</u> ".$a."+".$b."=".$c; ?> </p>
Megjegyzés:
Ez a bemutató script, űrlapkitöltési ellenőrzést is végez.
Sikeres teszt esetén, újabb teszt elvégzéséhez (ismétléshez), ki kell lépni ezen oldalról, majd ismételten be kell lépni!
<?php print "<h5><u>Töltse ki, a beviteli mezőket!</u></h5>"; $hiba=0; $elso_feltetel =(isset($_POST['elso_feltetel']))? $_POST['elso_feltetel']=1:0; if (empty($_POST['felh']) || empty($_POST['jelszo'])) { // Űrlap kitöltésének ellenőrzése. if (empty($_POST['felh'])) { $hibalista[]="Nem adta meg, felhasználói nevét!"; } if (empty($_POST['jelszo'])) { $hibalista[]="Nem adta meg, jelszavát!"; } $hiba = 1; // Ha nem kaptunk értéket, akkor űrlap kell. } else { // Ha van érték a mezőkben, akkor feldolgozhatjuk. $felh = $_POST["felh"]; print "Ön felhasználói neve: <b> ".$felh."</b><br />"; $jelszo = $_POST["jelszo"]; print "Ön jelszava: <b> ".$jelszo."</b>"; $hiba = 0; // Minden rendben, űrlap nem kell. } if ($hiba != 0) { // Ha, vannak űrlapkitöltési hibák, akkor a hibát, kiíratjuk. if ($elso_feltetel==1) foreach ( $hibalista as $i => $ertek ) { print ("$ertek<br>"); } if (empty($_POST['kuldes'])) { $_POST['felh']=""; $_POST['jelszo']=""; $_POST['elso_feltetel']=""; } // Űrlap létrehozása. echo ' <form method="post" action="'.$_SERVER['PHP_SELF'].'"> <p><strong>Felhasználói név:*</strong><br> <input type="text" name="felh" VALUE="'.$_POST['felh'].'" size=10 maxlength=> </p> <p><strong>Jelszó:*</strong><br> <input type="password" name="jelszo" VALUE="'.$_POST['jelszo'].'" size=10 maxlength=30> </p> <p><input type="submit" name="kuldes" VALUE="Teszt"></p> <input type="hidden" name="elso_feltetel" VALUE="'.$_POST['elso_feltetel'].'"> </form> ' ; } ?>
Megjegyzés:
PHP 5.4.xx verzióktól kezdve, minden olyan változót, melyet programunk fel fog dolgozni, közvetlen a feldolgozás megkezdésekor, vagy ezt megelőzően definiálni (indexelni) kell, azaz, értékadással együtt, létre kell hozni. (Például így: $POST['valami']=" "; vagy $tomb['valami']=NULL; )
A PHP 5.4.xx verziók valamelyikében megírt űrlapok és azok feldolgozási formátumait a PHP 5.4.xx előtti verziók is, hibátlanul feldolgozzák.
Fordítva ez nem igaz, PHP 5.4.xx előtti verziók valamelyikében megírt űrlapok és azok feldolgozási formátumait a PHP 5.4.xx verzióktól kezdve hibajelzést kapunk, ha a változók nem voltak előre definiálva (indexelve).
Ha valakinek már vannak kész programjai, melyet PHP 5.4.xx előtti verziók valamelyikében készített el, nem kell megsemmisíteni, továbbra is használhatja, csak a szükséges definíciókat (indexeléseket) kell a program megfelelő részén elhelyezni.
Az indexeléseket feltételhez kell kötni, melyet az isset vagy empty függvénnyel vizsgálunk meg.
Figyelem!
Ezen oldalon fent a zöld nyílra kattintunk, visszajutunk a PHP témakörökhöz.
Az ott lévő témakörök PHP 5.2.17-re készültek.
Ha programleírást másolunk ki, hogy a saját gépünkön egy újabb PHP 5.4.xx verzióban teszteljük annak működését, előfordulhat, hogy néhány programnál hibajelzést kapunk, akkor ezen oldalon leírtak alapján módosítsuk a programot!