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 :

Problème session Edge/IE


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut Problème session Edge/IE
    Bonjour,

    Sous Edge/IE la session n'est pas créer, ou le cookie qui contient l'ID de la session ne l'est pas.

    Sous tous les autres navigateurs il n'y a aucun problème.

    Les cookies sont bien autorisés mais quand je vais l'outil de développement, aucun cookie n'est créer.

    En mode débug, le code créé bien la session avec le cookie mais apparement Edge/IE ne le garde pas.

    Savez vous pourquoi ?

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Bonjour,

    Désolé pour le double post. je rajoute des informations.

    La session et le cookie sont bien créer.

    Mais après la redirection, la session et le cookie n'existe plus. Seulement sous Edge/IE.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Question bête : tu n'as pas activé un mode "navigation privée" ou quelque chose du genre sur IE ?
    Peut-on voir ton script ?
    Est-ce que si tu utilises un script basique de test, ça fonctionne ?

    Pour info : un double post est justifié si il s'est écoulé un temps raisonnable depuis le 1er post et qu'il sert à quelque chose, comme compléter les informations (et pas juste à spammer "up !" ), ce qui est parfaitement ton cas
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Bonjour,

    Non ce n'est pas en navigation privé.
    Après je connais pas trop Edge, je le lance juste a partir du menu démarré. Peut ètre des paramètres cachés.


    AuthController.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    if ($this->request->isPost()  )
            {
                $username=$this->request->getPost("username");
                $pwd=$this->request->getPost("password");
                if ( $username == '' or $pwd == '')
                {
                    $this->view->errormessage='login incorrect';
                    return;
                }
     
                //DebugBreak("1@172.16.191.135;d=1,p=0");
                $config= \Phalcon\DI::getDefault()->get('config');
                //$class=$config->application->authentication;
                $user=new \Models\Societaire\Authentication();
                if ( $user)
                {
                    //utilisateur trouv?
                    // DebugBreak("1@172.16.191.135;d=1,p=0");
                    if ( $user->authenticate($username,$pwd))
                    {
                        $user->data->username=$username;
                        WebsocSession::setSession($user,$pwd);
                        $this->logger()->notice("login : $username : OK IP: ".$_SERVER['REMOTE_ADDR']);
                        $this->response->redirect('/'); 
                    } 
                    else
                    {
     
                             $this->view->errormessage='login incorrect';
                             $this->logger()->warning("login : $username : FAILED IP: ".$_SERVER['REMOTE_ADDR']); 
     
                    }
                }			
            }
    WebsocSession.php fonction setSession($user,$pwd)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $distributeur=new Distributeur();
            $dist=$distributeur->toArray();
            //set a nouveau de la session pour les infos controllers
            \Phalcon\Di::getDefault()->get('session')->set('auth', [
                'ecp'       =>$encryptpwd,
                'Username' => $usertab->username,
                'email' => $email,
                'cn' => $usertab->username,
                'theme' => 'Default',
                'role' => '',
                'distributeur' => $dist,
                'messages'=>$pieces ,
                'nbmessages'=>$nbmessages
            ]);

    ControllerSession.php utilisé avant chaque redirection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public function doAuth()
        {
     
            if ($this->session->has("auth") == false) {
                // user unknown
                $this->logger()->warning("session : no active session, user not found : IP: ".$_SERVER['REMOTE_ADDR']." URL: ".$_SERVER['HTTP_ORIGIN']);
                $this->response->redirect("/base/login", true);
                return false;
            } 
            $this->session->set("last_access", time());
            return true;
        }
        public function beforeExecuteRoute($dispatcher)
        {
            // This is executed before every found action
            //DebugBreak("1@10.50.1.119;d=1,p=0"); 
            if (! $this->doAuth())
            {
                $this->response->redirect('/base/auth/login');
                $this->view->disable();
     
                return false;
            }
        }

    Création de la session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $di->setShared('session', function () use ($config){
        $session = new SessionAdapter();
        $session->start();
        // Set session response cookie, unfortunalty we need to read the config here to determine if secure option is
        // a valid choice.
        setcookie($config->session->name,$config->session->value,$config->session->expire,$config->session->path,$config->session->domain,$config->session->secure,$config->session->httponly);
        return $session;
    });
    Bon je ne suis pas sur le code vous donne des informations, mais je le mets quand même.

    Je vais essayé de créer un script pour créer la session, mais étant donné que j'utilise un framework (Phalcon), j'ai besoin de le configurer.

    Merci de votre réponse.

    Rappel : Chrome, Firefox et Safari, tout fonctionne correctement.

    Edit : je reçois un code HTTP : 302 Found sous Edge/IE alors que sur les autres navigateurs j'ai le code 200.

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    // On démarre la session AVANT d'écrire du code HTML
    session_start();
     
    // On s'amuse à créer quelques variables de session dans $_SESSION
    $_SESSION['prenom'] = 'Jean';
     
    ?>
    <html>
    	<body>
    		<?php echo $_SESSION['prenom']; ?>
    		<br>
    		<a href="./page2.php">page2</a>
    	</body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    session_start();
     
    echo $_SESSION['prenom'];
     
    ?>

    ce petit script fonctionne correctement....

    savez vous ce qui peut ètre différent ?

    Avec le Framwork, la session n'existe pas après la redirection.....

    la seul différence que je vois, c'est que le "Cache-control : no-cache" présent avec Phalcon.
    Edit : c'est pas ça non plus, c'est juste que la session ne contient pas les données au changement de la page...

    La session c'est bien coté serveur ?
    Il faut forcement un cookie avec l'id de la session ?

    J'ai vu que je n'avais pas de dossier cookie pour Edge/IE, ne serait pas un problème avec ça ? il ne sait pas ou stocker le cookie ?
    avec le script un cookie est créer, je pense ça réponds a ma question.
    Mais pourquoi avec le Framework Edge n'en veut pas ?

    Microsoft c'est vraiment de la m.... et vraiment hâte de finir mon contrat, que je ne touche plus au Web....

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Par défaut
    Bonjour,

    Après avoir refait quelques tests, je me rends compte que sous Edge/IE, l'id de la session, qui doit ètre dans un cookie (qui n'est pas créer), n'est pas gardé.

    De ce fait je me retrouve avec plusieurs sessions créer pour l'authentification. Etant donné que je test si la session contient les données c'est normal qu'il en créé une nouvelle s'il ne connait pas l'id.

    Donc, d'ou vient le problème ? Les cookies sont bien autorisé sous Edge/IE....

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

Discussions similaires

  1. Problème sessions avec IE
    Par Original Prankster dans le forum Langage
    Réponses: 4
    Dernier message: 13/11/2006, 20h44
  2. Problème session start()
    Par zana74 dans le forum Langage
    Réponses: 16
    Dernier message: 20/08/2006, 14h05
  3. problème session actualisation !
    Par lafracas dans le forum Langage
    Réponses: 1
    Dernier message: 11/06/2006, 15h04
  4. Problème session
    Par mLk92 dans le forum Langage
    Réponses: 7
    Dernier message: 24/03/2006, 13h17
  5. Problème session
    Par pete007 dans le forum ASP
    Réponses: 8
    Dernier message: 11/03/2004, 16h55

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