Session easyphp 1.8

jerome2 Messages postés 31 Date d'inscription   Statut Membre -  
 chalet_a_biot -
bonjour,
j'ai besoin de savoir à quoi doit ressembler ma configuration pour pouvoir utiliser les sessions...
j'ai fait un exemple tout simple de session tiré d'un tuto, et il ne marche pas : lorsque je teste si la session existe, (isset), la reponse est toujours false alors que lorsque je vais voir le fichier tmp dans lequel sont stockées les sessions, elles apparaissent bien...
quelqu'un peut-il m'éclairer sur ce sujet...?
d'avance: merci

21 réponses

  • 1
  • 2
  1. romain
     
    salut,
    comment fais tu tes tests isset ? $_SESSION est un tableau, peut etre que c'est juste une mauvaise utilisation ?
    0
    1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
       
      ben je fais comme ça:
      if (isset($_SESSION['nom']))
      

      il me semble que c'est bon...
      en plus, je teste un petit exemple tiré d'un tuto...
      0
  2. Babylontiti Messages postés 59 Statut Membre 28
     
    Salut,

    Jette un coup d'oeil par là et utilise l'exemple:
    http://www.nexen.net/docs/php/annotee/ref.session.php?lien=sessions

    A savoir, que 'isset()' sert juste à vérifier qu'une variable à bien été déclarer, donc existe, mais elle peut avoir une valeur 'NULL' ou '0' ! etc...
    bye @+
    0
    1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
       
      ok, mais ce qui ce passe, c'est que la condition :
      if (isset($_SESSION['nom']))
      

      n'est jamais vérifiée...et je ne comprends pas pourquoi
      0
  3. romain
     
    tu demarres bien ta session avant tout envoi de header ?
    0
    1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
       
      ben ouai, je te montre la page en question :
      <?
      session_start();
      if (isset($_SESSION['nom']))
      	{$nom=$_SESSION['nom'];}
      else {$nom="mais votre nom a été effacé";}
      ?>
      <html>
      	<body>
      		Vous êtes toujours parmis nous
      		<b><? echo $nom; ?></b>.<br />
      		Effacement de votre nom en cliquant
      		<a href="page4.php">ici</a>.<br />
      		Effacement de votre session en cliquant
      		<a href="page5.php">ici</a>.<br />
      	</body>
      </html>
      


      et sur toutes mes pages, je démarre toujours de la même façon :
      <?
      session_start()
      ...
      ?>
      


      voilà...en tout cas, merci de ton aide :)
      0
  4. romain
     
    Ok, je vois.
    Ton problème vient de la portée de ta variable $nom.
    Lorsque tu fermes php (?>), elle n'est plus définie ! tu peut refaire ton test plus tard car $_SESSION, comme $_POST ou $_GET sont globales. Le problème ne vient absoluement pas de ta session.
    J'espere que j'ai vu juste ...?
    @+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
     
    je crois pas que ce soit ça...
    j'ai modifié, et ça change rien...
    <?
    session_start();
    ?>
    <html>
    	<body>
    		Vous êtes toujours parmis nous
    		<b><? if (isset($_SESSION['nom']))
    				{$nom=$_SESSION['nom'];}
    			  else {$nom="mais votre nom a été effacé";}
    			  echo $nom;?></b>.<br />
    		Effacement de votre nom en cliquant
    		<a href="page4.php">ici</a>.<br />
    		Effacement de votre session en cliquant
    		<a href="page5.php">ici</a>.<br />
    	</body>
    </html>
    

    à moins que je n'ai pas fait la bonne modif ?
    0
  7. romain
     
    non, non tes modifs sont correctes... la seule chose qui pourrait faire que ca ne marche pas est que $_SESSION['nom'] soit non definie... tu a bien demarré la Session dans l'autre page ? Sinon peut etre que isset n'a pas l'effet attendu, essaye un petit
    echo $_SESSION['nom']; 
    pour voir
    0
  8. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
     
    effactivement, j'ai une erreur :

    Notice: Undefined index: nom in c:\program files\easyphp1-8\www\tuto1 session\page3.php on line 10

    lorsque je rajoute :
    echo $_SESSION['nom'];


    mais c'est pas logique puisque la session est démarré dans les 2 autres pages...

    page1.php:
    <?
    session_start();
    ?>
    <html>
    	<body>
    		<form method="POST" action="page2.php">
    			Entrez Votre Nom : <input type="text" name="nom">
    			<input type="submit" value="ok">
    		</form>
    	</body>
    </html>
    


    page2.php:
    <?
    session_start();
    $nom=$_POST['nom'];
    $_SESSION['nom']=$nom;
    ?>
    <html>
    	<body>
    		Bienvenue sur ce site <b><? echo $nom; ?></b>.<br />
    		Regardons ce qui se passe sur la <a href="page3.php">page</a> suivante.<br />
    	</body>
    </html>
    


    j'comprends pas...
    0
    1. romain
       
      Je t'avoue que je sèche...
      essaye de mettre
      $nom=$_POST['nom'];
      $_SESSION['nom']=$nom;

      dans la balise body, en vérifiant bien que $_POST['nom'] est 'isset' et '!empty'... a part ca... Sorry...
      0
  9. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
     
    mais c'est bizarre, parce que quand je fais :
    echo $_SESSION['nom']
    

    dans page2.php, ça écrit effactivement le nom...
    enfin, merci quand même...
    0
  10. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
     
    d'accord, mais apparemment, on me parle de problèmes de cookies...
    0
  11. Rémi
     
    ta regardé ton register global dans le php .ini ?? il doit etre ON ! sa marche pas sinon tes sessions ...
    0
    1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
       
      ben nan, il est à off, mais ça doit marcher quand même...
      de toute façon, je viens de faire l'essai en le mettant à on, et ça donne exactement la même chose...
      merci quand même :)
      0
  12. tony
     
    ok voici koment on utilise les sessions:

    • Enregistrement d’une variable session
    session_start(); // active la session
    $variable = ………;
    session_register("variable"); //pas de $

    • Test d’enregistrement d’une variable
    session_start(); // active la session
    $variable = ………;
    session_register("variable"); //pas de $
    session_start(); // active la session
    if (!session_is_registered(variable))...

    • Fin de session , Changement durée session
    session_destroy();
    session_cache_expire(n);
    n=session_cache_expire();

    • Informations sur la session
    print("nom de session = ".session_name());
    print("ID session = ".session_id());

    en espérant que ça vous aidera ;)
    0
    1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
       
      tu veux dire que mon code n'est pas bon...? ça m'étonne, il est tiré d'un tuto...
      l'as-tu regardé...?il est juste au dessus (page1.php, page2.php, page3.php)
      merci quand même, mais je crois qu'il est bon ce code... ;)
      0
  13. tony
     
    Pour ma part je ne suis pas sur que ton code soit correct
    Je n'est jamais utiliser de mémoire la fonction isset pour des variables de sessions
    De plus les infos que je t'ai fourni sont tirées d'un cours php d'un de mes profs!
    j'ai pas mal fait d'intranet cette année et j'ai pas souvenir d'avoir utiliser la fonction isset pour des variables de session mais plus souvent pour des cookies
    Vérifie que ça fonctionne avec les fonctions que je t'ai fourni
    Bon courage

    NB: ne pas tjs se fier à des exemples de tuto

    ciao
    0
  14. tony
     
    re moi

    je viens d'examiner vite fait ton code php
    A quel moment tu créés tes variables de sessions?
    je vois pas l'instruction session_register
    C peut etre pour ça que ton isset ne fonctionne pas

    bon courage
    0
  15. Romain
     
    je cite php.net, la bible :
    Attention
    Si vous voulez que votre script fonctionne indépendamment de la configuration de la directive register_globals, vous devez utiliser la variable $_SESSION. Tous les éléments de $_SESSION sont automatiquement enregistrés. Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée.
    0
    1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
       
      ben voilà,
      du coup, faut pas que j'utilise session_register() vu que mon script utilise $_SESSION, et de plus, j'ai pas besoin d'utiliser le register_global à ON.
      vraiment, le code doit être bon...
      en plus, il y a quelqu'un qui l'a testé chez lui en local, et il fonctionne!!!
      0
  16. tony
     
    Autant pour moi!!

    Je viens de vérifier ton code, il me parait bon!
    Par contre jvois pas trop l'utilité de ton <? session_start() ?> pour la page1.php vu ke tu fé aucun appel à $_SESSION(...)

    Sinon pour la configuration de php.ini fait gaffe ke tu n'est pas mit on à une ligne ké en commentaire en effet register_global apparait plusieurs fois dans le fichier php.ini

    dsl ke t conseils ne té rien apporté

    Bon courage
    0
    1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
       
      c'est rien, c'est rien...
      effectivement, il ne sert à rien le session_start de page1.php...
      c'était dit dans le tuto...
      pour le registers_global, ils sont bien tous à off...

      merci quand même!!!
      0
  17. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
     
    si quelqu'un a une autre idée, on verra ça lundi...
    bon week end à tous!
    0
    1. Waga
       
      Salut,

      j'ai eu le même probleme que toi avec Easyphp 1.8 et les sessions

      il faut à la fois faire un register ET utiliser $_SESSION

      Page 1
      $user_pass="password"
      session_start();
      session_register ("user_pass");
      $_SESSION["user_login"] =$user_pass;


      Page 2
      session_start();
      echo $_SESSION["user_login"] ;

      en esperant t'avoir aidé !

      A+
      Waga
      0
      1. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1 > Waga
         
        ben écoute, moi, j'y arrive pas...

        peux-tu tester chez toi un tout petit exemple qui marche et m'envoyer le code stp?
        comme ça je vérifierai si ça fonctionne aussi sur mon ordi...

        par contre, j'ai une autre question:
        est-il possible que cela na marche pas à cause d'un par-feu qui stopperait les cookies par exemple ?
        0
  18. Remi94 Messages postés 1 Statut Membre
     
    pour le registers_global, ils sont bien tous à off...


    Il doive etre à ON justement..

    jte conseil d'installer easy php 1.7 et d'essayer avec cette version, jte pari que sa fonctionnera :D
    0
    1. Waga
       
      Non surtout pas, cette variable est désactivée pour une bonne raison, ça marche très bien avec OFF
      0
  19. jerome2 Messages postés 31 Date d'inscription   Statut Membre 1
     
    romain, tu voulais que je te tienne au courant:
    bon ben voilà, j'ai enfin trouvé, c'était mon firewall qui me bloquait les cookies...

    merci à tous ceux qui m'ont aidés :)
    0
  • 1
  • 2