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!