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 :

[Sessions] Classes et variables de sessions


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [Sessions] Classes et variables de sessions
    Bonjour
    je rencontre quelques problèmes avec un de mes scripts qui utilise une classe et une variable de session...

    voici la partie qui pose problème !

    le fichier qui appelle cette classe comporte un session_start(); et appelle correctement la classe (le redirect se fait bien)
    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
    35
    36
    37
    38
    class sql
            {
            function sql($mysql_url, $mysql_login, $mysql_pass, $mysql_bdd)
                {
                mysql_connect($mysql_url, $mysql_login, $mysql_pass);
                mysql_query("USE `" . $mysql_bdd . "`");
                }
            }
     
        class sql__users extends sql
            {
            function inscription($login, $pass)
                {
                $login = addslashes(htmlentities($login));
                $pass = sha1($pass);
                mysql_query("INSERT INTO `users` VALUES ('" . $login . "', '" . $pass . "', 'en attente');");
                if (mysql_errno() != 1062)
                    {
                    $_SESSION['js_alert'] = 'Inscription bien effectuée. Les administrateurs ont été prévenus de votre inscription et activeront votre compte prochainement.';
                    header('location: index.php');
                    }
                else
                    {
                    $_SESSION['js_alert'] = 'Login déja existant. Veuillez en choisir un autre.';
                    unset($_POST['login']);
                    }
                }
     
            function sql__users($act, $var1, $var2)
                {
                switch($act)
                    {
                    case 'inscription':
                    $this->inscription($var1, $var2);
                    break;
                    }
                }
            }
    si jamais le redirect ne se fait pas, la variable de session est bien lue...

    mais si le redirect a lieu, et mène au fichier index.php
    session_start();

    if (!empty($_SESSION['js_alert'])) { echo '<script language="javascript">alert("' , $_SESSION['js_alert'] , '");</script>'; unset($_SESSION['js_alert']); }
    la variable de session est considérée comme vide !

    j'ai testé sur mon serveur personnel (apache 1.3.33, php 4.4.0), et également sur mon serveur free : aucune différence !

    est-ce inévitable ?
    comment régler ce problème ?

    merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Hello,

    bizarre ton truc...
    Donc si tu fais, dans index.php, un echo $_SESSION['js_alert'];
    tu as quoi ? (dans le cadre de la redirection)
    ca ne t'affiche rien, ou tu as un warning undefined index machin-chose ? (mets l'error reporting à E_ALL).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    l'error reporting est déja a E_ALL et j'ai effectivement un warning concernant cette variable...

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Je suppose que dans un autre cas (hors classe), ça fonctionne bien sur ton système ce genre de truc ? La variable de session est bien passée de page en page ?

    Franchement, je ne sais pas. Dans ta seconde page, affiche le SID, et fais de même dans la 1ère.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    J'ai testé pas mal de trucs, et en réalité j'avais mal cerné le problème...


    en fait, j'ai donc ma classe, dans un fichier à part, qui assigne (correctement) ma variable de session, et qui comporte un header('location: index.php');

    et a la fin du fichier qui appelle cette classe, il y a un if qui fait changer la variable de session définie dans la classe...

    en clair, le header ne remplit pas son rôle... car il ne redirige pas... pas avant la fin du fichier en tout cas !

    peut être est-ce parce qu'il est dans un fichier annexe ?
    comment rediriger à partir de la classe, alors ?

Discussions similaires

  1. Classe stockant variable de session
    Par lightalex01 dans le forum Langage
    Réponses: 1
    Dernier message: 24/05/2013, 11h29
  2. Session navigateur et Variables de session
    Par dahu17 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/06/2007, 10h29
  3. Session navigateur et Variables de session
    Par dahu17 dans le forum C#
    Réponses: 0
    Dernier message: 06/06/2007, 17h39
  4. [Session]Sauvegarde des variables de sessions en base
    Par sheura dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 03/01/2006, 10h19
  5. Réponses: 2
    Dernier message: 09/10/2005, 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