Avatar billede big_ossi Nybegynder
02. januar 2004 - 05:46 Der er 7 kommentarer og
1 løsning

hvorfor laver den her ikke en cookie ?

jeg bruger denne kode som en action i en form

<?php
include("../db.php");
if (isset($_POST["fest_id"])) {

    if (isset($_COOKIE["dff_". $_POST["fest_id"]])) {
    $var = "Du har allerede stemt";
}else{
    setcookie("dff_". $_POST["fest_id"], $_POST["rate"], time()+6048000);
    $fest_id = $_POST["fest_id"];
    $rate =  $_POST["rate"];
    $sql = "SELECT * from festene WHERE id = '$fest_id' ORDER BY id DESC";
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    $nytantal = $row[rate_antal] + 1;
    $nyrate = $row[rate_ialt] + $rate;
    mysql_query("UPDATE festene set rate_antal = '$nytantal' WHERE id = '$fest_id'");
    mysql_query("UPDATE festene set rate_ialt = '$nyrate' WHERE id = '$fest_id'");
    $var = "Tak for din stemme.!";
    }
}else{
$var = "Stem!";
}
?>
Avatar billede big_ossi Nybegynder
02. januar 2004 - 05:47 #1
hov... Men den laver ingen cookie.
er der en som kan hjælpe ?
Avatar billede Slettet bruger
02. januar 2004 - 07:48 #2
Kommer der ikke en fejl?

Jeg går lige ud fra, at du får en fejl, der siger "Headers already sent". Så er fejlen, at du ikke kan sætte en cookie, hvis du allerede har skrevet noget til browseren. Det kan fikses med denne linie i starten af dit script:

ob_start();
Avatar billede big_ossi Nybegynder
02. januar 2004 - 09:22 #3
den kommer ikke med nogen fejl... den skriver bare Stem!
Den gemmer hvad man har stemt i mysql'en men jeg kan ikke finde nogen cookie på min computer selv om jeg stemmer...

så jeg tror slet ikke den laver nogen...
Avatar billede erikjacobsen Ekspert
02. januar 2004 - 09:54 #4
Den burde sætte den cookie umiddelbart, synes jeg. Men du kan nøjes med (utestet...)

mysql_query("UPDATE festene SET rate_antal=rate_antal+1,rate_ialt=rate_ialt+'$rate' WHERE id='$fest_id'");

i stedet for din 3 sql-sætninger og beregninger i php.
Avatar billede Slettet bruger
02. januar 2004 - 11:22 #5
Fik du noget ud af mit svar, eller var det en fejl, at du accepterede?
Avatar billede big_ossi Nybegynder
02. januar 2004 - 18:17 #6
Sandbox: Det var en fejl... *S* jeg var lidt træt da jeg havde været oppe i 26 timer...

Erikjacobsen: Kan det så være min form der er fejl i ? den kommer lige her

<?


if (isset($_COOKIE["dff_". $_GET["id"]])) {

    $sql5 = "SELECT * from festene WHERE id = '$_GET[id]' ORDER BY id DESC";
    $result5 = mysql_query($sql5);
    $row5 = mysql_fetch_array($result5);
    $rate_ialt  =  $row5[rate_ialt];
    $rate_antal =  $row5[rate_antal];
    $gennemsnit = $rate_ialt / $rate_antal;
    $round = round($gennemsnit, 2);
    echo "<b>---$rate_antal mennesker har stemt $round i gennemsnit--- </b>";
}else{
?>
<form method="POST" action="indexx.php">

<script>

if (navigator.cookieEnabled) {

  document.write("<select name=\"rate\" size=\"1\"> <option value=\"1\" selected>1 Dårlig fest</option> <option value=\"2\">2</option><option value=\"3\">3</option><option value=\"4\">4</option><option value=\"5\">5 Fed fest</option></select><p><input type=\"submit\" value=\"Vote!\" name=\"rate\">")

}

else {

  document.write("Du kan ikke vote da du ikke har cookies slået til!")

}

</script>

  <p></p>

</form>
Avatar billede Slettet bruger
02. januar 2004 - 18:31 #7
OK, jeg følger med her, og laver et nyt spørgsmål hvor jeg giver pointene til den, du mener bør have dem, når du har fået det løst.
Avatar billede big_ossi Nybegynder
02. januar 2004 - 19:02 #8
nåå det er lige meget.. behold dem bare.. jeg giver bare nogle nye til den som skal ha dem..
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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