begin process at 2012 05 27 20:30:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > SYSTEM DE VOTE AJAX.

SYSTEM DE VOTE AJAX.


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :ajax, system, vote, cookie, etoile Niveau :Initié Date de création :25/11/2010 Vu / téléchargé :3 684 / 432

Auteur : Dav_c

Ecrire un message privé
Site perso
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Un petit system de vote avec étoile.
-Nombre d'étoile modifiable ésement.
-Functionne avec une base de donner
-Un peut de javascript pour le design
-Ajax pour resultat instanner
-Cookie pour évité le post en boucle
-Il n'y a qu'a utiliser un include

Note:
- Marche avec id donc utiliser une id adapter au system de vote.
A vous de trouver comment définir cette idee si vous utiliser plusieur fois "la meme".
- Il n'y a pas encore d'administration.

Merci de commenter, j'ai fait cette source pour apprendre ajax. sont utilation demontre bien le functionnement.

Source

  • <?php
  • include("conf.php");
  • $ID_vote = $_GET['ID_vote'];
  • $Mod = $_GET['Mod'];
  • $note = $_GET['note'];
  • $Total_etoile = 5;
  • if($note!=''){setcookie('Vote'.$ID_vote,"OK",time()+365*24*5); }
  • ?>
  • <script type="text/javascript">
  • function httpRequest(file){
  • var xhr_object = null;
  • if(window.XMLHttpRequest) // Firefox
  • xhr_object = new XMLHttpRequest();
  • else if(window.ActiveXObject) // Internet Explorer
  • xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  • else { // XMLHttpRequest non supporté par le navigateur
  • alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
  • return;
  • }
  • var div = div;
  • var file = file;
  • xhr_object.open("GET", file, true);
  • xhr_object.onreadystatechange = function() {
  • if(xhr_object.readyState == 4){
  • // alert(xhr_object.responseText);
  • document.getElementById('etoile').innerHTML = xhr_object.responseText;
  • //document.getElementById('etoile').innerHTML = xhr.responseText;
  • }
  • }
  • xhr_object.send(null);
  • }
  • function etoile_mouseOver(etoile)
  • {document.getElementById("etoile"+etoile).src="etoile_select.png";}
  • function etoile_mouseOut(etoile,etat)
  • {
  • if(etat == 0){document.getElementById("etoile"+etoile).src="etoile.png";}
  • else if(etat == 1){document.getElementById("etoile"+etoile).src="etoile_demi.png";}
  • else if(etat == 2){document.getElementById("etoile"+etoile).src="etoile_fonce.png";}
  • }
  • </script>
  • <?php
  • ///////////////connection a la db
  • $connect=mysql_connect($sql_serveur,$sql_user,$sql_pass);
  • mysql_select_db($sql_db, $connect);
  • /////////////Fourchette de conditon///////////
  • if($note!='' and $_COOKIE['Vote'.$ID_vote]!='OK'){
  • /////////recuperation du prochaine id//////////////
  • $req1="select max(ID) from vote_index";
  • $res1=mysql_query($req1);
  • $idmax1=mysql_result($res1,0,"max(ID)")+1;
  • $requete = "INSERT INTO vote_donner (ID, ID_vote, Note) VALUES ('".$idmax1."', '".$ID_vote."','".$note."')";
  • mysql_query ($requete,$connect);
  • }
  • $result=mysql_query("SELECT * FROM vote_donner WHERE ID_vote='".$ID_vote."'");
  • while($row=mysql_fetch_array($result)){
  • $Nb_etoile=$Nb_etoile.';'.$row['Note'];
  • }
  • $Nb_etoile=split(';',$Nb_etoile);
  • for ($cpt=0; $cpt<(count($Nb_etoile)); $cpt++){
  • $temps_etoile = $temps_etoile + $Nb_etoile[$cpt];
  • }
  • if($cpt-1!=0){$temps_etoile = $temps_etoile / ($cpt-1);}
  • ////////////affiche image etoile
  • echo '<div id=etoile>';
  • ///etoile complete pale
  • $Nb_etoile=str_split($temps_etoile, 1);
  • for ($cpt=0; $cpt<($Nb_etoile[0]); $cpt++){
  • $temps_etoile = $cpt+1;
  • //////texte alt
  • if($_COOKIE['Vote'.$ID_vote]!='OK'){
  • $texte_alt='Voter un '.$temps_etoile;}
  • else{$texte_alt="Vous avez deja voter.";}
  • echo '<img id="etoile'.$temps_etoile.'" src="etoile.png" Alt="'.$texte_alt.'" onClick="httpRequest(\'vote.php?ID_vote='.$ID_vote.'&Mod=Mod&note='.$temps_etoile.'\');" onmouseover="etoile_mouseOver('.$temps_etoile.')" onmouseOut="etoile_mouseOut('.$temps_etoile.',0)"/>';
  • }
  • If($Nb_etoile[2]!=''){
  • $temps_etoile = $temps_etoile+1;
  • //////texte alt
  • if($_COOKIE['Vote'.$ID_vote]!='OK'){
  • $texte_alt='Voter un '.$temps_etoile;}
  • else{$texte_alt="Vous avez deja voter.";}
  • echo '<img id="etoile'.$temps_etoile.'" src="etoile_demi.png" Alt="'.$texte_alt.'" onClick="httpRequest(\'vote.php?ID_vote='.$ID_vote.'&Mod=Mod&note='.$temps_etoile.'\');" onmouseover="etoile_mouseOver('.$temps_etoile.')" onmouseOut="etoile_mouseOut('.$temps_etoile.',1)"/>';
  • }
  • ///etoile complete fonce
  • $Nb_etoile[0] = $Total_etoile-$Nb_etoile[0];
  • if($Nb_etoile[2]!=''){$Nb_etoile[0] = $Nb_etoile[0]-1;}
  • for ($cpt=0; $cpt<($Nb_etoile[0]); $cpt++){
  • $temps_etoile = $temps_etoile+1;
  • //////texte alt
  • if($_COOKIE['Vote'.$ID_vote]!='OK'){
  • $texte_alt='Voter un '.$temps_etoile;}
  • else{$texte_alt="Vous avez deja voter.";}
  • echo '<img id="etoile'.$temps_etoile.'" src="etoile_fonce.png" Alt="'.$texte_alt.'" onClick="httpRequest(\'vote.php?ID_vote='.$ID_vote.'&Mod=Mod&note='.$temps_etoile.'\');" onmouseover="etoile_mouseOver('.$temps_etoile.')" onmouseOut="etoile_mouseOut('.$temps_etoile.',2)"/>';
  • }
  • echo '</div>';
  • ?>
  • + sql
