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 :

Questions divers (cookie vs session)


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut Questions divers (cookie vs session)
    Bonjour tout le monde et j'espère que je suis au bon endroit pour poser mes questions...
    Au fait c'est simple mais ca me bloque un peu. J’espère avoir de l'aide

    1- j'utilise dans mon site quelques variables de SESSION ainsi que 2 variables COOKIE (identifiant et la langue), j'ai remarque que mon navigateur me crée automatiquement un cookie nommé PHPSESSID et me rajoute parfois un champ de texte type="hidden" name="PHPSESSID". en faisant des recherches sur le net, j'ai vu sur certains forums que PHPSESSID n'est pas tres apprecié par certain moteurs de recherche notamment Google. Le confirmez vous et comment faire pour ne pas avoir cette variable??

    2- le site que je crée en ce moment utilisera les réécritures d'url pour la gestion des différentes langues. puisque j'ai déjà une variable cookie pour la langue ($_COOKIE['lang']) puis-je l'utiliser pour afficher la bonne langue ou devrais-je plutôt utiliser une variable $_GET['lang']??

    Merci beaucoup

  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 problème se situe lorsque l'identifiant de session est transmis par l'url et non par cookie.
    On se retrouve alors avec un referencement Google contenant un indentifiant de session dans son adresse.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Merci sabotage pour ta réponse.

    Mais donc du moment que PHPSESSID n'est pas transmis par l'url, il n'y a pas de quoi s'inquiéter alors???

    Et concernant mes réécritures d'url ou appel des mes fichiers de langues. Mieux vaut il utiliser la variable cookie que j'ai ou plutôt une variable GET?
    c'est a dire: dois-je toujours transmettre le paramètre ?lang=en dans l'url ou puis je me servir tout simplement de $_COOKIE['lang']??

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Du point de vue du référencement, il faudrait respecter la règle:

    A un contenu correspond un et un seul url. Un url mène toujours
    au même contenu.

    Cette règle implique que la langue fasse partie de l'url.

    L'url rewritting permet d'avoir la langue de manière élégante
    dans l'url. Par exemple: www.monsite.com/fr-produits.html

    Si par contre tu développe une application web avec un login,
    ces règles peuvent être différentes suivant le comportement
    désiré. Et les moteurs de recherche n'ont rien à faire "derrière
    le login"
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonjour Marcha et merci pour ta participation.

    Je me perds un peu
    On va essayer de traiter les choses par étapes
    1 que faut-il faire au sujet de PHPSESSID? J’ai ce cookie qui se crée tout seul. Est-ce un problème??

    A un contenu correspond un et un seul url. Un url mène toujours
    au même contenu.
    Oui ca je le sais mais ma question est la suivante:
    2- pour mes réécritures, j'aurais une url du type www.monsite.com/fr/catalogue/chaussures/...
    est ce que le 'fr' qui est en gras et rouge doit faire l'objet d'un paramètre GET dans la règle d'écriture dans le .htaccess ou je peut tout simplement l'ignorer et me servir de $_COOKIE['lang'] qui devrait être 'fr' aussi ??

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Au niveau du référencement, ça dépend essentiellement de ta redirection. Si par exemple tu utilises une URL différente pour chaque langue (ex: mes-produits.html / my-products.html), alors tu peux garder ta variable de langue en Cookie sans problème.

    Si tes URLs sont identiques pour chaque langue, alors oui il faut différencier les pages, car comme le dit marcha

    A un contenu correspond un et un seul url. Un url mène toujours
    au même contenu.
    L'idéal étant bien entendu de proposer une URL pour chaque langue.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    D’accord. Merci.
    Je pense aussi avoir plusieurs domaines et extensions:
    hello.com (general)
    hello.co.uk (royaume uni)
    bonjour.fr (france)
    hola.es (espagne)
    J’ai lu que c'est super intéressant pour le référencement, c'est vraiment tentant mais comment cela peut être réalisé??
    Je suis hébergé en mutualisé chez ovh. J’ai vu qu'ils proposent l'option multi domaines mais il faut préciser un dossier physique pour chaque domaine (.fr -> /fr/, .co.uk -> /en/, ...). Mais le problème c'est que je n'ai pas de dossier sur le serveur...

  8. #8
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,
    Citation Envoyé par redah75
    Que faut-il faire au sujet de PHPSESSID ?
    On peut empêcher son apparition :

    Pour la deuxième question, je suis d'accord avec julien731
    L'idéal étant bien entendu de proposer une URL pour chaque langue.

  9. #9
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par redah75
    je suis hebergé en mutulaisé chez ovh
    La méthode la plus adaptée est d'ajouter dans le .htaccess la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetEnv SESSION_USE_TRANS_SID 0
    Je te recommande la lecture du tutoriel multi-domaine, création sans accroc

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Merci Eric2a pour ta réponse concernant le PHPSESSID. Je vais mettre tout de suite le code que tu m'as donné et vous tiendrai au courant.
    Avant, j'ai 2 petite questions:
    1- faut il l'enlever et à quoi sert ce cookie?
    2- j'ai aussi remarqué que j'ai 4 autres cookies nommés _utma, _utmb, _utmc et z. qu'est ce que c'est???

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Je te recommande la lecture du tutoriel multi-domaine, création sans accroc
    effectivement le tuto que j'avais lu sur le site d'ovh n'etait pas complet!! merci
    le seul inconvenient c'est que le multidomaine n'est pas proposé dans leurs offres dédiés, donc le jour ou je veux passer en dédié, je vais souffrir!!

    mais penses tu que ca en vaut le coup d'avoir plusieurs domaines??
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> ne fera pas l'affaire?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    'ai aussi remarqué que j'ai 4 autres cookies nommés _utma, _utmb, _utmc et z. qu'est ce que c'est???
    désolé d'avoir posé une question sans avoir fait prealablement une recherche
    http://helpful.knobs-dials.com/index...,_utmz_cookies

    SetEnv SESSION_USE_TRANS_SID 0
    ne fonctionne pas!!

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par redah75 Voir le message
    mais penses tu que ca en vaut le coup d'avoir plusieurs domaines??
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> ne fera pas l'affaire?
    Tout dépend: si tu utilise un domaine par langue, ton référencement sera plus efficace, mais à condition que le contenu soit bien différent sur chaque domaine.

    Ce à quoi il faut bien faire attention, c'est le duplicate content sur plusieurs domaines, et aussi à ne pas mettre tes pages en concurrence entre elles. Tout cela part également de l'hypothèse que TOUT ton contenu est traduit dans chaque langue. Si il reste des "morceaux" de la langue originale (dans les descriptions de produits ou autre), c'est encore un autre cas.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Tout dépend: si tu utilise un domaine par langue, ton référencement sera plus efficace, mais à condition que le contenu soit bien différent sur chaque domaine.
    C’est justement LA question que je me pose actuellement et qui m'empêche d'avancer...
    C’est clair que si je mets en place plusieurs domaines, j'aurai bien évidemment 2 contenus différents. Un petit problème se posera entre monsite.com (général et international) et monsite.co.uk (Royaume Uni), il y a que le prix qui va changer et quelques autres mots. Je ne pense pas que cela soit considéré comme du duplicate contenu!! Pour exemple: http://store.apple.com/uk et http://store.apple.com/us

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Dans ce cas mieux vaut utiliser ton site général/international comme version UK en même temps. Sinon tu va générer énormément de duplicate content, et surtout les page de ton site international seront en concurrence directe avec ton site UK.

    Éventuellement, tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel=”alternate” hreflang="a-different-language" href="http://url-of-the-different-language-page" />
    afin de spécifier quelle est la "vraie" URL pour chaque page UK si tu tiens absolument à prendre les deux domaines (international et UK), mais si ton site indexe beaucoup de pages cette solution ne me semble pas la meilleure... et surtout tu va pénaliser le référencement de l'un des deux domaines.

  16. #16
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par redah75
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetEnv SESSION_USE_TRANS_SID 0
    ne fonctionne pas
    Ca fonctionne sur un 90plan. Maintenant peut-être que les nouvelles offres requièrent...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php_flag session.use_trans_sid off
    Mais j'en doute. Faudrait voir sur leur forum.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Dans ce cas mieux vaut utiliser ton site général/international comme version UK en même temps. Sinon tu va générer énormément de duplicate content, et surtout les page de ton site international seront en concurrence directe avec ton site UK.
    Ce qui me fait hésiter énormément c'est qu’au moment du lancement du site. C’est la clientèle anglaise qui sera ciblée en premier. Mettre alors que le .com pour le royaume uni risque de ne pas me faire bien référencer...!!
    ohlalaaaa, je m'arrache les cheveux et ne sais plus quoi faire!

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    SetEnv SESSION_USE_TRANS_SID 0
    au fait j'ai vu que cette ligne de code permet de ne pas afficher le parametre phpsessid dans l'url. ce n'est pas le probleme que j'ai. chez moi c'est un cookie qui se crée sous le non de PHPSESSID
    est ce que ce cookie peut nuire par exemple au referencement? ou vaut il mieux le virer??

  19. #19
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Et bien... un souci en moins pour ton réferencement si l'identificateur de session ne se trouve pas dans l'URL.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Et bien... un souci en moins pour ton référencement si l'identificateur de session ne se trouve pas dans l'URL.
    C’est vrai. Mais le fait qu'il soit stocké en tant que cookie, je ne sais pas trop si c'est bon ou pas. J’ai vérifié sur d’autres sites et ils n'ont pas ce cookie!!
    Le malheur c'est que je ne trouve aucune réponse sur le net à ce sujet!!

    J’ai une dernière question qui me traverse l'esprit:
    Je stocke 'en' ou 'fr' pour les langues, mais mes bases de données j'utilise plutôt les identifiants numériques.
    Pour récupérer le texte dans la bonne langue et en pensant aux performances faut il:
    1- faire tout simplement une jointure WHERE table_langues.id_lang = table_texte.id_lang AND table_langues.iso = 'en'
    2- faire une première requête pour récupérer l'identifiant de 'en' puis une 2e requête pour récupérer le texte dans la langue en question.

    j'espère avoir été clair

Discussions similaires

  1. [Cookies] Cookies et sessions
    Par TNorth dans le forum Langage
    Réponses: 6
    Dernier message: 19/05/2006, 01h22
  2. [Sécurité] Question de culture sur Session
    Par metalpetsFR dans le forum Langage
    Réponses: 2
    Dernier message: 16/05/2006, 10h42
  3. Réponses: 3
    Dernier message: 01/05/2006, 15h09
  4. [Cookies] PB sessions php et navigation sous imode
    Par hardkmel dans le forum Langage
    Réponses: 8
    Dernier message: 23/12/2005, 13h22
  5. [Cookies] Récupération de cookie de session...
    Par Tizard dans le forum Langage
    Réponses: 1
    Dernier message: 07/12/2005, 15h33

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