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 de session


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut Problème de session
    Salut

    J'ai un petit problème avec les sessions : en local chez moi, tout marche niquel, mais sur mon hébergeur (1&1), les sessions ont l'air d'être oubliées de page en page.


    Voilà des morceaux du code des pages incriminées :

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
        require "../include/session.php";
    	echo "login : ".$_SESSION["login"];
    	if (isset($_SESSION["login"]) && isset($_SESSION["droit"])) {
    		...
    	}
    	else {
    		require "identification.php";
    	}
    ?>
    session.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    session_start();
    $nom_sess = session_name();
    $id_sess = session_id();
    ?>
    identification.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
     
    <?php
        require("../include/connection.php");
        if (isset($_POST["login"]) && isset($_POST["pass"])) {
            $login = $_POST["login"];
            $pass = $_POST["pass"];
            if ($login != "" && $pass != "") {
                $verif = false;
                if (connection())
                {
                    $req=mysql_query("select nom, pass, droit from utilisateurs where nom = '$login'");
                    while (($ligne = mysql_fetch_array($req))  && ($verif != true)) {
                        if ($pass == /*crypt($ligne[1])*/ $ligne["pass"]) {
                            $verif = true;
                            //session_start();
                            $_SESSION["login"]=$login;
                            $_SESSION["droit"]=$ligne["droit"];
                            echo "login : ".$_SESSION["login"];
                            [redirection vers index.php]
                        }
                    }
                }
            }
        }
    ?>

    Comportement :

    Chez moi : je vais sur l'index, ça me dirige vers l'identification, je me loggue, je suis renvoyé sur l'index avec le contenu correct

    Sur mon hébergeur : je vais sur l'index, ça me dirige vers l'identification, je me loggue, avant la redirection, l'affichage de la variable de session login marche, puis je suis renvoyé sur l'index, où l'affichage de la variable de session est vide, et je suis de nouveau dirigé vers l'identification.


    L'hébergeur accepte les sessions, et n'a pas d'auto start. J'accepte tous les cookies


    Etant donné que j'ai un include inconditionnel de session.php, le session_start est bien lancé à chaque fois, mais on dirait que soit il écrase l'ancienne, soit il oublie tout au changement de page. J'ai essayé diverses choses, mais là, je sèche.

    Quelqu'un a une idée de ce que je peux faire, à part changer d'hébergeur ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Comment fais tu ta redirection après loggage ???
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  3. #3
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ca doit etre un truc a ctivé surement, chez free par exemple c est a toi de créer le repertoire sessions sinon pas possible de les utiliser
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    actuellement je fais ma redirection avec un javascript, susceptible de changer si besoin.

    Et je pense pas qu'il y ait qq chose de particulier à faire puisque la session démarre bien quand je la crée, étant donné que je peux voir les variables que j'y mets tant que j'ai pas changé de page.
    Et vu que j'avais souvenir de ce problème avec free j'ai essayé de créer des répertoire session et sessions, mais ça change rien ^^

  5. #5
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Le répertoire a faire c'est "sessions".
    <?php
    session_start();
    $nom_sess = session_name();
    $id_sess = session_id();
    ?>
    Ca sert à enregistrer dans des variables ce que le tableau session du serveur contient ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    ouais c ça, et je t'avoue, ça sert à rien, mais j'ai pas touché ce fichier, et c pas moi qui l'avais créé, mais effectivement, on peut oublier ces 2 lignes ^^

  7. #7
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Pour moi
    $nom_sess = session_name();
    $id_sess = session_id();
    enregistre dans deux varaibles ce que deux fonctions renvoient.
    ton hébergeur c'est 1&1 (lis bien les conditions d'utilisations), il faut peut être les activer ou autre chose.
    Chez free il faut crée un répertoire sessions dans la racine du site.

    Sinon ne met pas session_start(); dans un include mais directement au tout début de la page index.php.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    déplacer le session_start ne change rien, je vais essayer de trouver qq chose là dessus dans les docs de 1&1 mais c pas gagné.
    Mais quand j'affiche le php.ini avec je sais plus quelle fonction, les sessions sont annoncées comme actives

  9. #9
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Les variables de sessions qui s'efface de page en page, j'ia vus ca quand mon répertoire sessions chez free n'existait pas et quand le disque du serveur était plein.


    Tu peut toujours essayer un simple code pour savoir si c'est le serveur ou ton code qui déconne, code dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(!isset($_SESSION['user_status']))
    {
       $_SESSION['user_status'] = "admin";
       echo "La variable <b>user_status</b> n'existe pas"
    }
    else
    {
       echo $_SESSION['user_status'];
    }
    Normalement en rafraichissant la page la variable devrait rester.


    Pour ta requete
    $req=mysql_query("select nom, pass, droit from utilisateurs where nom = '$login'")
    Ca ne fonctionne pas, c'est sur.
    $req=mysql_query("select nom, pass, droit from utilisateurs where nom = '" .$login . "'")
    devrait mieux allez, php ignore le $login si il est dans une chaine.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    si si la requête fonctionne très bien, php reconnait les variables dans les chaines de caractère, tjs fait kom ça et ça marche très bien.

    Mais je te dis, tout marche trèc bien chez moi, donc la requête a pas de pb ^^

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    t as envoyé un mail a leur support ?
    pasque la a mon avis y a qu eux qui peuvent t aider
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  12. #12
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    je voulais d'abord savoir si j'avais fait une quelconque bétise, mais je vais faire ça oui

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

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. Problème de sessions
    Par leodi dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2005, 20h13
  3. Problème de session
    Par meda dans le forum Langage
    Réponses: 13
    Dernier message: 25/10/2005, 18h25
  4. problème de session en cours
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 14h36
  5. Gros problème de session/cookies
    Par valfredr dans le forum XMLRAD
    Réponses: 18
    Dernier message: 03/06/2004, 09h21

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