<?php
include("conf.php");
$ID_vote = $_GET['ID_vote'];
$Mod = $_GET['Mod'];
$note = $_GET['note'];

$Total_etoile = 5;

if($note!=''){setcookie('Vote'.$ID_vote,"OK",time()+365*24*5); }
?>
<script type="text/javascript">
function httpRequest(file){
var xhr_object = null; 
if(window.XMLHttpRequest) // Firefox 
   xhr_object = new XMLHttpRequest(); 
else if(window.ActiveXObject) // Internet Explorer 
   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
else { // XMLHttpRequest non supporté par le navigateur 
   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
   return; 
} 

var div = div;
var file = file;

xhr_object.open("GET", file, true); 

xhr_object.onreadystatechange = function() { 
   if(xhr_object.readyState == 4){
//   alert(xhr_object.responseText);
document.getElementById('etoile').innerHTML = xhr_object.responseText;
//document.getElementById('etoile').innerHTML = xhr.responseText;
   }
}  
xhr_object.send(null);
}

function etoile_mouseOver(etoile) 
{document.getElementById("etoile"+etoile).src="etoile_select.png";} 

function etoile_mouseOut(etoile,etat) 
{ 
if(etat == 0){document.getElementById("etoile"+etoile).src="etoile.png";}
else if(etat == 1){document.getElementById("etoile"+etoile).src="etoile_demi.png";}
else if(etat == 2){document.getElementById("etoile"+etoile).src="etoile_fonce.png";}

} 

</script>
<?php

///////////////connection a la db
$connect=mysql_connect($sql_serveur,$sql_user,$sql_pass);
mysql_select_db($sql_db, $connect);
/////////////Fourchette de conditon///////////
if($note!='' and $_COOKIE['Vote'.$ID_vote]!='OK'){
/////////recuperation du prochaine id//////////////
$req1="select max(ID) from vote_index";
$res1=mysql_query($req1);
$idmax1=mysql_result($res1,0,"max(ID)")+1; 

$requete = "INSERT INTO vote_donner (ID, ID_vote, Note) VALUES ('".$idmax1."', '".$ID_vote."','".$note."')";
mysql_query ($requete,$connect);
}


