Maledetti Cookies

Ciao a tutti.

Ecco il mio problema:

Ho creato un sondaggio sulla pagina "poll.php" e ho fatto in modo che l'utente se ha gia' votato visualizzi, sempre tramite "poll.php", il risultato del suddetto sondaggio anzichè la schermata che permette la votazione.

Il tutto funziona perfettamente se, tramite l'url, vado direttamente sulla pagina "poll.php". (ad esempio: http://www.mysite.com/poll.php). Ma a me non serve perchè "poll.php" voglio inserirlo in una sezione del sito tramite la funzione include. E cosi' facendo non va più una cippa, ossia visualizzo sempre la schermata per votare anzichè il risultato del sondaggio nonostante abbia già votato.

Qualcuno sa illuminarmi?

TNX  :)

inviato 11 anni fa
G4S
G4S
1
X 0 X

puoi riportare il codice di poll.php?

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

poll.php non fa altro che controllare se il cookie esiste. Se no, legge dal db le scelte e i voti, e genera l'html utile alla pagina dove sara' inserito;se esiste dovrebbe visualizzare la pagina con i risultati del poll.

<?php
include("config.inc.php");
if (!isset($HTTP_COOKIE_VARS["$pollcookiename"])) { 
echo"
<table cellpadding='0' cellspacing='2' width='200'>
  <tr><th width='200' colspan='2'>$polltitle<br></th></tr>
  <tr><th width='200' colspan='2'>$pollquestion<br></th></tr>
  <form method='GET' action='polladdvote.inc.php'>";
  $db = mysql_connect($db_host, $db_user, $db_password);
  if ($db == FALSE)
  die ("Connection Error.");
  mysql_select_db($db_name, $db)
  or die ("DB Error.");
  $querymypoll = "SELECT * FROM poll ORDER BY choice"; 
  $resultmypoll = mysql_query($querymypoll, $db);
  while ($rowmypoll = mysql_fetch_array($resultmypoll)) {
  echo "
  <tr><td width='150' align='center'>$rowmypoll[testo]</td>";
     echo" 
      <td width='50' align='center'><input type='radio' name='cho' value='$rowmypoll[choice]' class='formstyle2'></td>
  </tr>"; }
  echo "
  <tr><th width='200' colspan='2'><input type='submit' value='vota' class='formstyle2'>&nbsp;&nbsp;&nbsp;<a href='polladdvote.inc.php?cho=0'>Results (Null vote)</a></th></tr>
  </form>
</table>"; }
else { include("pollresult.inc.php"); }
?>

ah, inserisco anche un pezzo dellla pagina addvote.inc.php, dove dovrebbe generare il cookie.

<?php
include("config.inc.php");
setcookie ($pollcookiename,$pollcookievalue,time()+3600); 
$db = mysql_connect($db_host, $db_user, $db_password);
"leggo e stampo i risultati"
?>

Scusate ma forse mi sfugge qualcosa, sono ancora abbastanza noob col php :P

p.s. ho provato anche ad inserire i valori di percorso e dominio alla funzione setcookie, ma senza successo.

risposto 11 anni fa
G4S
G4S
1
modificato 11 anni fa
X 0 X

Sembra tutto a posto. Inizia a verificare che il cookie sia accessibile dappa pagina che include poll.php

Ad esempio potresti mettere una print_r($_COOKIE) in questa pagina e vedere se è presente il cookie del sondaggio.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda