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èmes Sessions php & EasyPhp


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Points : 8
    Points
    8
    Par défaut Problèmes Sessions php & EasyPhp
    Bonsoir.

    Je reviens suite à mon premier problème résolu par Sabotage, encore merci à lui.

    Maintenant c'est avec les sessions (pourtant simple) que j'ai un soucis. Je n'arrive pas a transmettre une variable d'une page à une autre. Est-ce un problème de mon script (pourtant j'ai pas d'erreur) ou alors de configuration de EasyPHP.

    Sur la 1ere page, j'ai mis ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();
     
    $_SESSION['ok'] = true;
     
    if(isset($_POST['carte'])) { 
    	$_SESSION['numcarte'] = $_POST['carte']; ;
    	}
    ?>
    Et sur une autre page php j'ai mis celui-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    echo($_SESSION['numcarte']);
    ?>
    Et impossible d'afficher, ou bien de récupérer cette variable de session. J'ai essayé avec un isset et rien à faire.

    Quelqu'un peut-il m'aider ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Essaie de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($_POST['carte'])) { 
    	$_SESSION['numcarte'] = $_POST['carte']; 
    	echo "Carte :".$_SESSION['numcarte'] ;
    	}
    Pour vérifier si l'éléments "carte" est bien posté et afficher sa valeur.

  3. #3
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    Bonjour,

    Pour élargir les recherches tu peux mettre juste après ton session_start() un printf de la variable $_SESSION

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    print_f($_SESSION);
    ?>
    Tu peux également tester l'affichage des informations de la session:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo "nom de session = ".session_name();
    echo "ID session = ".session_id();
    Bon débugage!

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Merci pour votre aide !

    Andry.aime, j'avais déjà essayé de faire ce que tu me demandes et j'ai réessayé et ça marche, dans la même page, je peux récupérer une variable session mais pas dans une autre page php.

    FireHist, j'ai essayé print_f et voici le message d'erreur que j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to undefined function print_f() in C:\Program Files\EasyPHP 3.0\www\essai\traitement2.php on line 3
    Sinon pour le reste j'obtiens bien le nom et l'id de la session donc elle existe bien.

    Faut-il faire autre chose pour réussir a transmettre des variables session de pages en pages ?

  5. #5
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    Bonsoir,

    Normalement il suffit de faire ce que t'a dis andry.aime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['ta_variable'] = "ske t've";
    Sinon pour ma fonction print_f, je devais être distrait par les JO désolé :p
    La fonction est print_r
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r( $_SESSION );

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    printf mais pas print_f.
    Dis moi, tu les ouvres ces deux pages dans une même fenêtre?

  7. #7
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    La fenêtre n'importe pas dans le cadre de session, c'est le navigateur qui importe.

    Je pense que ton problème ne vient pas de PHP.
    Essaye de rejoindre la seconde page avec comme paramètre dans l'url l'id de la session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    page2.php?sid=<?php echo session_id(); ?>
    Si cela marche enfin, c'est qu'il faut toucher au fichier de configuration httpd.conf de EasyPHP et chercher la valeur session.use_trans_sid pour la mettre à 0.

    Donne des nouvelles !
    Bonne journée.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    On ne risque pas de trouver ce paramètre dans le httpd.conf mais plutôt dans le php.ini et le use_trans_sid pose plus de problème qu'autre chose. Le session_name() par défaut ne s'appelle pas sid non plus (PHPSESSID). Enfin, cette manipulation est dépendante de la configuration de PHP (cookies vs trans_sid).


    Il faudrait déjà être certain que votre environnement affiche tous les messages d'erreur (et ne pas les cacher avec @ : émission des entêtes non respectée ou session.save_path incorrect - permissions comprises) : display_errors à On (sinon il faut regarder les logs de son serveur) et, surtout, error_display à E_ALL ! Il y a plusieurs façon de modifier ces paramètres mais il est conseillé de le faire depuis le php.ini ou un .htaccess (si PHP fonctionne comme module) car depuis le script (ini_set) ils ne seront pas pris en compte avec une erreur fatale interne.

    Depuis PHP 5.3 vous pouvez également tester le retour de session_start : elle renvoie FALSE si la session ne peut être démarrée.


    Il faut ensuite tester la propagation de l'identifiant : vérifier qu'on récupère bien le même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
    if (!isset($_SESSION['started'])) {
        $_SESSION['started'] = date('d/m/Y H:i:s');
    }
    printf('Identifiant : %s', session_id());
     
    echo '<pre>';
    print_r($_SESSION);
    echo '</pre>';
    Vous relancez cette même page manuellement (dans le même navigateur et sans le quitter) ou vous créez un script similaire que vous appellerez ensuite. Si l'identifiant n'est pas le même, c'est sa propagation qui est en cause : client qui n'accepte pas les cookies, une redirection sur "domaine" différent (le cookie n'étant plus valable), ...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par julp Voir le message
    c'est sa propagation qui est en cause : client qui n'accepte pas les cookies, une redirection sur "domaine" différent (le cookie n'étant plus valable), ...
    Oui a lire tout ce qui a été dit, j' ajouterais, que la question n'a pas été posée comme tu le fais des cookies !

    Alors ou sont ces fameux PHP ? dans le www/ de easyPhp, ou sur un alias
    c:\bidule\mesphp dont l'alias serait "mestest"

    sachant qu'il n'y a qu'un cookies par serveur ( en fin un cookies de session et un de données).

    Je dis cela au cas ou, de toute façon si le probléme se passe entre deux PHP de www/ ma remarque est inutile, et la nous pourrions afirmer que les cookies sont refusés ou que php.ini est mal paramétré !

    J'aimerais savoir également si php.ini ne déclare pas la gestion par l'URL des sessions !

  10. #10
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    @julp
    Oui désolé, php.ini et pas httpd.conf

Discussions similaires

  1. Session php problème récupération
    Par Meloooo dans le forum Langage
    Réponses: 8
    Dernier message: 23/04/2009, 16h47
  2. [MySQL] problème de session php
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/04/2009, 20h39
  3. [AJAX] AJAX & Session php problème.
    Par prosciuto dans le forum AJAX
    Réponses: 9
    Dernier message: 09/04/2009, 12h17
  4. Problème de sessions PHP/SQL
    Par Mousk dans le forum Langage
    Réponses: 6
    Dernier message: 11/08/2006, 15h02
  5. [Cookies] Problème avec les sessions PHP !!!
    Par boukay dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2006, 17h32

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