Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sonda + Cookie - nie do końca działa...
Niedźwiedź
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

Ostrzeżenie: (0%)
-----


Witam!
Piszę sobię prostą otwartą stronkę (w senie że nie ma kont użytkowników i mieć nie będzie) ośrodka wypoczynkowego, który prowadzę. Chciałbym mieć na tej stronie ankietę, poprzez którą klienci mogliby ocenić świadczone usługi. No ale nie chciałbym aby mogli klikać raz za razem. Dlatego cookies wydają mi się nienajgorszym wyborem, tym bardziej że nei jest to w żadnym wypadku portal społecznościowy czy coś. Napisałem sobie więc taką ankietę:

  1. <?php
  2.    if(!isset($_COOKIE['marysienka'])){
  3.        echo "<p style=\"margin: 41px 26px 16px 12px; text-align:center; font-size:12px; color:#361f0d; font-weight:bold; font-family:Arial;\">Korzystałeś z naszych usług? Możesz nas ocenić!</p>";
  4.        echo "<form action=\"data/survey.php\" method=\"post\" target=\"\">";
  5.        echo "<center><font style=\"font-family:Arial; color:#361f0d; font-size:12px\">Twoja ocena:</font> <select name=\"rating\" class=\"survey\">";
  6.        for($i=1;$i<7;$i++) echo "<option>",$i,"</option>";
  7.        echo "</select><br><br>";
  8.        echo "<input class=\"survey\" type=\"Submit\" name=\"survey\" value=\"Oceń!\">";
  9.        echo "</center></form>";
  10.    }else{
  11.        echo "<p style=\"margin-top: 41px; margin-right=16px; margin-left: 12px; text-align:center; font-size:12px; color:#361f0d; font-weight:bold; font-family:Arial;\">Już głosowałeś!</p>";
  12.        $file=fopen("nrate.dat","r");
  13.        $nrate=fgets($file);
  14.        fclose($file);
  15.        $file=fopen("srate.dat","r");
  16.        $srate=fgets($file);
  17.        fclose($file);
  18.        echo "<p style=\"margin-bottom: 26px; margin-right=16px; margin-left: 12px; text-align:center; font-size:12px; color:#361f0d; font-weight:bold; font-family:Arial;\">Średnia ocena wynosi ",round($srate/$nrate,2),"<br>";
  19.        echo "Głosowało już ",$nrate," osób.</p>";
  20.    }
  21. ?>


Plik survey.php:
  1. <?php setcookie('marysienka',$_POST['rating'],time()+86400);
  2.    $file=fopen("nrate.dat","r");
  3.    $nrate=fgets($file);
  4.    fclose($file);
  5.    $file=fopen("srate.dat","r");
  6.    $srate=fgets($file);
  7.    fclose($file);
  8.    $nrate=$nrate+1;
  9.    $srate=$srate+$_POST['rating'];
  10.    $file=fopen("nrate.dat","w");
  11.    fwrite($file,$nrate);
  12.    fclose($file);
  13.    $file=fopen("srate.dat","w");
  14.    fwrite($file,$srate);
  15.    fclose($file);
  16. ?>
  17. <html>
  18.    <head>
  19.        <meta http-equiv="refresh" content="0; url=http://localhost/~kamil/marysienka/show.php?name=home">
  20.    </head>
  21. </html>


Naliczanie głosów działa bez problemu, ale instrukcja if(!isset($_COOKIE['marysienka'])) {...}else{...} nigdy nie wchodzi w zbiór else. Co wiecej, gdy dodałem instrukcję echo $_COOKIE['marysienka'] do pliku z ankietą, to po zagłosowaniu instrukcja nie zwróciła, żadnych wartości... Tak jakby cookie wygasało.

Jednak gdy utworzyłem plik temp.php o zawartości <?php echo $_COOKIE['marysienka']; ?>, to po jego wywołoaniu otrzymałem wartość zapisaną w cookie.

Czy może mi ktoś wyjaśnić dlaczego ten skrypt nie działa?

Z góry thx za pomoc.

Pozdrawiam,
Kamil

Ten post edytował Niedźwiedź 17.07.2009, 14:33:57
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 16:41