PDA

View Full Version : [PHP] - Problema coi Cookie


RagingBull
07-01-2008, 20:51
Ciao a tutti,

ho creato uno script php per i sondaggi. ho inserito, ovviamente, la funzione setcookie per evitare che qualcuno si diverta a cliccare 10000 volte e sballare quindi i risultati delle votazioni.

il problema è che il cookie non viene rilevato quindi non blocca eventuali voti a ripetizione.

vi posto la porzione di script interessata così gli date un'occhiata:

$id = $_POST['id'];
if($_COOKIE['sondaggio'] == TRUE)
{
print $_COOKIE[$id];
$result = mysql_query("SELECT domanda FROM sondaggi WHERE id='$id'");
$row = mysql_fetch_array($result);
$pname = $row['domanda'];
include("header.inc.php");
print "<h1>".$pname."</h1>\n";
print "Hai già votato per questo sondaggio!";
}
else
{
$result = mysql_query("SELECT domanda FROM sondaggi WHERE id='$id'");
$row = mysql_fetch_array($result);
$pname = $row['domanda'];
include("header.inc.php");
print "<h1>".$pname."</h1>\n";
mysql_query("UPDATE sondaggi SET tot".$_POST['risp']." = tot".$_POST['risp']."+1 WHERE id='$id'");
setcookie("sondaggio", "vitodale.netsons.org", time() + 86400);
header("Location: poll_vote.php");
print "<p>Il tuo voto &egrave; stato inserito con successo.</p>";
}

ringrazio anticipatamente

vizzz
07-01-2008, 21:08
uno dei classici problemi di questo tipo è spiegato dal comando setcookie

Like other headers, cookies must be sent before any output from your script

quindi deve essere chiamata come primissimo output, anche prima dell'html.

RagingBull
07-01-2008, 21:18
perfetto, mettendo setcookie come prima istruzione dell'else lo script funziona!

lo strano è che lo script lo creai al tempo di PHP4 e andava così come stava. con PHP5 invece mi ha dato questo problema....boh!

ad ogni modo ti ringrazio!