Voter pour un site une seule fois

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 430 fois - Téléchargée 30 fois

Contenu du snippet

Nous allons réaliser une liste à selection contenant des notes de un à dix pour noter/voter ou valoriser un site sans permettre au visiteur de le faire plus qu'une fois

Avant tout nous allons créer une table avec 4 champs au mieux:

$request="CREATE TABLE `vote` (
`id` TINYINT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`note` SMALLINT NOT NULL,
`ip` VARCHAR(10) NOT NULL,
`date` DATE NOT NULL
)";
mysql_query($request) or die ("impossible de créer la table");

Source / Exemple :


<html>
<head>
<body>
//Vous pouvez mettre tant de chose que vous voulez dans body
//Ce formulaire va etre traité dans la meme page "test.php"
<form name="form" method="post" action="test.php">
    <p><select size="1" name="note">
    <option selected value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    </select><input type="submit" name="submit" value="Votez "></p>
</form>
</body>
</html>
<?
//Remplacez les: hote, compte et mot de passe par les votres fournis par votre hébergeur
$conecter=mysql_connect('localhost','root','')or die ("erreur de connexion");
//Changez database par le nom de votre base de données
mysql_select_db(database,$conecter) or die ("erreur de selection");
//Vous pouvez mettre à la place des lignes précédents:
//include("votre fichier connexion contenant ces informations.inc.php");

//La date au format américain date("y-m-d")parce qu'on a optimisé le quatrième champ `date`, si //on le met en autre forma la date deviendra 0000-00-00, si on veut un autre format, français //par éxemple date("d-m-y")on sera forcer d'optimiser le 4ème champ varchar...etc pour éviter //le 0000-00-00.

$date=date("y-m-d");

// On definit la variable ip adresse 
$ip = $REMOTE_ADDR; 

//submit c'est le nom du bouton d'envoie de formulaire "il peut etre de n'importe type "select, //zone de texte, buton radio...etc. Ce truc ce fait pour traiter le formulaire HTML dans la //meme page que se trouve le code PHP traiteur.On récapitule cela
//if($le nom du bouton d'envoie){
//Le code PHP traiteur
//}
if($submit){

//On cherche si quelqu'un à déjà donné son avis grace à son adresse ip
$ipeexists = "SELECT ip FROM vote WHERE ip='$ip'";   
   $req = mysql_query($ipeexists); 

   if (mysql_num_rows($req) > 0) {
   echo "<body bgcolor=F7F5F5><br><br><br><br><br><b><p align=center><span style=font-size:10pt;><font color=red face=verdana>Votre avis a déjà été donné, merci.</p></font></b>";
//ATTENTION: La ligne print qui suit ne doit etre ici seulement dans le cas ou ce code PHP est //mis séparément de la page HTML c'est à dire dans une page PHP cible du formulaire HTML
   print "<p align=center><span style=font-size:10pt;><font face=verdana><a href=javascript:history.back();>Retour</a>";
 //exit;c'est essentiel dans les deux cas  
exit;
}

mysql_query("insert into `vote` values('','$ip','$note','$date')");
 //Ligne de remerciément 
echo "<b><p align=center><span style=font-size:12pt;><font color=navy face=verdana>Votre avis a bien été ajouté, merci.</p></font></b><br><br><br>";
 
//Une requete pour compter le nombre de voix valide (une seule fois pour chaque visiteur) dans //la base puisque l'id s'incrémente à chaque fois et ne se répète jamais:
$sql = "select id from vote";
$requete = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nombre= mysql_num_rows($requete);
echo "<font color=black face=Verdana size=2>Maintenant, on a<b>$nombre</b>voix valides .<br>";

// On ferme la connection à mysql 
mysql_close(); 
}

//Ce code (PHP/MYSQL) est testé sous Apache/Windows XP , Il fonctionnait avec succès
//Pour tout commentaire ou remarque prière de me contacter à:  sidoummoudz@yahoo.fr
//Bon usage à tous,  a++

?>

A voir également

Ajouter un commentaire Commentaires
Messages postés
459
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
11 mai 2013
1
ben enfète lé cookie c'est pas bien frentchy parce qu'il suffit d'aller dans Outils>Options Internet
et puis aprés de supprimer les cookies en appuyant sur 'Supprimmer les cookies...' et puis voila on peux revoté une autre fois ;)
Messages postés
27
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
9 juin 2007

je crois que la requête ne marche pas il dit qu'il y a une erreur comment je fait ???
Messages postés
4
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
18 août 2004

Sauf sur les campus ou l'ip est fixe ....
Messages postés
17
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
2 janvier 2004

ou des cookies ?
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004

le pb est que en France il doit y avoir un petit millier de paumés qui ont une IP fixe. Les autres en ont une dynamique, attribuée à chaque connexion. Le meilleur moyen à ma connaisance à ce jour c'est l'inscription login / pass, qui permet d'identifier à coup sur la personne, et tout ce qu'elle fait.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.