Avatar billede webfear Nybegynder
04. februar 2003 - 09:10 Der er 14 kommentarer og
1 løsning

Undefined variable?

Hej
Jeg har lige flyttet webhotel, men jeg har lidt problemer med at få det hele til at køre på den nye server.

Jeg får fejlen undefined variable hver gang at jeg bruger en variabel, men så vidt jeg har lært, så skal man heller ikke definere om variablen er en integer eller string el. lign i php. Men der er måske forskel på versionerne?

Er der nogle der kender denne fejl?

I kan se fejlene på www.lkf-viborg.dk og sig til hvis I skal se noget kode

med venlig hilsen
Mette Fournais
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 09:16 #1
Det er fordi register globas på serveren er slået fra Så i stedet skal du prøve når det kalder dine variabler at tjekke om de rent faktisk er sat inden du bruger dem.

<?

if(!isset($_POST['variabel'])){
echo "den er ikke sat");
}else{
echo "jeg er sat ".$_POST['variabel'];
}

?>

/Nikolaj
Avatar billede webfear Nybegynder
04. februar 2003 - 09:19 #2
mit webhotel er ved struernet. Ved du om jeg kan bede dem om at sætte register globals til for mit webhotel, eller er det noget der gælder hele serveren?
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 09:23 #3
Du får formodenligt ikke dem til at slå det til. De er jo netop slået fra af sikkerhedsgrunde og alle Apache servere anbefales at slå dem fra.

Vænd dig hellere til at scripte så det fungerer begge veje. Det vil sige til register_globals off.

eller du kan nappe scriptet hr og indsætte det på dine sider, men det bliver jo vældigt i længden. http://www.azero.dk/?/support/programmering/php/register-globals/

/Nikolaj
Avatar billede jakoba Nybegynder
04. februar 2003 - 09:32 #4
Det du har lært er også forkert.

det er ikke "ligegyldigt om man definerer sine variable". Den korrerekte formulering er: "man kan nogen gange slippe afsted med ikke at gøre det".

og samtidig kan man indstille php til ikke at vise fejlmelding når man laver dårlig kode.

du kan sætte niveaoet for hvor slemme fejl skal være før php fortæller dig om dem med http://dk.php.net/manual/en/function.error-reporting.php

læs om register_globals her: http://dk.php.net/manual/en/security.registerglobals.php

men den 'korrekte' løsning er at rette koden så der ikke er nogen fejl i den.

mvh JakobA
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 09:34 #5
hehe tak :))
Avatar billede webfear Nybegynder
04. februar 2003 - 10:00 #6
Tak, nu har jeg fået svar på mit spørgsmål, men jeg har ikke løst mit problem, så kan vi ikke fortsætte her til 30 point ekstra:

Jeg kan godt se at jeg skal have ændret min koden, men foreløbig så skal jeg have hjemmesiden hurtigt op og køre igen. Jeg har indsat koden fra dit link Nikolaj, men som du kan se så giver det nogle nye fejl.
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 10:12 #7
Du skal huske at deklarere alle dine variabler også selvom de ikke indeholder noget.

if(!isset($variabel)){
$variabel = "hej";
}else{
echo "jeg er sat så vi gør ikke noget"
}

og så skal du desuden fremover bruge :

$_GET['variabel']
$_POST['variabel']
$_SESSION['variabel']

D.v.s :

if(!isset($_SESSION['session_variabel'])){
$_SESSION['session_variabel'] = "hej igen";
}else{
// session er sat så vi gør ikke noget
}
Avatar billede webfear Nybegynder
04. februar 2003 - 10:53 #8
tak for det - nu virker det som det skal. Dog skal jeg lige have ændret alle mine variabler ved lejlighed.

Kan jeg øge pointene til 60 i dette spørgsmål i stedet for at oprette et nyt, og lægger i lige et svar?
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 10:55 #9
Mit svar kommer ihvertilfald her - Vent lige på Jakoba :)
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 10:56 #10
uha der er godt nok en hel del fejl nu - Er du sikker på at det funker :)
Avatar billede webfear Nybegynder
04. februar 2003 - 11:12 #11
hmm det var der ikke ved mig, men jeg har rettet det lidt til, hvordan ser det ud nu?
Avatar billede jakoba Nybegynder
04. februar 2003 - 11:12 #12
nej tak du.
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 11:20 #13
Der er stadigt nogle fejl hos mig, men det kan være de retter sig efterhånden som du får rettet dine variabler. Hust at du skal uploade for at kunne se forskel.
Avatar billede webfear Nybegynder
04. februar 2003 - 11:28 #14
nåå det var fordi at du selvfølgelig ikke var logget ind - og jeg havde kun rettet variabler for siderne efter login :-)
Avatar billede nikolajdu Nybegynder
04. februar 2003 - 11:29 #15
:))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester