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 :

formulaire et $data > $_session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut formulaire et $data > $_session
    Bonjour,

    j'ai une page sur laquelle sont affichés les résultats d'une requête sous la forme $data. Ils sont inclus dans un formulaire de type post.

    Je souhaite ensuite transformer ces résultats en variables de session, mais quand je fais print_r($_SESSION); je n'ai aucun résultat.


    sur ma première page, pour afficher les résultats, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ($data = mysql_fetch_array($req1)) 
    {
     echo ' <form action="guideactivites.php" method="post"><br>Activite :'.$data['activite'].'<br>';
      echo 'Activité numéro :'.$data['id'].'<br>';
    echo '  <input type="submit" name="modifier" value="Modifier">';
    }
    j'ai ensuite dans la même page (guideactivite.php)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['modifier']) && $_POST['modifier'] == 'Modifier') 
    {
    $_SESSION['id'] = $_POST['id']; 
    header('Location: guideactivites_modif.php');
    exit();}
    mais quand je fais dans guideactivites_modif.php print_r($_SESSION), il n'y a aucun résultat, la variable n'est pas déclarée.


    Merci beaucoup pour votre aide, je suis bloquée.

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    tu appelles bien sur chaque page où tu accèdes à $_SESSION ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    oui, dans la première j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    if (isset($_POST['modifier']) && $_POST['modifier'] == 'Modifier') 
    {
    session_start();
    $_SESSION['id'] = $_POST['id']; 
    mysql_free_result ($req1);
    mysql_close ();
    header('Location: guideactivites_modif.php');
    exit();
    }
    ?>
    et dans guide activites_modifs j'ai
    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($_SESSION['login'])) 
    {
        header ('Location: guideindex.php');
        exit();
    }
    else
    {
    print_r($_SESSION);
    }

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    fait un après le session_start() et vérifie que le résultat est bien le même
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre très actif
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Par défaut
    salut !

    Ton session_start(); doit être la toute première instruction de ta page php...
    Au lieu de faire if (...) session_start(); essaye de faire session_start(); directement.

    Dans ta premiere page tu as $req1, ça correspond bien à quelque chose ?

  6. #6
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    en fait j'avais un premier session_start(); en tout début de page,
    pour limiter l'accès et j'en avais remis un à la fin avant de déclarer les variables de sessions , j'ai donc enlevé le second.
    quand je fais echo session_id (tout àla fin, cf. code), il ne m'affiche que la toute première variable (le login qui sert à limiter l'accès) et pas les autres.


    $req1 correspond bien à qq chose
    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
     
    //première session
    <?php
    session_start();
    if (!isset($_SESSION['login'])) 
    {
        header ('Location: guideindex.php');
        exit();
    }
    else
    {
    // on se connecte à notre base 
    mysql_select_db ('*****', $base);//etc etc
     
    //première requête que je vous passe pour obtenir $clef
     
    //requête 
    $sql1 = 'SELECT id, public, activite, description FROM aide_ac WHERE structure="'.$clef.'"';
     
    $req1 = mysql_query($sql1) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    //récupération des résultats sous forme d'un tableau
     
     while ($data = mysql_fetch_array($req1)) 
    {
      echo ' <form action="guideactivites.php" method="post"><br>;
      echo 'Activité numéro :'.$data['id'].'<br>';
    echo 'Public :'.$data['public'].'<br>';
    echo '  <input type="submit" name="modifier" value="Modifier">';
    }
    }
    ?>
     
    // déclaration des variables de session
     
    <?php
    if (isset($_POST['modifier']) && $_POST['modifier'] == 'Modifier') 
    {$_SESSION['id'] = $_POST['id']; 
    mysql_free_result ($req);
    mysql_free_result ($req1);
    mysql_close ();
    echo session_id();
    }
    ?>

    Merci de votre aide !

  7. #7
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Il faut des champs dans le formulaire pour envoyer des variables POST.
    Ta balise form n'est pas fermée.

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

Discussions similaires

  1. [2.x] Formulaire dynamique, data transformer entity -> collection
    Par symfony_dev dans le forum Symfony
    Réponses: 7
    Dernier message: 14/01/2015, 13h48
  2. Petit cours pour éviter l'envoi POST data d'un formulaire apres un rafraîchissement
    Par maximenet dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 8
    Dernier message: 07/10/2006, 00h03
  3. revalider les datas insérées dans un formulaire
    Par capouille dans le forum Access
    Réponses: 2
    Dernier message: 19/04/2006, 06h37
  4. Changer une variable $_SESSION -> Formulaire
    Par Nadd dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2006, 23h37
  5. Data Formulaire et SQL
    Par JUZAN dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 25/01/2006, 12h29

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