09. juni 2003 - 10:58Der er
11 kommentarer og 2 løsninger
Setcookie ved afstemning?
Hej - HJÆLP :o/ Jeg er igang med at lave en afstemning i php. Det eneste der ikke virker, er der hvor scriptet skal undersøge via cookies, om brugeren allerede har stemt.
Linien den brokker sig over er den med "setcookie":
Der kommer følgende warning: Cannot add header information - headers already sent by (output started at /home/httpd/vhosts/solbjerg-badminton.dk/httpdocs/afstemning.php:2) in /home/httpd/vhosts/solbjerg-badminton.dk/httpdocs/afstemning.php on line 27
Problemet er altså den warning og at man kan stemme igen og igen!
<body bgcolor="#ACAD74"> <table border=0 width="300px"> <p>Var det efter din mening rigtigt at aflyse/udskyde VM i badminton i England?</p> <? $samlet_antal_stemmer = 0; $tekst[1] = "<p>JA, helt bestemt</p>"; $tekst[2] = "<p>Måske</p>"; $tekst[3] = "<p>Ved ikke</p>"; $tekst[4] = "<p>Nej, det skulle være gennemført</p>"; for ( $fil_nr = 1 ; $fil_nr <= 4 ; $fil_nr++){ $stemmer[$fil_nr] = hent_stemme($fil_nr); $samlet_antal_stemmer = $samlet_antal_stemmer + $stemmer[$fil_nr]; }
Problemmet ligger i at setcookie() skal køres før du sender noget output OVERHOVEDET!
dvs, du skal lave om så setcookie kommer før: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> og echo "$stemme_procent %"; echo "<IMG SRC=\"billed.gif\" HEIGHT=7 WIDTH=$stemme_procent BORDER=0>";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Afstemning</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="sifstyles.css" type="text/css"> </head>
<body bgcolor="#ACAD74"> <table border=0 width="300px"> <p>Var det efter din mening rigtigt at aflyse/udskyde VM i badminton i England?</p> <? $samlet_antal_stemmer = 0; $tekst[1] = "<p>JA, helt bestemt</p>"; $tekst[2] = "<p>Måske</p>"; $tekst[3] = "<p>Ved ikke</p>"; $tekst[4] = "<p>Nej, det skulle være gennemført</p>"; for ( $fil_nr = 1 ; $fil_nr <= 4 ; $fil_nr++) { $stemmer[$fil_nr] = hent_stemme($fil_nr); $samlet_antal_stemmer = $samlet_antal_stemmer + $stemmer[$fil_nr]; }
ahv << jo, det har du ret i :) Kiggede bare efter output, og så ikke de lå i en funktion.
holckie << Du skal være opmærksom på at der overhovedet ikke må forekomme output! Bare et mellemrum, eller linjeskift før <?php vil skabe fejl. Prøv at bruge ahv's kode, og se om det virker.
ahv >> Jeg har prøvet dit forslag med at flytte <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ned under funktionerne. Men det giver desværre stadig den samme fejl.
DET VIRKER!!! Det var som du sagde melange. Der var et linieskift i starten af <?php Nu virker det... SUPER! Jeg lukker spørgsmålet. TAK ENDNU EN GANG :o)
Jamen jeg er da også glad for at du fik det til at virke :)
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.