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 :

Conservation superglobale $_SESSION


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de figarojuju
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut Conservation superglobale $_SESSION
    Bonjour,
    je me suis fait un petit programme d'authentification en m'inspirant (+++) d'un exemple, mais malgrès cela, je sèche...
    Je crains que j'écrase mes variables, mais bon...si vous avez la gentillesse de regarder mon code...

    Mon code est composé de 4 fichiers :


    • index.php : première page d'accueil
    • verif.php : vérifie le login dans une bdd
    • secure.php : fichier à inclure (include) dans chaque page protégée
    • session.php : formulaire de session

    J'arrive bien à lire dans la bdd et à vérifier l'identifiant enregistré.
    Lorsque je suis sur verif.php, j'arrive à atteindre $_SESSION['nom'].
    Mais lorsque, je clique sur mon lien pour revenir à index.php, je suis de nouveau rediriger (directive header) vers la page session.php. Cela, comme si j'avais écrasé ma variable $_SESSION['nom']...

    Auriez-vous des idées ?

    (j'utilise la bdd fournie par neuf/sfr avec mon compte)

    index.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
     
    <?php
    session_start();
    include('secure.php');
     ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <meta http-equiv="Content-Language" content="fr" />
            <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
            <title>mon titre</title>
            <link rel="stylesheet" type="text/css" href="style.css"> </link>
        </head>
    <body>
     
    <center><a href="un.php"><img src="images/Accueil2.png"></a></center>
    </body>
    </html>
    verif.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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <?php
    session_start();
    if (isset($_POST['id'])){
        $nom=$_POST['id'];
        if(verification($nom)){
            session_regenerate_id();
            $_SESSION['nom']=$nom;
            $message='Vous êtes correctement identifié'." $nom"."<a href=\"index.php\"> Rendez-vous à l\'accueil </a>";
        }else {
            $message='Mauvais identifiant';
            $message .=' <a href="session.php">Retour</a>';
        }
    }else {
        $messagees='L\'identifiant est incorrect';
        $message .=' <a href="session.php">Retour</a>';
    }
    ?>
    <?php
     
    function verification($nom){
    $PARAM_hote='bases.sql'; // le chemin vers le serveur
    $PARAM_port='3306';
    $PARAM_nom_bd='julie-application'; // le nom de votre base de données
    $PARAM_utilisateur='julie'; // nom d'utilisateur pour se connecter
    $PARAM_mot_passe='xxx'; // mot de passe de l'utilisateur pour se connecter
    try
    {
        $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
    }
     
    catch(Exception $e)
    {
        echo 'Erreur : '.$e->getMessage().'<br />';
        echo 'N° : '.$e->getCode();
    }
    $nom_sql=$connexion->quote($nom);
    $sql="SELECT count(*) as nbres FROM utilisateurs " . " WHERE persoid=$nom_sql";
    $result=$connexion->query($sql);
    $row=$result->fetch();
    $result=null;
    if($row['nbres']==1){
        return TRUE;
    }else{
    return false;
        }
    }
    ?>
    <html>
    <head><title>Identification</title></title>
    <body>
    <p>
    <?php 
    echo "$message ";
    ?>
    </body>
    </html>
    secure.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    if(!isset($_SESSION['$nom'])){
        header('Location: session.php');
        exit();
    }
    ?>
    session.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
     
    <?php session_start() ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <meta http-equiv="Content-Language" content="fr" />
            <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
            <title>titre</title>
            <link rel="stylesheet" type="text/css" href="style.css"> </link>
        </head>
    <body>
    <p> <img src="images/Accueil.png" alt="Mot de passe" /></p>
    <form method="post" action="verif.php" >
        <label for="nom"> Identifiant PERSOID : </label>
        <input type="text" name="id" >
    <p><input type="submit" value="s'identifier"></p>
     
    </body>
    </html>

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    dans secure.php tu as mis :
    Enleve le $ de '$nom'

  3. #3
    Membre confirmé Avatar de figarojuju
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    yahoooooooooooooooooooooooooooooooo!!!!!!!!
    merci bcp bcp bcp !!!!!!!!!!!!!!!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/02/2008, 14h26
  2. Conserver les retours à la ligne
    Par arwen dans le forum ASP
    Réponses: 2
    Dernier message: 04/12/2003, 12h50
  3. Published property d'un compo conservées pendant l'exécution
    Par bobby-b dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/09/2003, 10h15
  4. [Débutant] Conserver la couleur lors d'un copier coller
    Par ADIDASman dans le forum JBuilder
    Réponses: 2
    Dernier message: 21/05/2003, 18h13

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