|
| PHP og cookies Fra : Morten K. Nielsen |
Dato : 26-02-06 18:41 |
|
Hej!
I følgende kode kan jeg simpelthen ikke sætte en cookie der hedder deltaget,
og det er ved at drive mig til vanvid... Hvorfor virker det mon ikke??
<?php
if (isset($_COOKIE['deltaget'])) {
?>
<html>
<head><title>Konkurrence</title></head>
<?php
echo "Du har allerede deltaget";
} else {
setcookie("deltaget", "ok");
?>
<html>
<head><title>Konkurrence</title></head>
<?php
echo Du er nu med i konkurrencen";
$db = mysql_connect("hemmelig","hemmelig","hemmelig");
mysql_select_db("hemmelig",$db);
$insertSQL = "insert into konkurrence (byen, batterier, mail, nyhedsbrev)
values ('".$_POST["byen"]."', '".$_POST["batterier"]."',
'".$_POST["mail"]."', '".$_POST["nyhedsbrev"]."')";
mysql_query($insertSQL);
}
?>
</body></html>
| |
Henrik Stidsen (26-02-2006)
| Kommentar Fra : Henrik Stidsen |
Dato : 26-02-06 19:13 |
|
Morten K. Nielsen wrote :
> Hvorfor virker det mon ikke??
Du er udsat for et kommunistisk komplot, de kan ikke lide dig og har
derfor fået uindskrænket magt fra Kreml til at genere dig på alle
tænkelige måder.
Eller også er der noget andet galt... ...under alle omstændigheder har
du glemt en meget vigtig ting, hvilken fejlbesked får du ?
--
Henrik Stidsen - http://henrikstidsen.dk/
"I love deadlines. I like the whooshing sound they make as they fly
by."
- Douglas Adams
| |
Morten K. Nielsen (26-02-2006)
| Kommentar Fra : Morten K. Nielsen |
Dato : 26-02-06 19:28 |
|
> Eller også er der noget andet galt... ...under alle omstændigheder har du
> glemt en meget vigtig ting, hvilken fejlbesked får du ?
Den med Kreml tror jeg ikke helt på Men jeg får ingen fejl-besked!
Scriptet virker fint, og svaret bliver sat ind i MySQL. Men der ligger ingen
cookie på harddsiken (har kigget i IE's cookies mappe og i Firefox's cookie
manager, efter at have testet med begge browsere). Ved ikke om det er en
særhed i PHP :-/
Vhils Morten
| |
Henrik Stidsen (26-02-2006)
| Kommentar Fra : Henrik Stidsen |
Dato : 26-02-06 22:07 |
|
Morten K. Nielsen formulated the question :
>> Eller også er der noget andet galt... ...under alle omstændigheder har du
>> glemt en meget vigtig ting, hvilken fejlbesked får du ?
> Den med Kreml tror jeg ikke helt på
Fint, det bliver de glade for at høre ;)
> Men jeg får ingen fejl-besked!
> Scriptet virker fint, og svaret bliver sat ind i MySQL. Men der ligger ingen
> cookie på harddsiken (har kigget i IE's cookies mappe og i Firefox's cookie
> manager, efter at have testet med begge browsere). Ved ikke om det er en
> særhed i PHP
Du sætter en cookie der slettes når browseren lukker - den bliver ikke
gemt andet end i rammen.
Prøv at kigge hvilke headers der sendes til browseren - brug f.eks.
Fiddler eller LiveHttpHeaders (plugin til Firefox).
--
Henrik Stidsen - http://henrikstidsen.dk/
"I told the doctor I broke my leg in two places. He told me to quit
going to those places." - Henny Youngman
| |
Simon Rasch 9640 (26-02-2006)
| Kommentar Fra : Simon Rasch 9640 |
Dato : 26-02-06 23:26 |
|
> I følgende kode kan jeg simpelthen ikke sætte en cookie der hedder
> deltaget, og det er ved at drive mig til vanvid... Hvorfor virker det mon
> ikke??
Jeg husker måske forkert, men er der ikke noget med at cookie-halløj skal
klares FØR scriptet sender noget til browseren ?
(...eller er det kun ved session_start)
Mvh
Simon rasch
| |
Morten K. Nielsen (27-02-2006)
| Kommentar Fra : Morten K. Nielsen |
Dato : 27-02-06 18:17 |
|
> Jeg husker måske forkert, men er der ikke noget med at cookie-halløj skal
> klares FØR scriptet sender noget til browseren ?
Jo, det kan jeg se er rigtigt.. Og åbenbart må jeg heller ikke bruge den her
cookie i en IF-sætning, ellers kan den ikke sættes senere i scriptet. Meget
mystisk firma!
/Morten
| |
Henrik Stidsen (27-02-2006)
| Kommentar Fra : Henrik Stidsen |
Dato : 27-02-06 20:40 |
|
It happens that Simon Rasch 9640 formulated :
>> I følgende kode kan jeg simpelthen ikke sætte en cookie der hedder
>> deltaget, og det er ved at drive mig til vanvid... Hvorfor virker det mon
>> ikke??
> Jeg husker måske forkert, men er der ikke noget med at cookie-halløj skal
> klares FØR scriptet sender noget til browseren ?
Det er korrekt - og det gør han heller ikke (med mindre noget script
han ikke har vist gør det).
En if sætning der ikke evalueres til true køres jo ikke - så det output
den del måtte lave bliver ikke sendt hvis else køres.
--
Henrik Stidsen - http://henrikstidsen.dk/
"Age is something that doesn't matter, unless you are a cheese."
- Luis Bunuel
| |
Morten K. Nielsen (27-02-2006)
| Kommentar Fra : Morten K. Nielsen |
Dato : 27-02-06 21:27 |
|
> En if sætning der ikke evalueres til true køres jo ikke - så det output
> den del måtte lave bliver ikke sendt hvis else køres.
Det mærkelig er bare, at efter jeg har fjernet IF-THEN, så virker det... Jeg
ville bare gerne forhindre at folk trykker F5, og derved får tilføjet deres
svar til databasen endnu engang.
| |
Henrik Stidsen (28-02-2006)
| Kommentar Fra : Henrik Stidsen |
Dato : 28-02-06 18:56 |
|
After serious thinking Morten K. Nielsen wrote :
>> En if sætning der ikke evalueres til true køres jo ikke - så det output den
>> del måtte lave bliver ikke sendt hvis else køres.
>
> Det mærkelig er bare, at efter jeg har fjernet IF-THEN, så virker det... Jeg
> ville bare gerne forhindre at folk trykker F5, og derved får tilføjet deres
> svar til databasen endnu engang.
Så er der nok noget andet du har gjort galt. Det er ikke fordi du laver
output - for så vil du få en fejlbesked på siden og intet andet.
--
Henrik Stidsen - http://henrikstidsen.dk/
"The secret of staying young is to live honestly, eat slowly, and lie
about your age." - Lucille Ball
| |
|
|