| 12
 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
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 
 | <?php
 
    //Variable de connexion BDD
    $nom_du_serveur ="localhost";
    $nom_de_la_base ="votes";
    $nom_utilisateur ="root";
    $passe ="";
 
    //Fonction pour l'ip
    function getIp()
    {
        if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        {
            $ip_vote = $_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        elseif(isset($_SERVER['HTTP_CLIENT_IP']))
        {
            $ip_vote = $_SERVER['HTTP_CLIENT_IP'];
        }
        else
        {
            $ip_vote = $_SERVER['REMOTE_ADDR'];
        }
        return $ip_vote;
    }
    //Ip utilisateur
    $ip_vote = getIp();
 
    //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éjà 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>
            <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>
            </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 VALUES ( '', '".mysql_real_escape_string($id_vote)."', '".mysql_real_escape_string($note)."', '".mysql_real_escape_string($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{
                //On créer un cookie d'une durée de 20 secondes pour éviter les retours en arrière
                setcookie('deja_voter',$id_vote,(time() + 20));
 
                echo 'Merci d\'avoir noté cet article!<br/>
                Chargement en cours <img alt="Loading" src="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 'Nombre de vote : '.$total_vote.'<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 : '.$total_calcul_vote.'<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).'/10';
            //On affiche les étoiles
            for($i=1; $i<=$moyenne;$i++){
                echo '<img alt="'.$i.'" src="images-vote/etoile.png" style="width:32px;height:32px;"/>';
            }
        }
        else{
            echo 'Aucun vote pour le moment.';
        }
    }
?> | 
Partager