webForumDet fria alternativet

register_globals

6 svar · 261 visningar · startad av mr.mainline

mr.mainlineMedlem sedan feb. 2003777 inlägg
#1

Kan någon förklara detta med register_global för en nybörjare,jag vet att det är för att öka säkerheten,men jag har ett skript där det är satt på on,och min server är det off på,så jag behöver ändra koden lite så att det funkar,jag har sökt på detta forum,men hittar inget som jag förstår.(det är mest det var det är jag ska ändra)

PeddaMedlem sedan juni 20006 032 inlägg
#2

Här kan du läsa om register_globals

Men det man måste tänka på är att när man skickar en variabel från en sida till en annan så är det speciellt.

exempel på en länk.
sida.php?namn=mainline

När du ska skriva ut värdet på variabeln $namn
så kan du inte skriva
echo $namn;
utan du måste skriva
echo $_GET['namn'];

Och likadant om variabeln kommer från ett formulär med POST.
echo $_POST['namn'];

Det är det man måste tänka på.

mr.mainlineMedlem sedan feb. 2003777 inlägg
#3

ok,då sk väl detta stämma?
// Visa länk för att lägga till ett nytt inlägg
echo '<a href="'.$_GET[’PHP_SELF’].'?add=1">Nytt inlägg</a><br>';

MatteMedlem sedan aug. 20002 975 inlägg
#4

När man skickar något med en länk så kommer PHP att hitta variabeln i GET-arrayen, typ $_GET['variabel1'].

Hämtar PHP cookies kommer de att läggas i COOKIE-arrayen typ $_COOKIE['variabel2'].

När man postar ett formulär läggs variablerna i POST-arrayen, typ $_POST['variabel3'].

Aktuell sida hittar du SERVER-arrayen som $_SERVER['PHP_SELF'].

Om register_globals är satt kommer dessutom variblerna $variabel1, $variabel2, $variabel3 och $PHP_SELF att finnas i skriptet.

Du bör i vilket fall använda Array-variablerna, då dina skript kommer att fungera både då register_globals är satt eller ej.
Och som sagt, några säkerhetsrisker minskar du samtidigt, men de försvinner inte bara för att du använder dina array-variabler.

[EDIT]Lite sen :)

MatteMedlem sedan aug. 20002 975 inlägg
#5

mr.mainline skrev:

ok,då sk väl detta stämma?
// Visa länk för att lägga till ett nytt inlägg
echo '<a href="'.$_GET[’PHP_SELF’].'?add=1">Nytt inlägg</a><br>';

Vet inte vad du använder för fnuttar runt ditt array-index, men ändra till vanliga apostrofer:

echo '<a href="'.$_SERVER['PHP_SELF'].'?add=1">Nytt inlägg</a><br>';

Och det är nog $_SERVER['PHP_SELF'] du menar.

mr.mainlineMedlem sedan feb. 2003777 inlägg
#6

orginalkoden ser ut så här:
echo '<a href="'.$PHP_SELF.'?add=1">Nytt inlägg</a><br>';

PeddaMedlem sedan juni 20006 032 inlägg
#7

Då ska du ändra till det som matte skrev.

echo '<a href="'.$_SERVER['PHP_SELF'].'?add=1">Nytt inlägg</a><br>';
134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)