Boutton haut php erreur w3c

debhane -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
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

meganium Messages postés 285 Date d'inscription   Statut Membre Dernière intervention   81
 
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
debhane
 
il y a quelqu'un qui a répondu mais je ne vois pas sa réponse
0
meganium Messages postés 285 Date d'inscription   Statut Membre Dernière intervention   81
 
0
debhane
 
merci je ne vois pas la réponse le jours ou je comprendrais ce forum qui est un peut bizzare au niveau de la presentation
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
debhane
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
debhane
 
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
debhane
 
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
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Pour afficher correctement un lien dans un document html :
$lien = 'index.php?foo=1&bar=2';
echo $lien; // incorrect : syntaxe html non valide
echo htmlentities($lien); // correct : syntaxe html valide


https://www.htmlhelp.com/tools/validator/problems.html.fr#amp

https://www.php.net/manual/fr/function.urlencode.php#refsect1-function.urlencode-notes
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Dans un texte entre deux balises (CDATA), oui, mais pas dans la valeur d'un attribut !
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
C'est l'inverse, le contenu d'un CDATA est ignoré par le parser donc on peut y insérer ce que l'on souhaite.
Par contre dans un document html, tous les caractères réservés (<, > et &) doivent être remplacé par des entités : Reserved characters in HTML must be replaced with character entities.
https://www.w3schools.com/html/html_entities.asp
https://www.htmlhelp.com/tools/validator/problems.html.fr#amp
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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