$result=mysql_query("SELECT * FROM vote_donner WHERE ID_vote='".$ID_vote."'");
while($row=mysql_fetch_array($result)){
$Nb_etoile=$Nb_etoile.';'.$row['Note'];
}
$Nb_etoile=split(';',$Nb_etoile);
for ($cpt=0; $cpt<(count($Nb_etoile)); $cpt++){
$temps_etoile = $temps_etoile + $Nb_etoile[$cpt];
}
if($cpt-1!=0){$temps_etoile = $temps_etoile / ($cpt-1);}

////////////affiche image etoile
echo '<div id=etoile>';
///etoile complete pale
$Nb_etoile=str_split($temps_etoile, 1);  
for ($cpt=0; $cpt<($Nb_etoile[0]); $cpt++){
$temps_etoile = $cpt+1;

//////texte alt
if($_COOKIE['Vote'.$ID_vote]!='OK'){
$texte_alt='Voter un '.$temps_etoile;}
else{$texte_alt="Vous avez deja voter.";}

echo '<img id="etoile'.$temps_etoile.'" src="etoile.png" Alt="'.$texte_alt.'" onClick="httpRequest(\'vote.php?ID_vote='.$ID_vote.'&Mod=Mod&note='.$temps_etoile.'\');" onmouseover="etoile_mouseOver('.$temps_etoile.')" onmouseOut="etoile_mouseOut('.$temps_etoile.',0)"/>';
}
If($Nb_etoile[2]!=''){
$temps_etoile = $temps_etoile+1;

//////texte alt
if($_COOKIE['Vote'.$ID_vote]!='OK'){
$texte_alt='Voter un '.$temps_etoile;}
else{$texte_alt="Vous avez deja voter.";}

echo '<img id="etoile'.$temps_etoile.'" src="etoile_demi.png" Alt="'.$texte_alt.'" onClick="httpRequest(\'vote.php?ID_vote='.$ID_vote.'&Mod=Mod&note='.$temps_etoile.'\');" onmouseover="etoile_mouseOver('.$temps_etoile.')" onmouseOut="etoile_mouseOut('.$temps_etoile.',1)"/>';
}
///etoile complete fonce
$Nb_etoile[0] = $Total_etoile-$Nb_etoile[0];
if($Nb_etoile[2]!=''){$Nb_etoile[0] = $Nb_etoile[0]-1;}
for ($cpt=0; $cpt<($Nb_etoile[0]); $cpt++){
$temps_etoile = $temps_etoile+1;

//////texte alt
if($_COOKIE['Vote'.$ID_vote]!='OK'){
$texte_alt='Voter un '.$temps_etoile;}
else{$texte_alt="Vous avez deja voter.";}

echo '<img id="etoile'.$temps_etoile.'" src="etoile_fonce.png" Alt="'.$texte_alt.'" onClick="httpRequest(\'vote.php?ID_vote='.$ID_vote.'&Mod=Mod&note='.$temps_etoile.'\');" onmouseover="etoile_mouseOver('.$temps_etoile.')" onmouseOut="etoile_mouseOut('.$temps_etoile.',2)"/>';
}
echo '</div>';

?>

+ sql

 Conclusion

Y'a qu'a importer la base de donner.
Adapter le fichier conf.php
Ouvrir le fichier ak ?ID_vote=???

Et tester.

Ps: image et sql dans le zip.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip LECTEUR FLV CACHANT URL DU VIDEO

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TODO LIST (AJAX/PHP5) par VinceMonkeyz
Source avec Zip PDS-PERTINENCE par bcmfr
Source avec Zip PDS-SONDAGES par bcmfr
Source avec Zip Source avec une capture RAFRAICHIR PLUSIEURS DIV EN UN CLIC (AJAX) par 120120
Source avec une capture INFORMATIONS SUR L'ETAT D'UN SERVEUR MS WIN. par psyjc

Commentaires et avis

Commentaire de Dav_c le 25/11/2010 02:46:09

J'ai dis que je la posterais après avoir demander un coup de main, la voila.
Soyer sévère j'apprend mais je ne puis m'améliorer sans critique.

Commentaire de cod57 le 25/11/2010 10:28:30

bonjour

$_GET elles viennent d'ou CES VARIABLES

déjà dés le départ

