Re Bonjour !!

C'est encore moi !!!!

Cette fois, j'ai un pb avec un code que j'ai trouvé pour un système de notation avec étoiles.

Il est pas mal, mais comment le lier à une page en particulier ?

En fait je fais un annuaire. J'ai donc mes adresses qui s'affichent suite à la recherche de l'internaute.

Dans chaque adresse affichée, je voudrais une page "avis". J'ai donc créé un bouton avec une transmission de l'id, et du nom dans l'url.

Etant débutante je galère !!!

Voici le code que j'ai trouvé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.';
        }
    }
?>
ça fonctionne bien, sauf que en l'état les votes s'affichent tous pareil pour toutes mes adresses...

Dans mon fichier avis, j'ai la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    <?php
                include('fonctions-vote.php');
                notation('5',$ip_vote);
     ?>
Autant j'arrive à faire un système de commentaires bien attaché à la bonne personne dans l'annuaire, que là j'y arrive pas....

Comment faire comprendre à mon système qu'il doit être lié à une adresse en particulier ?

Merci encore pour votre aide !!

Karine