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 :

Session ID et redirection


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Session ID et redirection
    Bonsoir,

    c'est mon premier message sur le forum, j'espère donc que je m'y prends bien

    J'ai dû reprendre un site internet pour une entreprise alors que je n'ai pas beaucoup d'expérience dans le PHP ou le web en général.

    J'ai réussi à faire ce que je voulais jusqu'à présent, modifier l'aspect du site, etc...

    Mon problème c'est qu'il y a du code PHP que j'ai du mal à comprendre. J'ai remarqué qu'au début de chaque page, le webmaster précédent avait mis un session_start(); j'ai bien compris que c'était pour faire démarrer le PHP et donc pouvoir utiliser des variables, etc.

    Cela permet de savoir notamment s'il faut afficher le texte de la page en anglais ou en français.

    Il y a un bout de code que j'ai du mal à comprendre, s'il n'y a pas de session ouverte, alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!isset($_SESSION['l'])){
    	header("Location: http://mapage.com");
    }
    Là où je ne comprends pas, c'est qu'au début du fichier, il y a bien le session_start(); . Pourquoi du coup, il m'arrive d'être redirigé vers la page http://mapage.com ? Je remarque que ce problème n'arrive que sur Firefox lorsque l'utilisateur n'entre pas www dans l'url. Si l'utilisateur tape www.mapage.com et qu'il navigue sur les différents liens de la page, alors ça fonctionne.

    J'ai essayé sur Chrome, Chromium, IE, etc et tout fonctionne très bien. Comment expliquer alors que ça ne fonctionne pas sur Firefox? De plus, je remarque que les utilisateurs naviguent de liens en liens très bien, mais il faut attendre à peu près qu'ils atteignent la 3e page visitée pour que PHPSESSID s'affiche dans l'url (pour le moment le fait que cela s'affiche n'est pas un problème, et c'est toujours seulement avec Firefox)

    Pouvez-vous m'aider à comprendre cela ? Merci par avance

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 204
    Points : 4 677
    Points
    4 677
    Par défaut
    Bonjour,

    Il est très difficile de te répondre

    1) session_start() démarre uniquement les sessions php
    2) si tu as PHPSESSID dans l'url c'est que le navigateur refuse les cookies car normalement ce PHPSESSID est dans le cookie du navigateur.
    3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!isset($_SESSION['l'])){
    signifie si la valeur nommée l dans la session est vide alors rediriger vers ...

    cela veux dire que quelque part dans le code du site, normalement il y a un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(????) $_SESSION['l']=xxxx;
    la signification, le pourquoi est impossible a savoir il faut retrouver ce if

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Apparemment le cookie de session fonctionne mal. C'est bizarre. Vérifie que firefox est configuré pour accepter les cookies (mais c'est le cas par défaut).
    Il doit y avoir des erreurs quelque part dans ton script. Essaye de faire afficher temporairement toutes les erreurs avec ces lignes en début de script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ini_set("display_errors", "ON");
    error_reporting(E_ALL);
    Tes tests se font-ils en local ou sur le serveur distant ? Y'a t-il une différence de comportement entre local et distant ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Suite et fin problème PHP SessionID et problème de redirection
    Salut,

    d'abord merci à papajoker et ABCIWEB pour m'avoir répondu

    J'ai essayé ce que vous m'avez proposé, d'abord savoir d'où venait la variable l, elle vient de là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function changer_de_langue($p,$langue){
    	// la page est dans $_SERVER['PHP_SELF']; ==> /page_.php
    	$mapage = explode("_",$p);
    	// => /index
    	if ($langue == "fr"){
    		$page = $mapage[0]."_en.php";
    		$_SESSION['langue'] = "en";
    	} else {
    		$page = $mapage[0]."_fr.php";
    		$_SESSION['langue'] = "fr";
    	}
    	return $page;
    }

    En gros, le webmaster coupait le nom de la page pour savoir si la fin de l'url était en ou fr et du coup, cela chargeait une page dans la langue adéquate.

    Mais, cela ne m'a pas aidé malheureusement pour mon problème.

    J'ai donc essayé aussi ce que ABCIWEB m'avait proposé, mais en rajoutant les lignes au début du script, cela n'a rien affiché

    Du coup, j'ai résolu mon problème en testant l'url depuis laquelle l'internaute provenait. S'il venait de ma_page_en.php alors afficher la page en anglais. Si non afficher en français. Et ça marche, je sais que c'est très moche comme solution et que techniquement ça ne résout pas le problème...

    C'est juste que je ne sais pas pourquoi, pour Firefox seulement et seulement si les gens ne mettaient pas www devant ça ne marchait pas. Comme ça, même dans ce cas particulier, la redirection se fait bien

    Voilà,

    merci en tout cas pour votre aide,

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par Pimp92a Voir le message
    C'est juste que je ne sais pas pourquoi, pour Firefox seulement et seulement si les gens ne mettaient pas www devant ça ne marchait pas.
    Remarque qu'il existe une solution via urlrewriting pour rajouter le préfixe www devant ton url si il n'y est pas. Dans un .htaccess placé à la racine du site tu peux écrire :

    # Le serveur doit suivre les liens symboliques :
    Options +FollowSymlinks

    # Activation du module de réécriture d'URL :
    RewriteEngine on

    #--------------------------------------------------
    # Règles de réécriture d'URL :
    #--------------------------------------------------

    RewriteCond %{HTTP_HOST} ^domaine.com$
    RewriteRule ^(.*) http://www.domaine.com/$1 [QSA,L,R=301]

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    C'est bon à savoir, merci beaucoup!

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

Discussions similaires

  1. Mauvaise valeur en session sur une redirection
    Par cygne dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2015, 23h55
  2. [Debutant(e)]Timeout de session et redirection page acceuil
    Par xhercule dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 26/12/2007, 11h23
  3. Session expirée et redirection
    Par Shivaneth dans le forum Struts 1
    Réponses: 4
    Dernier message: 23/07/2007, 16h08
  4. [VB.NET] Durée vie var session vs redirect page login
    Par fabthebreton dans le forum ASP.NET
    Réponses: 5
    Dernier message: 16/12/2004, 17h35
  5. Probleme de redirection apres fermeture de session
    Par soufienne dans le forum ASP
    Réponses: 3
    Dernier message: 08/04/2004, 10h52

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