1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| //Connexion à la base de données
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
//Vérification d'accès à la base de données
mysql_select_db("$nom_de_la_base") or die ('Erreur :'.mysql_error());
//Fonction pour la notation
function notation($id_vote,$ip_vote){
//L'utilisateur a t'il déja voté?
$deja_voter = mysql_query("SELECT ip FROM note WHERE ip = '".mysql_real_escape_string($ip_vote)."' AND id_page = '".mysql_real_escape_string($id_vote)."'");
//L'utilisateur n'a pas voté, on montre le formulaire
if(mysql_num_rows($deja_voter) == 0)
{
echo ' <form name="monform" id="monform" method="post"> <label>Noter cet article</label> <select name="note" onchange="javascript:submit(this)"> <option value="">Note</option> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> </form> ';
}
//Si action de valider et que la note est différent de vide
if(isset($_POST['note']) && $_POST['note'] != NULL){
//On vérifie si le cookie existe et si tel est le cas, c'est que l'utilisateur tente de voter plusieurs fois
if(isset($_COOKIE["deja_voter"]) && $_COOKIE["deja_voter"] == $id_vote){
die ("Un seul vote autorisé ... merci!"); }
//Note de l'utilisateur
$note = $_POST['note'];
//Insertion en BDD
$insert = mysql_query("INSERT INTO note (id_page, note, ip) VALUES ('$id_vote', '$note', '$ip_vote') ");
//Si il y a une erreur
if(!$insert) {
die('Requête invalide : ' . mysql_error());
}
//Tout est ok, on informe et on redirige
else{
echo 'Merci d\'avoir note cet article! <br/> Chargement en cours <img alt="Loading" src="images/images-vote/loading.gif" style="width:32px;height:32px;"/> <script type="text/javascript"> document.getElementById("monform").innerHTML = ""; window.setTimeout(function(){self.location.href="'.$_SERVER['REQUEST_URI'].'";},3000); </script>';
}
}
//Combien d'utilisateurs ont votés?
$nombre_vote = mysql_query("SELECT id FROM note WHERE id_page = '".mysql_real_escape_string($id_vote)."'");
$total_vote = mysql_num_rows($nombre_vote);
if($total_vote != 0){
echo '<span class="review hreview-aggregate">Nombre de vote : <span class="count">'.$total_vote.'</span><br/>';
}
//Total des votes des utilisateurs
$calcul_vote = mysql_query("SELECT SUM(note) AS totalmoyenne FROM note WHERE id_page = '".mysql_real_escape_string($id_vote)."'");
$data = mysql_fetch_array($calcul_vote);
$total_calcul_vote = $data['totalmoyenne'];
if($total_calcul_vote != 0){
echo 'Total des votes : <span class="rating">'.$total_calcul_vote.'</span></span><br/>';
}
//Moyenne des votes des utilisateurs
if($total_vote != NULL && $total_calcul_vote != NULL){
$moyenne = number_format($total_calcul_vote/$total_vote, 2, ',', '');
//Si les 2 chiffres après la virgule sont 2 zéros, on les suppriment pour obtenir un entier
echo 'Note : '.str_replace(',00','',$moyenne).'/5';
//On affiche les étoiles
for($i=1; $i<=$moyenne;$i++){
echo '<img alt="'.$i.'" src="images/images-vote/etoile.png" style="width:32px;height:32px;"/>';
}
}
else{
echo 'Aucun vote pour le moment.';
}
}
?> |
Partager