08. december 2000 - 10:04Der er
39 kommentarer og 1 løsning
Opsætningsproblem - apache/php4
Jeg har fundet ud af at min server mangler noget opsætning. Problemet er bare at jeg ikke ved hvad det er der skal ændres!
Problemet opstår ved et afstemingsscript der smider en cookie. Selvet scriptet virker fint, men der kommer en fejl om undefined variable alligevel. Fejlen ligger ikke i scriptet, da jeg har testet det på en server der også kører NT/Apache/php4 og her virkede det.
Det kan netop være et opsætningsproblem - og måske ikke alligevel.
\"Normalt\" vil PHP ikke checke for brug af udefinerede variabler, de vil blot være lig med den tomme streng eller lig med 0. Men man kan sætte PHP til at checke for det enten i .ini filen, eller med et kald til error_reporting på siden.
Du kan nu gøre 3 ting:
1) ændre i .ini filen (linien: error_reporting = 7 ) 2) sætte en error_reporting(7); ind øverst i dine scripts Se http://www.php.net/manual/function.error-reporting.php for detaljer. 7 er vist \"mest normalt\". 3) altid spørge om isset($variabel) før du bruger den. F.eks. altid if (!$isset($variabel)) { $variabel=\"\"; }
Hvor ligger fejlen ? Den bliver ved med at kyle fejl i hovedet af mig. Nogen gange virker scriptet og andre gange gør det ikke. Det har lykkedes mig at få scriptet til ikke at komme med fejl efter man har stemt på min egen maskine. Men på vores server som har samme opsætning der virker det ikke. Men det sjove er så at hvis jeg læser siden ind på serveren\'s browser fra serveren selv så virker det men der kommer alligevel fejl. Og endnu mere komisk så virker det ikke hvis jeg går med serveren\'s browser ind på min maskine og læser siden.
Jeg tror du yderligere begår den fejl at tro, at når du har sat en cookie med setcookie(\"status\",\"stemt16\") så er der en $status tilgængelig på samme side, men det er først på *næste* side! Du bør derfor:
Jeg mener følgende, og jeg tror din betingelse ...$status==\"stemt16\"... vender forkert - men jeg kan ikke gennemskue det: Og så har jeg fjernet en tom linie der ville bevirke at du ikke kunne sætte den anden cookie.
Hm.. hvad siger du til at jeg sendte dig hele siden så du evt selv kunne teste? Nu har du vist ikke fordi at point er det store problem for dig, men du vælger bare hvad du skal have for det :o)
Jeg skal have 45 p for det - hov - det har jeg jo fået ;-) Jahhhm, men så send det da bare til adressen som du kan se ude til højre.
PS: På de forskellige servere: er du sikker på du har skrivetilladelse i det katalog (altså at serveren har)? Det ville jo også hjælpe hvis du skrev hvad fejlene var!
En anden mulighed vil selvfølgelig være et script der fungerede på samme måde. Altså et script der sætter hoejre.php = hoejrestemt.php hvis brugeren har stemt.
ingen held men det lykkedes mig at få en fejl ved at flytte de filder du skulle bruge til et nyt bibliotek. Ved ikke om det er midlertidige Internetfiler der spiller et puds, emn nu fik jeg en fejl da jeg åbnede pågældende bibliotek :
Warning: Undefined variable: stem in e:\\apache\\htdocs\\reloaded\\argh\\index.php on line 5
jeps... det virker! *S*... testede med Netscape :o)
Jeg takker rigtig mange gange! Hvis du havde været en kvinde havde du fået et kys, men da du ikk er det så må du nøjes med et cyberklap på skulderen *S*
Tilsyneladende vil den ikke skrive denne cookie i IE4 (og måske andre versioner) for jeg kan tilsyneladende ikke finde den på harddisken. Kan du kontrollere, at der faktisk bliver stemt, hvis man bruger IE?
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.