prob session

Eléphant du PHP | 406 Messages

25 mai 2005, 10:46

salut,


Je viens de me lancer au session et j'ai recuperer un code sur le net et je l 'ai tester mais il fonctionne à moitié

http://www.laltruiste.com/document.php? ... iable.html

J'ai cette erreur
Identifiant de session : 392b9c83f7737067f8f05bfede5ee3e2
Nom de la session : PHPSESSID


Notice: Undefined variable: nom in c:\program files\easyphp1-7\www\projet\session.php on line 11
Nom :

Notice: Undefined variable: prenom in c:\program files\easyphp1-7\www\projet\session.php on line 12
Prénom :

Notice: Undefined variable: email in c:\program files\easyphp1-7\www\projet\session.php on line 13
eMail :
Merci
PS : si quelqu un a un bon tuto pour debuter avec les sessions je suis preneur

Mammouth du PHP | 19672 Messages

25 mai 2005, 10:58

Salut,
il faudrait qu'on voit ton code en particulier les lignes mentionnées dans les messages d'erreur.

Pour un tuto sur les sessions, tu à Ceci
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 406 Messages

25 mai 2005, 11:05

voila
<?
  session_start();
?>
 <html>
  <body>
    <?
     echo("<u>Identifiant de session :</u> <b>" 
                              . session_id() . "</b><br>");
      echo("<u>Nom de la session :</u> <b>" 
                              . session_name() . "</b><br><br>");
      echo("<u>Nom :</u> <b>". $nom . "</b><br>");
      echo("<u>Prénom :</u> <b>" . $prenom . "</b><br>");
      echo("<u>eMail :</u> <b>" . $email . "</b><br>");
    ?>
  </body>
</html>
<?
  session_destroy();
?>

Mammouth du PHP | 19672 Messages

25 mai 2005, 11:09

Ok, mais tes trois variables ne sont pas initialisées: est-ce qu'elles sont sensées être des variables de session dans ton esprit ? Auquel ça, il va falloir revoir le code.

Une variable de session se récupère par $_SESSION['nom_variable'] toujours à condition qu'elle soit initialisée, c'est à dite que tu lui as attribué une valeur.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 406 Messages

25 mai 2005, 11:12

en faite voila tout le code
$_SESSION c est comme SESSION_REGISTER
<!-- Fichier : formulaire.html -->
<html>
  <body>
    <form method="post" action="traitement.php">
      <table border="0">
        <tr>
        <td><u>Nom :</u></td>
        <td>
          <input type="text" name="cNom" size="20" value="RIVES">
        </td>
        </tr>
        <tr>
        <td><u>Prénom :</u></td>
        <td>
          <input type="text" name="cPrenom" size="20" value="Jean-Pierre">
        </td>
        </tr>
        <tr>
        <td><u>eMail :</u></td>
        <td>
          <input type="text" name="cEmail" size="20" 
                     value="[email protected]">
        </td>
        </tr>
        <tr>
        <td> </td>
        <td>
         <input type="submit" name="soumettre" value="Envoyer">
        </td>
        </tr>
      </table>
    </form>
  </body>
</html>
<!-- Fichier : traitement.php -->
<?
  session_start();

  $nom = $cNom;
  $prenom = $cPrenom;
  $email = $cEmail;

  session_register("nom"); 
  session_register("prenom");
  session_register("email");

  header("Location: session.php?" . session_name() . "=". session_id());
?>
<!-- Fichier : session.php -->
<?
  session_start();
?>
 <html>
  <body>
    <?
     echo("<u>Identifiant de session :</u> <b>" 
                              . session_id() . "</b><br>");
      echo("<u>Nom de la session :</u> <b>" 
                              . session_name() . "</b><br><br>");
      echo("<u>Nom :</u> <b>". $nom . "</b><br>");
      echo("<u>Prénom :</u> <b>" . $prenom . "</b><br>");
      echo("<u>eMail :</u> <b>" . $email . "</b><br>");
    ?>
  </body>
</html>
<?
  session_destroy();
?>
 

Mammouth du PHP | 19672 Messages

25 mai 2005, 11:35

