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 pour les variables de session


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut Problème pour les variables de session
    J'ai fait un formulaire et il faut que je récupère les variables mais qu'elles restent en mémoire et qu'elles puissent se transmettre d'une page à l'autre sans passer par l'url. Je donc en train d'essayer avec les variables de session mais je n'y arrive pas.

    Voici le code du fichier session.php qui est appelé lorsqu'on valide le formulaire de la page précédente :
    <? session_start();
    $marque = $_POST['marque'];
    $modele = $_POST['modele'];
    $vo_prix_vente_min = $_POST['vo_prix_vente_min'];
    $vo_prix_vente_max = $_POST['vo_prix_vente_max'];
    $energie = $_POST['energie'];
    $_SESSION['marque'] = $marque;
    $_SESSION['modele'] = $modele;
    $_SESSION['vo_prix_vente_min'] = $vo_prix_vente_min;
    $_SESSION['vo_prix_vente_max'] = $vo_prix_vente_max;
    $_SESSION['energie'] = $energie;
    header("Location: liste_tri_numero.php?" . session_name() . "=". session_id());

    ?>
    Voilà ensuite le bout de code que j'utilise pour remettre en mémoire les variables et pouvoir exécuter ma requête (fichier liste_tri_numero.php):
    <?
    session_start();
    require('fonction.inc');
    require('fonctions2.php');

    $marque = $_SESSION['marque'];
    $modele = $_SESSION['modele'];
    $vo_prix_vente_min = $_SESSION['vo_prix_vente_min'];
    $vo_prix_vente_max = $_SESSION['vo_prix_vente_max'];
    $energie = $_SESSION['energie'];


    // Vérification que les variables du formulaires ne sont pas vides

    $sql = 'SELECT * FROM vehicule WHERE 1 ';
    if($marque!='(vide)') {
    $sql .= ' AND marque = "'.$marque.'"'; }

    if($modele!='(vide)'){
    $sql .= ' AND modele = "'.$modele.'"'; }
    if($vo_prix_vente_min!='(vide)'){
    $sql .= ' AND prix >= "'.$vo_prix_vente_min.'"'; }
    if( $vo_prix_vente_max!='(vide)'){
    $sql .= ' AND prix <= "'.$vo_prix_vente_max.'"'; }

    if($energie!='(vide)'){
    $sql .= ' AND energie = "'.$energie.'"'; }



    // on exécute la requête

    $res = executer_requete($sql);
    $total = mysql_num_rows($res);
    Pouvez-vous me dire ce qui ne va pas dans mon code? merci

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    message d'erreur ? comportement du script ? comportement attendu ? prix de la boule de cristal ? type de café ?
    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 (en bas)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut
    lol désolé...

    Ben il me dit déjà qu'il n'y a pas de résultat trouvé par rapport aux critères de recherche de mon formulaire et voici les erreurs :

    Notice: Undefined index: marque in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 9

    Notice: Undefined index: modele in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 10

    Notice: Undefined index: vo_prix_vente_min in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 11

    Notice: Undefined index: vo_prix_vente_max in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 12

    Notice: Undefined index: energie in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 13

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut
    Je précise que les lignes 9 etc... sont celles-ci :

    $marque = $_SESSION['marque'];
    $modele = $_SESSION['modele'];
    $vo_prix_vente_min = $_SESSION['vo_prix_vente_min'];
    $vo_prix_vente_max = $_SESSION['vo_prix_vente_max'];
    $energie = $_SESSION['energie'];

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    as-tu vérifier que la session était bien transmise, c'est à dire que le session_id() était bien le même pour les deux scripts ?
    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 (en bas)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut
    Oui les id des sessions sont bien les même.
    En fait quand je fais la recherche, j'appuie sur le bouton lancer la recherche, et ça m'affiche ce qu'il faut. Par contre si j'appuie sur un champ pour trier et ben là ça me met qu'il n'y a pas de résultats, je comprends pas... et voilà la tete de ma requête avec les erreurs quand le problème se produit :

    Notice: Undefined index: marque in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 9

    Notice: Undefined index: modele in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 10

    Notice: Undefined index: vo_prix_vente_min in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 11

    Notice: Undefined index: vo_prix_vente_max in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 12

    Notice: Undefined index: energie in c:\program files\easyphp1-8\www\stage\liste_tri_numero.php on line 13

    SELECT * FROM vehicule WHERE 1 AND marque = "" AND modele = "" AND prix >= "" AND prix <= "" AND energie = "" ORDER BY energie ASC limit 0,2

    il n'y a rien dans les variables... alors que pour la première page ça a marché!

  7. #7
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    A tout hasard, as tu bien vérifié avant d'enregistrer tes valeurs dans la session qu'elles étaient bien remplies ?

    En gros :
    $marque = $_POST['marque'];

    Est ce que $_POST['marque'] contient bien ce que tu veux ?

    Je pense que oui sinon tu aurais eu une erreur avant mais bon ... on ne sait jamais

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut
    En fait j'ai compris, dans le fichier j'avais mis session_destroy(), et comme pour trier par champs j'appelle le même fichier, ben la session se fermait à chaque fois.... c'est pour ça que les variables n'étaient pas conservées!!
    Maintenant mon problème est de savoir où est-ce que je ferme ma session?

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Je pense que ça vient des paramètres de PHP, à priori, les sessions ne sont pas transmises, vérifie les différentes valeurs de config de ton PHP
    (session_use_cookie à 1, use_cookie_only à 0, use_trans_id à 1 et le paramètre de réécriture des liens correctement renseigné )
    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 (en bas)

  10. #10
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    " Maintenant mon problème est de savoir où est-ce que je ferme ma session?"

    Jamais Ou alors si l'utilisateur a un bouton "Déconnecter", tu la détruits quand il click dessus.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 109
    Points : 30
    Points
    30
    Par défaut
    Ouais mais si je ne ferme jamais ma session, le serveur va être encombré

  12. #12
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Non, php va se charger de supprimer ça tout seul quand la session arrivera à expiration ... enfin je crois ...

    Regarde la documentation sur les sessions sur php.net

    Mais bon ... je ne pense pas que ça posera de probleme, je n'ai jamais entendu parler de serveur encombré par les fichiers de sessions

    PHP sait faire beaucoup de choses tout seul comme un grand

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

Discussions similaires

  1. problème avec les variables de session
    Par Lusso dans le forum Langage
    Réponses: 4
    Dernier message: 14/01/2010, 15h49
  2. Problème avec les variables de session
    Par L'aigle de Carthage dans le forum Langage
    Réponses: 8
    Dernier message: 14/04/2008, 17h20
  3. Réponses: 17
    Dernier message: 22/12/2006, 15h28
  4. unset() pour les variables de session
    Par ozzmax dans le forum Langage
    Réponses: 2
    Dernier message: 05/05/2006, 15h56
  5. Effacer les variables de session
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2003, 13h42

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