05. marts 2000 - 23:13Der er
11 kommentarer og 1 løsning
setcookie - jeg KAN ikke finde fejlen
Jeg har nu siddet den sidste time og proevet at finde fejlen i min kode. Problemet er, at min cookie ikke bliver sat overhovedet ... jeg HAR enabled cookies og proever med baade IE og NN.
Jeg har to sider og jeg paster lige det meste af koden:
$result = mysql_db_query($db, "SELECT id FROM author WHERE name = '$author_name' AND password = '$author_password'", $connection); $row = mysql_fetch_array($result);
$id = $row[0];
mysql_free_result($result);
if (!empty($id)) { setcookie("author", "$id", time()+3600);
// found user - we need to redirect to another page. Header("Location: index.php3"); exit; } }
macfat >> Ja, jeg har ogsaa proevet at fjerne "" - intet resultat som erikjacobsen siger :o(
erikjacobsen >> Ja, jeg er sikker paa, der ikke skrives noget ud inde, da jeg har kopieret HELE min login.php3 side ind i ovenstaaende....der starter jeg med '<script lan...>' og foerste gang jeg udskriver noget er foerst efter '</script>'.
Kan det have nogen betydning, at jeg bruger '<script la..' i stedet for '<?php' eller lign? Jeg bruger udelukkende <scrip..> fordi jeg gerne vil kunne aendre i mine php3 sider via FrontPage.
Jeg har proevet ovenstaaende, da jeg laeste at IE (3 eller 4) havde problemer med cookies der angives UDEN en path.
Dog skal man vel definere '$server_name' eller bliver den automatisk sat af PHP parseren? Jeg saa et eksempel, hvor man skulle lave en 'getEnv(SERVER_NAME)' eller lign.
Jeg vil dog alligevel proeve det naar jeg kommer tilbage til min egen maskine om et par timer.
Jeg kan heller ikke finde fejlen. Jeg har kopieret det meste af din kode, og det virker fint på min lokale win 95 apache. Jeg kan genfinde cookien på harddisken. Jeg har blot kommenteret alt om mysql ud, og sat $id til en sjov værdi.
Hvis din server og din klient er uenige om tiden, kan der vel ske noget, så prøv at sætte cookien med en meget stor tid, f.eks. 100000 sekunder.
Hmm - det var da maerkeligt. Tror I, det kan have betydning, at jeg koerer PHP paa en IIS5.0 (paa Windows 2000)?
Jeg MENER dog, jeg fik den til at gemme (og genfinde) min cookie paa et tidspunkt i gaar (efter jeg havde leget meget med problemet), men saa lige pludselig, virkede det ikke igen.
Jeg proevede ogsaa lige for sjovt at slette al min db-kode og bruge en hardcoded vaerdi i min $id ... dog ingen virkning :o<
Der har været nogle problemer med at bruge set_cookie() og Header("loca...") i den samme fil, fordi cookien ikke blev sat p.g.a af redirection'en fra Header().
Okay, det ser ud til, der er rigtig mange problemer med en saa simpel ting, som at saette en cookie i PHP. Jeg troede sgu' det var en smule mere gennemarbejdet - hmm; vi maa haabe det er fikset tilfredstillende i PHP4 .. det staar der i hvert fald flere steder.
Anyhow, jeg aendrede lidt paa mit flow, saa jeg _ikke_ saetter en cookie og derefter redirecter. Lidt aergeligt, at man ikke kan gruppere logisk relaterede funktioner paa samme side :o(
theill --> Tror I, det kan have betydning, at jeg koerer PHP paa en IIS5.0 (paa Windows 2000)? Jeg har præcist det samme problem, med samme opsætning. php4.0.6 og iis5.0/win2000. Så jeg er med på en lytter !!
Joh, men det er da ikke et problem på en Apache server - så vidt jeg ved
Synes godt om
Ny brugerNybegynder
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.