Ok, alors on va faire deux corrections, tu vs je pense comprendre assez facilement:
<?
  session_start();
/* On récupère les valeurs et on initialise les variables de session */
  $_SESSION['nom'] = $cNom;
  $_SESSION['prenom'] = $cPrenom;
  $_SESSION['email'] = $cEmail;

  header("Location: session.php?" . session_name() . "=". session_id());
?>
<!-- Fichier : session.php -->
<?
  session_start();
?>
<html>
  <body>
    <?
     echo("<u>Identifiant de session :</u> <b>"
                              . session_id() . "</b><br>");
      echo("<u>Nom de la session :</u> <b>"
                              . session_name() . "</b><br><br>");
/* On récupère et on affiche les variables de session */
      echo("<u>Nom :</u> <b>". $_SESSION['nom'] . "</b><br>");
      echo("<u>Prénom :</u> <b>" . $_SESSION['prenom'] . "</b><br>");
      echo("<u>eMail :</u> <b>" . $_SESSION['email'] . "</b><br>");
    ?>
  </body>
</html> 
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 406 Messages

25 mai 2005, 11:50

J 'ai fait les modif

mais j 'ai cette erreur et je pije pas trop
Parse error: parse error, unexpected '=' in c:\program files\easyphp1-7\www\projet\traitement.php on line 5

et je voulais te demander sa ne serait pas comme sa plutot vu qu'on utilise la method post (j'ai essayer avec les 2 et j'ai la même erreur).??? :roll:

<?
  session_start();


  $_SESSION('nom') = $_POST['cNom']; 
  $_SESSION('prenom') = $_POST['cPrenom'];
  $_SESSION('email') = $_POST['cEmail'];

  header("Location: session.php?" . session_name() . "=". session_id());
?>

Mammouth du PHP | 19672 Messages

25 mai 2005, 11:53

Parse error: parse error, unexpected '=' in c:\program files\easyphp1-7\www\projet\traitement.php on line 5
Fais voir les ligne 5 et précédentes du fichier en question.

Pour la méthode post, tu as raison si tes variables arrivent depuis un formulaire en méthode POST
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 406 Messages

25 mai 2005, 11:56

c est celui et c est pour cela que je pije pas
<?
  session_start();


  [color=red]  $_SESSION('nom') = $_POST['cNom']; [/color]
  $_SESSION('prenom') = $_POST['cPrenom'];
  $_SESSION('email') = $_POST['cEmail'];

  header("Location: session.php?" . session_name() . "=". session_id());
?>

Mammouth du PHP | 19672 Messages

25 mai 2005, 12:02

Tu as mal recopié mon code et tu as mis des parenthèses au lieu de crochets :
<?php
session_start();


$_SESSION['nom'] = $_POST['cNom'];
$_SESSION['prenom'] = $_POST['cPrenom'];
$_SESSION['email'] = $_POST['cEmail'];

header("Location: session.php?" . session_name() . "=". session_id());
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

25 mai 2005, 14:04

Exact
Merci

Eléphant du PHP | 406 Messages

26 mai 2005, 08:24

c'est quoi l'interet des sessions à part que sa permet de garder la valeur d'une variable tout au long de la navigation ?

:?:

Mammouth du PHP | 19672 Messages

26 mai 2005, 08:39

c'est quoi l'interet des sessions à part que sa permet de garder la valeur d'une variable tout au long de la navigation ?

:?:
La réponse est contenue dans la question et c'est déjà un atout considérable dans la conception d'un site dynamique, je n'y vois sinon aucun intérêt supplémentaire ;)

C'est l'idée de base, on conserve des informations qui permettent de suivre un internaute dans sa navigation sur le site, éventuellement de lui faciliter la tâche, de lui présenter des formulaires partiellement complétés avec des informations qui lui sont propres, on gère des statistiques de navigation pour des besoins de marketing, on permet ou non des accès à certaines parties du site à ou des contenus particuliers par exemple pour des clients réguliers à qui on offre des promotions spéciales : bref, les possibilités offertes par ce simple fait de garder des informations sur toutes les pages d'un site ne sont limitées que par ton imagination.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: