Limiter un vote par semaine pour un sondage
Posté : 25 nov. 2011, 19:16
Bonjour à tous =)
Je suis un petit nouveau dans le monde du php, j'ai commencé à crée mon site il y a déjà de ça quelques semaines et je dois vous avouer que je bloque sur un petit détail.
J'ai voulu créer un sondage html de type "radio" mais pas seulement ! J'ai voulu limité le nombre de vote de 1 par semaine.
Alors pour vous situer ou j'en suis, j'ai tout bien configuré ma base avec phpadmin, tout fonctionne à merveille quand je fais le sondage, les données rentrent bien dans la base.
Seulement je n'arrive pas à limiter les votes.
Mon site à un espace membre (ouais ! ^^) et un seul membre ne peux vote qu'une fois par semaine.
J'ai donc tapé le code suivant.
Bref, je demande à la base ou est-ce qu'il trouve dans la base le login correspondant, je prend la date (décrit par son numéro de semaine).
Je demande que le vote ne soit effectué que si le login n'existe pas ou si la date (week) est différente du dernier vote si le login apparait déjà dans la base par
J'avoue bloquer dessus, c'est certainement un petit détail mais je le trouve pas ^^
Merci à vous.
Cordialement
Je suis un petit nouveau dans le monde du php, j'ai commencé à crée mon site il y a déjà de ça quelques semaines et je dois vous avouer que je bloque sur un petit détail.
J'ai voulu créer un sondage html de type "radio" mais pas seulement ! J'ai voulu limité le nombre de vote de 1 par semaine.
Alors pour vous situer ou j'en suis, j'ai tout bien configuré ma base avec phpadmin, tout fonctionne à merveille quand je fais le sondage, les données rentrent bien dans la base.
Seulement je n'arrive pas à limiter les votes.
Mon site à un espace membre (ouais ! ^^) et un seul membre ne peux vote qu'une fois par semaine.
J'ai donc tapé le code suivant.
<form method="post" action="tableau.php">
<input type="text" name="log"><br/>
<input type="radio" name="tuto" value="RiWe">Rihanna ft. Calvin Harris - We Found love <br/>
<input type="radio" name="tuto" value="Cobra">Cobra Starship - You Make Me Feel <br/>
<input type="radio" name="tuto" value="Inna">Inna - Sun Is Up <br/>
<input type="radio" name="tuto" value="Brazil">Deadmau5 - Brazil (2nd Edit) <br/>
<input type="radio" name="tuto" value="Benny">Chris Brown ft Benny Benassi - Beautiful People <br/>
<input type="radio" name="tuto" value="LMFAO">LMFAO - Champagne Shower <br/>
<input type="radio" name="tuto" value="Tita">David Guetta ft Sia - Titanium <br/>
<input type="radio" name="tuto" value="Flor">Florida - Good Feelings <br/>
<input type="radio" name="tuto" value="Bless">Tom Hangs - Blessed (Avicii Remix) <br/>
<input type="radio" name="tuto" value="Nadia">Nadia Ali- Pressure <br/>
<input type="submit" name="valider" value="Ok"/>
</form>
<?php
if(isset($_POST['valider'])){
$tuto=$_POST['tuto'];
$today = date("y-m-d");
$week = date("w");
$login = $_POST['log'];
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('MaBase', $base) ;
$sql = 'SELECT login, week FROM vote WHERE login="'.$login.'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if($data[0] == 0 OR $data[1] != $week){
$sql = 'INSERT INTO vote VALUES("","'.$login.'","'.$tuto.'","'.$today.'","'.$week.'")';
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
}
else{
echo 'non non !';
}
mysql_close();
}
?>
J'explique un peu mon code, dans le formulaire on remarque que je demande d'entrer un "log", c'est pour simuler la session login. Il est évident que pour la version finale de mon site j'utiliserais directement la session dans le code php.Bref, je demande à la base ou est-ce qu'il trouve dans la base le login correspondant, je prend la date (décrit par son numéro de semaine).
Je demande que le vote ne soit effectué que si le login n'existe pas ou si la date (week) est différente du dernier vote si le login apparait déjà dans la base par
if($data[0] == 0 OR $data[1] != $week)
Le problème c'est que mon code tel qu'il est ici n'empêche pas du tout un login de voter plusieurs fois dans la même semaine et je ne comprend pas pourquoi. Il devrait dire "non non !" si le membre à déjà voté mais pas du tout !J'avoue bloquer dessus, c'est certainement un petit détail mais je le trouve pas ^^
Merci à vous.
Cordialement