Avatar billede ®azzer® Nybegynder
08. december 2000 - 10:04 Der 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.
Avatar billede erikjacobsen Ekspert
08. december 2000 - 10:56 #1
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=\"\"; }
Avatar billede ®azzer® Nybegynder
08. december 2000 - 11:01 #2
Jeg prøve lige det du siger! Du kan læse mere om mit script her :

http://www.eksperten.dk/spm/36037

Tak for den forløbelig hjælp.
Avatar billede erikjacobsen Ekspert
08. december 2000 - 11:10 #3
Ok, du bør f.eks. skrive

  if(!isset($stem)){  setcookie(\"statusw\",\"stemt16\",time()+86400);

så du er sikker på den virker på alle PHP-opsætninger
Avatar billede erikjacobsen Ekspert
08. december 2000 - 11:11 #4
Samt

if(isset($status) && $status == \"stemt16\"){    setcookie(\"status\",\"stemt16\",time()+86400);
Avatar billede ®azzer® Nybegynder
08. december 2000 - 11:59 #5
Jeg ligger mig snart til at græde!!!

Det er megamærkeligt!!

<?if(!isset($stem)){  setcookie(\"status\",\"stemt16\",time()+86400);  $counterfile = \"$stem.txt\";  if(file_exists($counterfile))    {    $fil = fopen($counterfile,  \"r\");    $count = fread($fil, 8);    fclose($fil);    }  else    $count=0;    $count++;    $fil = fopen($counterfile,  \"w\");    fwrite($fil, $count);    fclose($fil);  header(\"Location: index.php\");}?><?$hoejre = \"hoejre.php\";if(isset($status) && $status == \"stemt16\"){    setcookie(\"status\",\"stemt16\",time()+86400);    $hoejre = \"hoejrestemt.php\";}?>

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 er virkelig lost...
Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:04 #6
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:

if(!isset($stem)){
  $status=\"stemt16\";
  setcookie(\"status\",$status,time()+86400);
  ...
}

men jeg er ikke sikker! Hvor bliver $stem sat? Er det en cookie?
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:04 #7
Det er HELT sikkert noget med den skide cookie at gøre
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:05 #8
Hov nu kom jeg til at acceptere, nå men du lader mig jo nok ikke i stikken alligevel *G*!
Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:07 #9
jo da ;-))
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:15 #10
*LoL*

Jeg håber virkelig jeg har lært noget når dagen er omme *G*.

<?
if(!isset($stem)){
  setcookie(\"status\",\"stemt16\",time()+86400);
  $counterfile = \"$stem.txt\";
  if(file_exists($counterfile))    {
  $fil = fopen($counterfile,  \"r\");
  $count = fread($fil, 8);
  fclose($fil);
}
  else    $count=0;
  $count++;    $fil = fopen($counterfile,  \"w\");
  fwrite($fil, $count);    fclose($fil);
  header(\"Location: index.php\");
}
?>

<?
  $hoejre = \"hoejre.php\";
  if(isset($status) && $status == \"stemt16\"){
  setcookie(\"status\",\"stemt16\",time()+86400);
  $hoejre = \"hoejrestemt.php\";
}
?>

Var det sådan du mente ?

For nu får jeg ingen fejlmedelelser men skidtet virker ikke :(

Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:20 #11
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.

Hvad et $stem??

<?
  if(!isset($stem)){
    $status=\"stemt16\";
    setcookie(\"status\",$status,time()+86400);
    $counterfile = \"$stem.txt\";
    if(file_exists($counterfile))    {
            $fil = fopen($counterfile,  \"r\");
            $count = fread($fil, 8);
            fclose($fil);
    }
    else    $count=0;
    $count++;    $fil = fopen($counterfile,  \"w\");
    fwrite($fil, $count);    fclose($fil);
    header(\"Location: index.php\");
}
  $hoejre = \"hoejre.php\";
  if(isset($status) && $status != \"stemt16\"){
    setcookie(\"status\",\"stemt16\",time()+86400);
    $hoejre = \"hoejrestemt.php\";
  }
?>
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:28 #12
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)

Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:33 #13
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!
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:33 #14
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.
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:35 #15
Okay.. jeg sender :o)

Jamen jeg får ikke længere nogen fejl. Det virker bare ikke :( altså man bliver ikke sendt til hoejrestemt.php

Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:35 #16
...og ingen database ??
Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:37 #17
Jamen så prøv lige at ændre
if(isset($status) && $status != \"stemt16\"){
tilbage til
if(isset($status) && $status == \"stemt16\"){
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:44 #18
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
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:44 #19
men det gjorde også at resultatet kom frem .. altså at selve afstemingen virkede. Det kom bare denne fejl
Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:45 #20
send dem så!
Avatar billede ®azzer® Nybegynder
08. december 2000 - 12:53 #21
De er sndt.. håber du sidder på et 28.8 modem for jeg kom til at sende alle billeder med i farten... ups sorry!
Avatar billede erikjacobsen Ekspert
08. december 2000 - 12:59 #22
Sølle 3 Mega ;-)
Avatar billede erikjacobsen Ekspert
08. december 2000 - 13:03 #23
Prøv lige at ændre den første linie
  if(!isset($stem)){
til
  if(isset($stem)){
Avatar billede ®azzer® Nybegynder
08. december 2000 - 13:10 #24
Huuurra... eller hvad man nu skal sige! Nu virker det fint på min egen maskine men på serveren virker det ikke.
Avatar billede erikjacobsen Ekspert
08. december 2000 - 13:11 #25
What?  ....  Hvad virker ikke ?  Bliver der skrevet noget i filerne? Eller
kommer der fejlmeddelelser?  Eller har du et cache-problem måske??
Avatar billede ®azzer® Nybegynder
08. december 2000 - 13:12 #26
212.10.44.186/www.re-loaded.net/

tjek lige om det virker hos dig *S*
Avatar billede erikjacobsen Ekspert
08. december 2000 - 13:25 #27
Når jeg trykker på \"dansk\" sker der ikke mere i min browser. Men fortæl
mig om den opretter filerne på den server, som du siger ikke virker.
Avatar billede ®azzer® Nybegynder
08. december 2000 - 13:29 #28
hm.. du skal vælge engelsk *G*..

opretter filerne? Du mener om den skriver til filerne (de er der i forvejen) ?

Jeps... der bliver skrevet til filerne!! Så problmet må ligger i at hente dem.
Avatar billede erikjacobsen Ekspert
08. december 2000 - 13:39 #29
Du har vist bare et cache problem på server. Skriv lige de 3 linier
øverst i dine scripts - de skulle sikre, at der ikke bliver gemt noget
nogetsteds.

header(\"Expires: \".gmdate(\"D, d M Y H:i:s\",time()-100000).\" GMT\");
header(\"Pragma: no-cache\");
header(\"Cache-Control: no-cache\");
Avatar billede ®azzer® Nybegynder
08. december 2000 - 13:44 #30
Hm.. det hjalp desværre ikke :(

Det virker hvis jeg brugere serveren\'s browser!! Så er det ikek muligt at det er noget med læse/skrive rettigheder?
Avatar billede erikjacobsen Ekspert
08. december 2000 - 13:47 #31
Nej    -  eller også er din browser sat til ikke at hente nyeste version hjem?
Altså din normale browser.

Jeg fik svaret frem (altså %-er i højre side) ved at trykke på opdater
Avatar billede ®azzer® Nybegynder
08. december 2000 - 13:48 #32
hm... FEDT!! jamen jeg bruger 5.5 mener jeg....
Avatar billede ®azzer® Nybegynder
08. december 2000 - 13:50 #33
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*

Endnu engang tak !!
Avatar billede ®azzer® Nybegynder
10. december 2000 - 00:40 #34
Hm...

Jeg har nu fået 4 andre til at teste (de bruger IE) og de fik heller ikke resultatet frem. Så det virker ikke alligevel må man formode :(((
Avatar billede erikjacobsen Ekspert
10. december 2000 - 01:22 #35
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?
Avatar billede ®azzer® Nybegynder
10. december 2000 - 03:30 #36
Der bliver stemt hvis man bruger IE ..

Jeg selv bruger IE 5.5 og der skrives til filerne men resultatet kommer ikke frem :(
Avatar billede ®azzer® Nybegynder
10. december 2000 - 04:57 #37
Måske skulle jeg lige sige at scriptet virker fint hvis det har kørt som php3!
Avatar billede erikjacobsen Ekspert
10. december 2000 - 09:37 #38
Ok - cookien kommer ikke med over i IE4+. Hmm - er det noget med
PHP4? Min erfaring med PHP4 er såre begrænset. Desværre.
Avatar billede ®azzer® Nybegynder
10. december 2000 - 12:13 #39
Avatar billede ®azzer® Nybegynder
10. december 2000 - 12:34 #40
Tag det her link istedet...

http://www.eksperten.dk/spm/37638
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
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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