Bonjour,
Je me prends la tête à installer un script de vote sur mon forum phpBB3 Séo.
Grâce à l'aide de WRI j'arrive au bout, c'est presque parfait, il reste une dernière chose qui ne fonctionne pas, la récupération de l'ID de la personne qui vote.
Je la récupère ainsi :
Ensuite je me connecte à la db puis j'enregistre les diverses résultats en db :
Pour tester le cript, étant chez Free, j'ai voulu voter une seconde fois en passant par un proxy.
Impossible de voter à nouveau malgré une nouvelle ip.
J'ouvre la db et je constate ceci :
La colonne ip est vide, rien ne s'y enregistre et je ne comprends pas pourquoi ??
Si vous pouviez m'aider à comprendre.
Merci
Page test si vous voulez essayer de voter derrière moi : -http://www.ceinfo.fr/Forum/carpaccio-de-noix-de-saint-jacques-et-saumon-frais-t360.html
Je me prends la tête à installer un script de vote sur mon forum phpBB3 Séo.
Grâce à l'aide de WRI j'arrive au bout, c'est presque parfait, il reste une dernière chose qui ne fonctionne pas, la récupération de l'ID de la personne qui vote.
Je la récupère ainsi :
Code:
//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();
Ensuite je me connecte à la db puis j'enregistre les diverses résultats en db :
Code:
//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') ");
mysql_query($req);
//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>';
}
}
Pour tester le cript, étant chez Free, j'ai voulu voter une seconde fois en passant par un proxy.
Impossible de voter à nouveau malgré une nouvelle ip.
J'ouvre la db et je constate ceci :
La colonne ip est vide, rien ne s'y enregistre et je ne comprends pas pourquoi ??
Si vous pouviez m'aider à comprendre.
Merci
Page test si vous voulez essayer de voter derrière moi : -http://www.ceinfo.fr/Forum/carpaccio-de-noix-de-saint-jacques-et-saumon-frais-t360.html