bonjour j'ai un problème d'affichage d'un echo le echo en question correspond à du texte inséré en fonction de si le visiteur a déjà voté (grâce à l'ip) voici le code php :
Citer :
Code :
<?php
// fonction recuperation de l'ip du visiteur
function get_ip(){
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])){
$ip = $_SERVER['HTTP_CLIENT_IP'];}
else{ $ip = $_SERVER['REMOTE_ADDR'];}
return $ip;}$ip = get_ip();
// fin de fonction get_ip
$IDgetted_projet = "-1";
if (isset($_GET['ID'])) {
$IDgetted_projet = $_GET['ID'];
}
// fonction de récupération de la moyenne pour le projet
$notemoyenne = "SELECT ROUND(AVG(note)) AS moyenne FROM $rater_dbname.$rater_tableName WHERE IDparentnote='$IDgetted_projet'";
// envoi de la requête
$req7 = mysql_query($notemoyenne) or die('Erreur SQL !<br>'.$notemoyenne.'<br>'.mysql_error());
while($data7 = mysql_fetch_assoc($req7))
{
// fonction de récupération du nombre de votes
$numbervotes = "SELECT COUNT(note) AS nbvotes FROM $rater_dbname.$rater_tableName WHERE IDparentnote='$IDgetted_projet'";
// envoi de la requête
$req3 = mysql_query($numbervotes) or die('Erreur SQL !<br>'.$numbervotes.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data3 = mysql_fetch_assoc($req3))
{// on affiche les informations demandées
// fonction afficher la note que vous avez donné au projet si vous avez déjà voté
$currentvoted = "SELECT note FROM $rater_dbname.$rater_tableName WHERE IP='$ip' AND IDparentnote='$IDgetted_projet'";
// envoi de la requête
$req5 = mysql_query($currentvoted) or die('Erreur SQL !<br>'.$currentvoted.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data5 = mysql_fetch_assoc($req5))
{// on affiche les informations demandées
// fonction pour savoir si le visiteur a déjà voté
$iphashevoted = "SELECT COUNT(IP) AS Ips FROM $rater_dbname.$rater_tableName WHERE IP='$ip' AND IDparentnote='$IDgetted_projet'";
// envoi de la requête
$req4 = mysql_query($iphashevoted) or die('Erreur SQL !<br>'.$iphashevoted.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data4 = mysql_fetch_assoc($req4))
{// on affiche les informations demandées
if ($data4['Ips'] > 0) {
echo '<span id="yourvote">votre note : <font color="#ff9900">'.$data5['note'].'/10</font></span> <span id="changenote">Modifier ma note -></span><p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> '.$data7['moyenne'].' ⁄10 </font>(<font color="#784e00">'.$data3['nbvotes'].'</font><font size="-1"> votes</font>)</p>';}
else {
echo '<p id="clicforvote">Cliquez ici pour donner une note à ce projet -></p><p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> '.$data7['moyenne'].' ⁄10 </font>(<font color="#784e00">'.$data3['nbvotes'].'</font><font size="-1"> votes</font>)</p>';}
}
}
}
}
?>
le bloc qui ne s'affiche pas (alors que la condition est remplie vis à vis de la BD) est celui-ci :
Citer :
Code :
echo '<p id="clicforvote">Cliquez ici pour donner une note à ce projet -></p><p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> '.$data7['moyenne'].' ⁄10 </font>(<font color="#784e00">'.$data3['nbvotes'].'</font><font size="-1"> votes</font>)</p>';}
Vous pouvez apercevoir la page ici (utilisez firebug car clic droit désactivé) :
http://lefebvresbook.monespace.net/infographisme-details.php?ID=1Je précise : en local lorsqu'il y a bien un vote déjà enregistré à mon ip à savoir 127.0.0.1 (local) le bloc affiche bien mon vote, un lien pour modifier la note et la moyenne !