Boutton haut php erreur w3c

Bonjour,

j'ai un boutton

<a class="buttons up_arrow" href="'.$_SERVER['REQUEST_URI'].'#top" title="En haut">Remonter</a>

mais il me dit erreur sur w3c

Line 333, Column 82: & did not start a character reference. (& probably should have been escaped as &.)
...w" href="/forum-voirmessage.html?fid=1&tid=368&num=1#top" title="En haut">Remo...

es ce vous conaissez un code qui fait la même chose sans qu'il met erreur w3c

merci de votre aide

9 réponses

  1. Bonjour votre probleme est dans la mauvaise section.
    Cependant il faudrait mieux utiliser :
    <a class="buttons up_arrow" href="<?php $_SERVER['REQUEST_URI']; ?>#top" title="En haut">Remonter</a> 


    aux lieu de :
    echo'
    <a class="buttons up_arrow" href="'.$_SERVER['REQUEST_URI'].'#top" title="En haut">Remonter</a> 
    ';
    
    0
    1. Salut,

      Tes caractères '&' devrait être remplacé par '& amp;' (sans espace) dans ton lien.
      Utilises la fonction php urlencode() pour construire correctement ton url.

      Bonne journée
      0
      1. je sais mais si je remplace

        if(($antiup['forum_membre_id']==$_SESSION['id']&&($antiup['post_time']+(60*60)*24)>time())&&id2level()<MODO && $antiup['topic_locked']<1)

        par des amp;

        il me dit

        Parse error: syntax error, unexpected ';' in /var/www/legtux.org/users/monsite/modules/forum/message/message.php on line 237
        0
        1. Je parlais des caractères & présent dans ton url (en html), pas ceux en php correspondant à l'opérateur logique ET (&&) ou ceux devant le nom des variables php.

          Quel est ton code qui affiche ce lien ?
          0
          1. le code source html

            <a href="/forum-voirmessage.html?fid=1&tid=368&num=1#top" title="En haut">Remonter</a>

            et le code sur ma page

            <a href="'.$_SERVER['REQUEST_URI'].'#top" title="En haut">Remonter</a>

            ca vien de là

            if(($antiup['forum_membre_id']==$_SESSION['id']&&($antiup['post_time']+(60*60)*24)>time())&&id2level()<MODO && $antiup['topic_locked']<1)

            mais si je le change ca fait erreur parce
            0
            1. j'ai recorriger tt mes lien

              }
              redirect("Votre réponse à été ajoutée",getLienModule("forum","voirmessage")."?fid=".$_GET['fid']."&tid=".$_REQUEST['tid']."&num=".$_GET['num']);
              }else{
              redirect("Veuillez renseignez un méssage avant d'envoyer le formulaire !",getLienModule("forum","repondre")."?type=message&fid=".$_GET['fid']."&tid=".$_REQUEST['tid']."&num=".$_GET['num']);
              }
              }

              mais apparent come tu dit il ne sais pas si c'est un lien
              0
              1. Bonjour,

                À mon avis le problème vient de plus haut dans ton code.
                Il est tout-à-fait légitime d'avoir des & dans une URL, pour séparer les variables passées en GET. Le vérificateur ne devrait pas te les signaler, à moins qu'il n'ait pas reconnu qu'il était dans un lien !

                Vérifie que le code juste avant ton lien est correct, et qu'il n'y a pas de caractère bizarre dans le code html (genre une espace insécable au lieu d'une espace normale...)

                Xavier
                -1
                1. Non, & est un caractère spécial en html (début d'une entité). Il est donc normal que le validateur signale une erreur pour un & qui n'est pas utilisé pour décrire une entité html et qui devrait donc être convertie.
                  0
                2. Dans un texte entre deux balises (CDATA), oui, mais pas dans la valeur d'un attribut !
                  0
                3. Comme quoi on en apprend tous les jours.
                  J'ai toujours cru qu'il était normal de laisser les & tels quels dans les URL...
                  0
                4. C'est uniquement pour le cas d'un document HTML (ou XML).
                  Et ce n'est pas une erreur bloquante, c'est surtout pour faire plaisir au validateur ;)
                  0