//$ID_vote = $_GET['ID_vote'];
//$Mod = $_GET['Mod'];
//$note = $_GET['note'];

if(isset($_GET['ID_vote']) && !empty($_GET['ID_vote']) ){
$ID_vote = $_GET['ID_vote'];
} else {
$ID_vote = NULL;
}

if(isset($_GET['Mod']) && !empty($_GET['Mod']) ){
$Mod = $_GET['Mod'];
} else {
$Mod = NULL ;
}

if(isset($_GET['note']) && !empty($_GET['note']) ){
$note = $_GET['note'];
} else {
$note = NULL ;
}            

a++

Commentaire de Dav_c le 25/11/2010 11:36:31

Mod ne sert a rien encore.
Les autre:
ID_vote ser l'ID du vote ( heinnnnn , pour la db )
Note je sais pas p-t pour la note qui est noter.....

Commentaire de Dav_c le 25/11/2010 11:37:39

Jajoute. dsl yer 5:30am ici pis jmenvas me coucher.

Sa recupère quoi un $_GET???????

Commentaire de Dav_c le 25/11/2010 11:38:57

Je comprend le isset ok mais pk je viderais ma var si est dja vide????

Commentaire de lassie14 le 29/11/2010 01:07:30

ton script est sympa mais il y a une très grosse faille
une grande porte ouverte pour toute les failles de type sql injection
et ce que t'as écrit cod57 c'est pour éviter d'avoir des erreurs si les variable ne sont pas définie
et pour le sql injection il te faut vérifier tes variables
dans ton cas c'est que des chiffres donc une simple regex et c'est bon

Commentaire de Dav_c le 29/11/2010 01:10:28

Merci la je comprend.

Commentaire de dannywilde le 29/11/2010 06:29:48

je n'ai pas encore regardé le code mais ton explication... au moins 1 faute par ligne...

Commentaire de tiefedan le 29/11/2010 09:44:24

pour le PHP ça vient doucement c'est bien! mais pour le français tu envisages des progrès? scuze il neige, j'ai les boules ;)

Commentaire de syllebreton le 29/11/2010 10:03:04

Salut,

