IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

mon echo ne s'affiche pas


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Points : 10
    Points
    10
    Par défaut mon echo ne s'affiche pas
    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 :

    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
     
    <?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'].' &frasl;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'].' &frasl;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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<p id="clicforvote">Cliquez ici pour donner une note à ce projet -></p><p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> '.$data7['moyenne'].' &frasl;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/i...tails.php?ID=1

    Je précise : en local lorsqu'il y a bien un vote déjà enregistré à mon ip à savoir 127.0.0.1 le bloc affiche bien mon vote, un lien pour modifier la note et la moyenne !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    le bloc qui ne s'affiche pas
    tu veux dire que c'est le cas if{} qui s'affiche ou aucun des deux ?
    dans le lien que tu donnes je n'ai pas de systeme de vote.

    au passage, dans ta note sur l'orthographe, il y a deux fautes

  3. #3
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    1) Si ton echo ne s'afffiche pas, il n'y a pas de magie, c'est que cette condition ($data4['Ips'] > 0) n'est pas remplie.

    Donc essaye de voir ce qu'elle vaut réellement, par rapport à ce que tu croyais qu'elle vaut. C'est le point de départ duquel tu pourras remonter à la source de ton probleme.


    2) J'ai aussi un doute sur la façon d'ecrire ta requete, même si cela fonctionne probablement, et je ne crois pas du tout que cela soit la source de ton probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $currentvoted = "SELECT note FROM $rater_dbname.$rater_tableName WHERE IP='$ip' AND IDparentnote='$IDgetted_projet'";
    Justement, pour éviter les ambiguités de ce genre, j'écris cela différemment. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete4	= "UPDATE %s SET status_envoi_mail = '%s', date_envoi_mail = %d WHERE login='%s'";
    $retour4= mysql_query(sprintf($requete4,$table,$send_mail[0], time(), $login_user));
    Peut-être peux tu essayer d'afficher la requete sur ton serveur local et ton serveur de production, par un simple "echo".


    3) Enfin, tu as peut-être des tables différentes entre tes 2 serveurs. Penses aussi à les comparer ou revérifier.


    Voila pour quelques pistes avec un oeil extérieur.

  4. #4
    Membre régulier Avatar de vrd-74
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 102
    Points
    102
    Par défaut
    Tu veux dire que rien ne s'affiche, ou qu'il t'affiche le contenu de ton premier echo (déjà voté) ? $ip contient bien ton ip ?
    N'hésite pas à vérifier les logs sql de wamp (ou easyphp, enfin ce que tu utilises) pour vérifier si tes requêtes contiennent bien les bons paramètres.

    PS: la balise font est dépréciée.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Cela veut dire que aucun des if n'est executé
    Surement un bug à cette ligne

  6. #6
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par theo77186 Voir le message
    Cela veut dire que aucun des if n'est executé
    Surement un bug à cette ligne
    ça veut pas dire si l'ip est supérieure à 0 ?
    pck si le visigteur n'a pas voté alors le Ips est égal a 0 vu qu'il n'y a pas de vote pour l'ip javais essayé en mettant un if ($data4['Ips'] == 1) mais j'avais toujous le même problème

    Où puis-je trouver les logs (note : je possède firebug) ?

    Citation Envoyé par sabotage Voir le message
    tu veux dire que c'est le cas if{} qui s'affiche ou aucun des deux ?
    dans le lien que tu donnes je n'ai pas de systeme de vote.

    au passage, dans ta note sur l'orthographe, il y a deux fautes
    ben c'est le cas if qui s'affiche quand la condition est remplie mais pas l'autre lorsque la condition n'est pas remplie le système de vote n'apparaît même pas dans la div bottom-blocvote

  7. #7
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    j'ai trouvé la solution :

    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
    <?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
    $req2 = mysql_query($notemoyenne) or die('Erreur SQL !<br>'.$notemoyenne.'<br>'.mysql_error());
    $data2 = mysql_fetch_assoc($req2);
    // 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());
    $data3 = mysql_fetch_assoc($req3);
    // 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
    $req4 = mysql_query($currentvoted) or die('Erreur SQL !<br>'.$currentvoted.'<br>'.mysql_error());
    $data4 = mysql_fetch_assoc($req4);
    $nbcurrentvote = "SELECT COUNT(note) FROM $rater_dbname.$rater_tableName WHERE IP='$ip' AND IDparentnote='$IDgetted_projet'";
    $req5 = mysql_query($nbcurrentvote) or die('Erreur SQL !<br>'.$nbcurrentvote.'<br>'.mysql_error());
    $data5 = mysql_fetch_assoc($req5);
    // fin de fonction pour savoir si le visiteur a déjà voté
    ?>
     
     
    <?php if ($data5['COUNT(note)'] == 0){ // Show if recordset not empty ?>
    <div id="bottom-blocvote">
    	<p id="clicforvote">Cliquez ici pour donner une note à ce projet -></p>
    	<p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> <?php echo $data2['moyenne']; ?> &frasl;10 </font>(<font color="#784e00"><?php echo $data3['nbvotes']; ?></font><font size="-1"> votes</font>)</p>
    </div>
    <?php } // Show if recordset not empty ?>
     
    <?php if ($data5['COUNT(note)'] == 1){ // Show if recordset not empty ?>
    <div id="bottom-blocvote">
    	<span id="yourvote">votre note : <font color="#ff9900"><?php echo $data4['note']; ?>/10</font></span>
    	<span id="changenote">Modifier ma note -></span>
    		<p id="blocvotemoyenne">Note moyenne :<font color="#ff9900"> <?php echo $data2['moyenne']; ?> &frasl;10 </font>(<font color="#784e00"><?php echo $data3['nbvotes']; ?></font><font size="-1"> votes</font>)</p>
    </div>
    <?php } // Show if recordset not empty ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SimpleXML] Le contenu de mon élément ne s'affiche pas
    Par alliance dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/05/2006, 20h27
  2. Mon fichier ne s'affiche pas...
    Par natanyanka dans le forum Access
    Réponses: 10
    Dernier message: 21/03/2006, 16h24
  3. [XSL]Comment faire ceci ?? Mon for-each n'affiche pas tout !
    Par Devil666 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 27/07/2005, 15h04
  4. Mon dessin ne s'affiche pas au lancement...
    Par Deedier dans le forum MFC
    Réponses: 6
    Dernier message: 02/05/2005, 16h29
  5. [JApplet]mon applet ne s'affiche pas.
    Par yannick56 dans le forum Applets
    Réponses: 6
    Dernier message: 27/05/2004, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo