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 et formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut Session et formulaire
    Bonjour, je bloque sur les sessions.
    J'ai crée deux pages :
    Page 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    session_start() ;
    $login = isset($_POST['login']) ? $_POST['login'] : '';
    $_SESSION["login"]="$login";
    ?>
    Puis bien sur le formulaire HTML pour récupérer le login
    Page 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start() ;
    echo $_SESSION["login"]; 
    ?>
    Je ne récupère pas le login sur la 2ème page ...
    Merci!

  2. #2
    Membre confirmé Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 505
    Points
    505
    Par défaut
    Bonjour,

    Sur ta 2e page est-ce que tu as une erreur qui s'affiche ou simplement le login ne s'affiche pas?

    Si rien ne s'affiche ça doit venir du fait que ton isset ne trouve pas la variable $_POST["login"] et donc attribue à ta variable $login une chaine de caractère vide. Du coup ben ça affiche une chaine de caractère vide = rien.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Il n'affiche rien ...

  4. #4
    Membre confirmé Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 505
    Points
    505
    Par défaut
    C'est donc ce que je t'expliquais je pense.

    Je suis pas sur que ce soit très recommandé ce que tu as fait d'ailleurs. Tu devrait plutôt faire un test du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_POST['login']){
    $_SESSION["login"]=$_POST['login'];
    }
    Peux-tu nous montrer d'ou vient ta variable $_POST['login']?
    Ce n'est pas un problème de session en tout cas.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <FORM method=get action="ses2.php">
    login : <INPUT type=text name="login" >
    <INPUT type="submit" value="Envoyer">
    </FORM>

  6. #6
    Membre confirmé Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 505
    Points
    505
    Par défaut
    Bah voila ou est le soucis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM method=get action="ses2.php">
    change en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM method=POST action="ses2.php">
    C'est bon?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    C'était en POST en 1er, j'ai mis le GET partout pour essayer mais ca donne le même résultat .

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!-- dans <body> -->
    <form method="post" action="ses2.php">
    	login : <input type="text" name="login" />
    	<input type="submit" value="Envoyer" />
    </form>

    ses2.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php session_start(); // EN HAUT DE LA PAGE ?>
    <?php
    if(isset($_POST['login'])){
    	$_SESSION['login'] = $_POST['login'];
    }
    ?>
    autre_page.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php session_start(); // EN HAUT DE LA PAGE ?>
     
    <!-- dans <body> -->
    <?php echo $_SESSION['login']; ?>

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Toujours rien d'affiché !

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Ca marche uniquement si dans action je mets la page surlaquelle on demande le login, je voulais éviter ca et passer à une page suivante directement après envoyer ...

  11. #11
    Invité
    Invité(e)
    Par défaut
    Tu peux nous mettre les codes complets de tes pages ?

    Car les codes que j'ai mis ci-dessus fonctionnent sans problème.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    PAGE 1 :
    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
    <?php session_start(); // EN HAUT DE LA PAGE ?>
    <?php
    if(isset($_POST['login'])){
    	$_SESSION['login'] = $_POST['login'];
    }
    ?>
     
    <?xml version="1.0"?>
    <!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="cs" lang="cs">
    <head>
        <title>session essai</title>
     </head>
    <body>
    <form method="post" action="ses2.php">
    	login : <input type="text" name="login" />
    	<input type="submit" value="Envoyer" />
    </form>
    </body>
     
    </html>
    PAGE 2 :
    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
    <?php session_start(); // EN HAUT DE LA PAGE ?>
     
     
    <?xml version="1.0"?>
    <!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="cs" lang="cs">
    <head>
        <title>Essai session</title>
     
     
    </head>
    <body>
    <?php echo $_SESSION['login']; ?>
    </body>
     
    </html>

  13. #13
    Invité
    Invité(e)
    Par défaut
    Mea culpa (le ?> est commenté)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php session_start(); // EN HAUT DE LA PAGE ?>
    Remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php session_start(); ?>

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Pas besoin, dans le code, le // est bien interprété en commentaire ....

  15. #15
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Personne pour m'aider ?

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    page1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action="ses2.php">
    	login : <input type="text" name="login" />
    	<input type="submit" value="Envoyer" />
    </form>
    ses2.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
     session_start(); 
    if(isset($_POST['login'])){
    $_SESSION['login'] = $_POST['login'];
    header ('Location:page2.php');
    }
    ?>
    page2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
     session_start(); 
    print_r($_SESSION);
    ?>
    Conception / Dev

  17. #17
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Au fait, le but, c'est de récupérer la valeur de la variable dans la 2ème page (j'essaye d'abord de l'afficher dans un 1er temps )

  18. #18
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    le code que je donne juste avec ajout de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header ('Location:page2.php');
    par rapport au code de jreaux62, prévoit bien le traitement des variables dans ses2.php puis une redirection vers page2.php, donc pour moi tu a ce que tu cherche, c'est un bon fonctionnement qui évite le renvoi du formulaire sur un F5 ou retour avec le navigateur


    note :

    tu ne peu rien afficher avant un header, comme avant session_start
    Conception / Dev

  19. #19
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    c'était pour tester les sessions, le but est de demander les paramètres de connexion à une BDD dans une page et de les récupérer dans toutes les pages qui suivent (pour rouvrir une connexion avec les mêmes paramètres), comment je dois m'y prendre ?
    Merci ...

  20. #20
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    SES 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php session_start(); // EN HAUT DE LA PAGE ?>
    <?php
    if (isset($_POST['login']) && isset($_SESSION['BDD_name'])  && isset($_SESSION['BDD_IP']) && isset($_SESSION['BDD_PSW']) && isset($_SESSION['BDD_util'])) {
    	$_SESSION['login'] = $_POST['login'];
    	$_SESSION['BDD_name'] = $_POST['BDD_name'];
    	$_SESSION['BDD_util'] = $_POST['BDD_util'];
    	$_SESSION['BDD_PSW'] = $_POST['BDD_PSW'];
    	$_SESSION['BDD_IP'] = $_POST['BDD_IP'];
    }
    ?>
    puis le formulaire ...
    SES 2 : (traitement des sessions)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     session_start(); 
    if (isset($_POST['login']) && isset($_SESSION['BDD_name'])  && isset($_SESSION['BDD_IP']) && isset($_SESSION['BDD_PSW']) && isset($_SESSION['BDD_util'])) {
    $_SESSION['login'] = $_POST['login'];
    $_SESSION['BDD_name'] = $_POST['BDD_name'];
    $_SESSION['BDD_util'] = $_POST['BDD_util'];
    $_SESSION['BDD_PSW'] = $_POST['BDD_PSW'];
    $_SESSION['BDD_IP'] = $_POST['BDD_IP'];
    header ('Location:ses3.php');
    }
    ?>
    SES 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     session_start(); 
    print_r($_SESSION["login"]);
    print_r($_SESSION["BDD_util"]);
     
    $db = mysql_connect('$_SESSION["BDD_IP"]', '$_SESSION["BDD_util"]', '$_SESSION["BDD_PSW"]');  // 1
    mysql_select_db('$_SESSION["BDD_name"]',$db);
    ?>
    La page SES2 est vide (SES3 ne s'affiche pas depuis que j'ai rajouté les paramètres de connection à la BDD, avec login seulement ca marchait).
    Le but est donc de se connecter à la BDD sur toutes les pages avec les mêmes paramètres ...
    Merci;

Discussions similaires

  1. Perte de session après formulaire
    Par j0o0 dans le forum Langage
    Réponses: 9
    Dernier message: 09/05/2009, 22h22
  2. sessions et formulaires
    Par Nooby dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2008, 13h24
  3. session et formulaire
    Par haphp dans le forum Langage
    Réponses: 5
    Dernier message: 17/05/2008, 15h06
  4. Pb session après formulaire à deux boutons
    Par Lolie11 dans le forum Langage
    Réponses: 11
    Dernier message: 06/06/2007, 15h42
  5. Réponses: 32
    Dernier message: 20/03/2006, 14h23

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