Essaye de ne pas mélanger tout ton code. Tu mélanges le html, le php et le javascript. Ce qui amène à un code peu lisible (pense à quelqu'un qui voudrait reprendre ton code).

Le niveau de cette source est plus débutant, qu'initié.

Les pistes à creuser pour améliorer le code :
- Le pattern MVC pour la séparation du code : http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur ;
- Séparer les différentes parties de ton code ;
- Regarde du coté de PDO (http://php.net/manual/fr/book.pdo.php) pour l'accès générique à la base de données.
- Peut-être un framework Javascript (si ça n'alourdis pas trop le code) : jQuery, Prototype ...
- Faire une classe PHP pour empaqueter le tout.

Voilà quelques pistes qui devraient te permettre d'apprendre un peu plus en PHP.

Bye.

Commentaire de hornetbzz le 29/11/2010 17:50:38

un gros +1 sur les commentaires précédents.

commentaires additionnels:
- code fouilli: séparer js, php, html
- utiliser js non intrusif (function Onload(init)), mais il te faut tout recoder,
- il fait quoi le gentil visiteur si js n'est pas activé dans son navigateur (utiliser balises <noscript>) ?
- utiliser le DOM plutot que innerHTML qui risque de te mener à qq surprises,
- toujours pour la portabilité, utilises le "DOM event" plutot que de jeter des "onclick" partout,
- virer les trucs du genre # var div = div; # var file = file;
- sécuriser tes "$_GET" ! tel que c'est, n'importe qui entre n'importe quoi,
- éviter les cookies pour ce genre de code, utilises eventuellement les sessions si tu en as vraiment besoin,
- injection mysql à prévoir: soit utilises les requetes préparées, soit sécurises le code, soit les 2.

bref, maintenant que tu as défriché le terrain et que tu commences à comprendre ajax, peut-être serait il judicieux de recoder proprement (DOM, mvc, separation de codes, failles securitaires..) avant de passer à une partie "admin". Car tel quel, le code présente trop de failles sécuritaires et n'est absolument pas portable.

Bon courage

Commentaire de anfel4 le 21/05/2012 09:37:14

bonjour,
j'ai copier le code source mais j'ai des erreurs la ligne 3,4,5 c'est quoi ID_vote,Mod,note
Merci.

Commentaire de anfel4 le 21/05/2012 09:42:42

bonjour,
j'ai pas arriver a noter ce code source, comment faire ca ?
merci

Commentaire de anfel4 le 21/05/2012 10:06:19

bonjour,
je demmande une explication détaillée des variable de ce dode source, cest quoi Nb_etoile et ou ce trouve dans une table aider moi S.V.P
J'ai un message d'erreur ici:
}
$Nb_etoile=split(';',$Nb_etoile);
for ($cpt=0; $cpt<(count($Nb_etoile)); $cpt++){
$temps_etoile = $temps_etoile + $Nb_etoile[$cpt];
}
merci

Commentaire de Dav_c le 21/05/2012 18:17:01

Hola tu fais tu déterrage? xD les variables servent à configurer le script.
nb-étoiles sert a dire sur cmb d'étoiles on peut voter.
Id_vote sert a attribuer yb id au vote lui méme.
Mod ne servais plus rien. ( déja 2 ans oula )
note est la note attribuer par les visiteur.

Bon si jme rappelle bien, le but étais tous simplement de re-charger un bout de la page avec de nouveaux paramètres pour php qui servaient à enregistrer les votes dans une base de donner, en faire la moyenne et l'afficher sous forme d'étoiles.

En faite tu peut mettre autant d'étoiles que tu veut. Il faut seulment que tu te rapelle que chaque étoiles vas ajouter un paramètre ID_vote=XX&note=xx
ex: ID_vote=0&note=5.

Si on n'a déja 5 entrer dans la base donner ex:
ID_vote=0&note=5
ID_vote=0&note=2
ID_vote=0&note=3
ID_vote=0&note=1
5+2+3+1/4=2.75
Donc 2 étoiles et une moitier.

Si ID_vote=1 sa veut dire que l'on parle d'un autre sondage.

Point important a retenir. ID_vote sera l'id du "vote lui même" donc tu utilise le script pour plusieur chose fais sure de lui attribuer un numéro bien a lui.

Example noter une photo et un video qui on tous les 2 l'id 0 dans la base de donner. mais ce n'est pas le même vote.

Espérent t'avoir aider un peu, hésite as a me recontacter pour d'autre info.
PS: se code la est pas parfait xd.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

System de vote [ par BTAJV ] Donc bon voila mon probleme J'aimerai pouvoir crée un system de vote pour une parti video que je suis en trin de crée (ici) et donc voila si vous avez Systeme de vote pour radio ! [ par radyonne ] Bonjour,je voudrais savoir si quelqu'un saurait faire un system de vote pour le site web de ma radio, un system de vote comme celui de radiowave "top Probleme de boucle [ par Ddjay ] Bonjour à tous ! j'ai un soucis de boucle sur le code ci-dessous, mon but etant de créér un cookie suite au vote que l'utilisateur fait, si le titre e Prise en compte d'un cookie et rafraichissement fenêtre [ par joel64 ] bonjour,merci à celui ou celle qui me donnera la solution au problème suivant.il s'agit d'un script php de sondage qui affiche la possibilité de vote System de vote [ par Dav_c ] Bonjour, je ne sais pas si phpcs est le plus approprier etant donner que mon code est mixer au javascript mais bon. J'essait de faire un system de vo AJAX - probleme envoi d'un POST [ par ju0123456789 ] Bonjour, Je vais essayer d'etre précis dans ma demande sachant que je suis débutant en AJAX. Je construis actuellement une page d'album photo que j'e Problème cookie et header location [ par Eyeron ] Bonjour, J'ai une page de commentaires ou il y a un formulaire pour poster. Seulement les utilisateurs enregistrés peuvent poster. Je récupère la v >>>>>>SYSTEM<<<<<< [ par ec4 ] salut a tousje voudrais utiliser la commande :string system (string command ,[ int return_var])mais je ne sais qui mettre ds la variable command.De pl Cookies, mettre et relire DES Variables [ par codefalse ] Hello allcomment je pourrai faire pour mettre deux variables dans un cookie ( pseuod et pass ) et les relire dans le bon ordre ( mettre dans la variab cookie de m.... [ par booth ] bonjour...voilà j'ai un problème avec la durée de vie des cookies.Le truc c'est que la durée de vie d'un cookie est soumise à différentes actions de l


Nos sponsors


Sondage...

Comparez les prix

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,780 sec (4)

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