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 :

Erreur lors de la validation W3C ou partage Facebook


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : Mai 2002
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Erreur lors de la validation W3C ou partage Facebook
    Bonjour,
    J'ai un site qui fonctionne très bien lorsque j'y accède "normalement", c'est à dire en l'affichant via un navigateur. A chaque affichage d'une page, je vérifie l'existence d'une session, et si ce n'est pas le cas, je l'initialise en plaçant entre autre la locale souhaitée en variable de session. Ce qui me permet ensuite de faire un require_once sur un fichier contenant les libellés traduits.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once(".../".$_SESSION['locale']."/message.php");
    Ce mécanisme fonctionne très bien.
    Sauf!
    En tentant de passer une page au W3C validator, j'ai vu que le validator examinait une page d'erreur Php, l'erreur étant sur le require précédent, qui ne pouvait ouvrir le fichier demandé. En effet, $_SESSION['locale'] est vide.
    En tentant de partager un lien sur Facebook, même erreur.

    J'ai l'impression que par ces modes d'accès aux pages, la session n'est pas créée. Et du coup mes pages ne peuvent être correctement interprétées.
    Ca m'inquiète d'autant plus si Google fonctionne de la même façon...

    Quelqu'un aurait une idée concernant ce problème?
    C'est étonnant, je ne pense pas être le seul à utiliser des variables de session!

    Merci d'avance.
    JM

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Dans ton code, a quoi correspond : Jamais vu mais on en apprends tout les jours...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : Mai 2002
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par MtgCmg Voir le message
    Jamais vu mais on en apprends tout les jours...
    C'était pour dire blablabla, si tu préfères, la vraie instruction est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once(realpath(dirname(__FILE__).'/../message/'.$_SESSION['LOCALE'].'/message.php'));
    Mais le pb ne vient pas de là, car cette instruction fonctionne bien quand j'accède au site normalement.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 63
    Points
    63
    Par défaut
    Ca peut venir du fait que les logiciels qui lisent ta page php ne stockent pas l'identifiant de session essaye de la passer dans l'url mais c'est pas beau

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : Mai 2002
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Je vais essayer de creuser ça.
    J'ai essayé d'afficher la page en bloquant tous les cookies, et ça s'affiche correctement quand même...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : Mai 2002
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Bon, j'ai fini par trouver la cause de mon problème en débuggant à coup de Google Webmaster Tools.

    En fait, le pb vient du fait que Google, FB ou le validateur W3C, ont un tableau de locales vide!
    Donc en fait, ma session était correctement initialisée, ma variable aussi, le pb étant qu'elle était vide. Il me manquait juste un petit test pour vérifier que la valeur n'était pas vide.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $locale = DEFAULT_LOCALE;
    $clientLocaleTab = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    foreach ($clientLocaleTab as $clientLocale) {
    	// Je teste si je possède un répertoire pour cette locale
    	if (strcmp($clientLocale, '')!=0 && is_dir(realpath(dirname(__FILE__).'/../message/'.$clientLocale))) {
    		$locale = $clientLocale;
    		break;
    	}
    }
    setInSession(LOCALE, $locale);
    Du coup, pour une valeur vide, le test isDir répondait true! $locale valait alors '' également et ensuite le require échouait car le chemin était incorrect!

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

Discussions similaires

  1. Erreur lors de la validation W3C
    Par paikan06 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/12/2011, 11h36
  2. Réponses: 2
    Dernier message: 29/08/2008, 22h51
  3. [XHTML] Erreur lors de la validation W3C
    Par Monkey_D.Luffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 25/06/2008, 11h17
  4. [JDOM] Erreur lors de la validation avec XSD
    Par c-ve dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 14/12/2007, 14h22
  5. Facelets et erreur lors de la validation
    Par sir_gcc dans le forum JSF
    Réponses: 2
    Dernier message: 01/05/2007, 15h35

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