begin process at 2012 05 27 20:54:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > VOTER POUR UN SITE UNE SEULE FOIS

VOTER POUR UN SITE UNE SEULE FOIS


 Information sur la source

 Description

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

  • <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++
  • ?>
<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++

?>






 Sources du même auteur

INTERFAÇAGE D'UNE BASE DE DONNÉES AVEC DU STYLE PHP-MYSQL/JA...
EMPECHER LA VISITE DIRECTE OU DEPUIS CERTAINS SITES VERS LE ...
EMPECHER VOS INFORMATIONS D'APPARAITRE DANS LA BARRE D'ADRES...
PERMETTRE AUX UTILISATEURS DE CHANGER LEURS MOTS DE PASSE
NUMÉROTATION DES RÉSULTATS DE RECHERCHE AVEC PHP+MYSQL+TRUCS

 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

Commentaires et avis

Commentaire de matrey le 14/11/2003 22:37:13

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.

Commentaire de frentchy le 06/04/2004 11:04:09

ou des cookies ?

Commentaire de naydon le 24/04/2004 09:29:51

Sauf sur les campus ou l'ip est fixe ....

Commentaire de jeungob le 09/03/2005 16:17:23

je crois que la requête ne marche pas il dit qu'il y a une erreur comment je fait ???

Commentaire de wizard512 le 13/02/2006 00:07:58

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 ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales