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 :

[Cookies] Erreurs de validation HTML 4.01 Transitional!


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut [Cookies] Erreurs de validation HTML 4.01 Transitional!
    Bonjour

    lorsque je teste la validité de l'index du site, j'ai ces messages suivants qui concernent la session php du site :

    Warning Line 201 column 57: cannot generate system identifier for general entity "PHPSESSID".
    ...><a href="les_iles.php?ile=solitaire&PHPSESSID=1efd7785bd566e7531ff1c796c7cfa
    An entity reference was found in the document, but there is no reference by that name defined. Often this is caused by misspelling the reference name, unencoded ampersands, or by leaving off the trailing semicolon (;). The most common cause of this error is unencoded ampersands in URLs as described by the WDG in "Ampersands in URLs".

    Entity references start with an ampersand (&) and end with a semicolon (;). If you want to use a literal ampersand in your document you must encode it as "&amp;" (even inside URLs!). Be careful to end entity references with a semicolon or your entity reference may get interpreted in connection with the following text. Also keep in mind that named entity references are case-sensitive; &Aelig; and &aelig; are different characters.

    If this error appears in some markup generated by PHP's session handling code, this article has explanations and solutions to your problem.

    Note that in most documents, errors related to entity references will trigger up to 5 separate messages from the Validator. Usually these will all disappear when the original problem is fixed.



    Error Line 201 column 57: general entity "PHPSESSID" not defined and no default entity.
    ...><a href="les_iles.php?ile=solitaire&PHPSESSID=1efd7785bd566e7531ff1c796c7cfa
    This is usually a cascading error caused by a an undefined entity reference or use of an unencoded ampersand (&) in an URL or body text. See the previous message for further details.
    les sessions sont gérées avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if(isset($_REQUEST["lang"])){
    		session_start();
    		$_SESSION['version'] = $_REQUEST["lang"];
    }else{
    		session_start();
    		$_SESSION['version'] = $_SESSION['version'];
    }
    if($_SESSION['version']==""){
    		session_start();
    		$_SESSION['version'] = "FR";
    }
    Comment éviter ces erreurs de validation

    merci de votre aide

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Je crois qu'il vous faudrait redéfinir la directive arg_separator.output à &amp; au lieu de & (dans le fichier php.ini, par htaccess ou via ini_set).

    Attention, vos sessions ne semblent pas basées sur les cookies pour la transmission de l'identifiant (session.use_cookies à 1 et session.use_only_cookies à 1) mais par réécriture des liens et formulaires internes (session.use_trans_sid à 1). La sécurité en est considérablement diminuée.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut
    merci de votre réponse

    en fait le site est bilingue et pour pouvoir gerer les variables j'ai donc mis un lien sur l'index du type : lien.php?lang=FR
    avec le code suivant pour gerer tout ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(isset($_REQUEST["lang"])){
    		session_start();
    		$_SESSION['version'] = $_REQUEST["lang"];
    }else{
    		session_start();
    		$_SESSION['version'] = $_SESSION['version'];
    }
    if($_SESSION['version']==""){
    		session_start();
    		$_SESSION['version'] = "FR";
    }
    cette methode est donc dangereuse?
    sachant que c'est juste "FR" ou "EN" qui est envoyé en session
    dois je me tourner vers des sessions basées sur des cookies dans ce cas?

    une autre question :
    pourquoi de temps en temps j'ai l'affichage dans la barre d'adresse du navigateur ce qui suit :
    alors que je voudrais :
    que faire pour que &PHPSESSID ... n'apparaisse pas?
    cela est il lié à la methode que j'emploie pour les sessions?

    le php info :
    arg_separator.output & &

    session.use_cookies On On
    session.use_only_cookies Off Off
    session.use_trans_sid On On
    pour redéfinir la directive arg_separator.output à &amp; au lieu de & (dans le fichier php.ini, il faudrait donc que je passe par un .htaccess
    donc y ajouter le code suivant?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arg_separator.output 1;
    et si je suis obligé d'utiliser les cookies, ajouter aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.use_only_cookies 1;
    (je ne suis pas sur du code pour le .htaccess)

    encore merci

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par nicerico
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    }else{
    		session_start();
    		$_SESSION['version'] = $_SESSION['version'];
    }
    Quel intérêt y-a-t-il à faire ceci ?

    Citation Envoyé par nicerico
    cette methode est donc dangereuse?
    sachant que c'est juste "FR" ou "EN" qui est envoyé en session
    dois je me tourner vers des sessions basées sur des cookies dans ce cas?
    Si les données sont limitées à ça non, mais vous serez certainement amenés à stocker d'autres données par la suite ...

    Citation Envoyé par nicerico
    que faire pour que &PHPSESSID ... n'apparaisse pas?
    cela est il lié à la methode que j'emploie pour les sessions?
    Oui ceci est du au fait que session.use_trans_sid soit actif (sur On). D'après le phpinfo la méthode des cookies est aussi active et a priorité donc il doit y avoir un problème au niveau des cookies. Les acceptez-vous (voir les options de votre navigateur) ?

    Citation Envoyé par nicerico
    pour redéfinir la directive arg_separator.output à &amp; au lieu de & (dans le fichier php.ini, il faudrait donc que je passe par un .htaccess
    donc y ajouter le code suivant?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arg_separator.output 1;
    et si je suis obligé d'utiliser les cookies, ajouter aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.use_only_cookies 1;
    (je ne suis pas sur du code pour le .htaccess)
    Dans un .htaccess (il faut que PHP soit utilisé comme module Apache et que votre hébergeur vous le permette - à voir dans les documentations qu'il met à votre disposition ou contacter le support après essai), mettre :
    php_value arg_separator.output &amp;
    (ne serait plus vraiment utile si vos sessions n'étaient basées que sur les cookies)

Discussions similaires

  1. [HTML] Correction des erreurs de validation W3C
    Par jlb59 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 24/02/2008, 09h50
  2. [W3C] erreur de validation W3C HTML 4.01 Transitional
    Par durand2504 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 14/03/2006, 10h47
  3. [W3C] Validation HTML W3C / <a> et <textarea>
    Par nico-pyright(c) dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 03/08/2005, 16h33
  4. [DOM] Erreur pour valider une DTD
    Par lenghh dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 19/05/2004, 18h15

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