Page 1 sur 1

session en php avec $_SESSION

Posté : 19 nov. 2005, 23:06
par m1bs
Hello

Voici un exemple tout simpel

Code : Tout sélectionner

<? session_start(); $_SESSION['pseudo'] = 'pseudo'; ?>
jusque là ok
ensuite j'ai mon bouton de validation pour valider l'entrée
<INPUT NAME="pseudo" SIZE=7 MAXLENGTH=10><input type="submit" border="solid" style="background-color:#e37a1a " value="Valider"> 
Et sur cette page , j'ai un lien de test où je clique dessus pour voir si la nouvelle page arrive à afficher le nom que j'ai entré
 <?
session_start(); 
?> 
  Salut <? echo $_SESSION['pseudo']; ?>    
Cette page m'affiche pseudo, alors que j'ai entré du texte , il prend le code que j'ai mis dans la page en fait...
Ce que je veux c'est que ça affiche ce que j'ai mis dans le champs
J'ai essayé comme ceci, mais non plus , je m'y prend certainement pas juste...

Code : Tout sélectionner

<? session_start(); $_SESSION['pseudo']; ?>
Vous avez une idée pour me dépanner ?

Merci de votre aide

Posté : 19 nov. 2005, 23:42
par Cyrano
C'est normal: tu assignes la valeur "pseudo" à ta variable de session, elle te restitue cette valeur indépendament de la saisie que tu as faite, même si tu nommes le champ de ton formulaire "pseudo", ça n'affecte pas la variable $_SESSION['pseudo'] : si tu veux que ta saisie modifie la valeur de la variable, il faut que tu effectues une nouvelle assignation en commençant par récupérer la valeur.

Posté : 19 nov. 2005, 23:49
par rami
C'est normal. Tu n'as pas récupéré la saisie. De plus, pour pouvoir faire récupérer des données saisies, il faut faire un fichier HTML correct avec un formulaire qui pointe vers le script php qui traitera ces saisies.
Ca donne ca:
Le formulaire de saisie:
form.html
<html>
<head>
  <title>Saisie</title>
</head>
<body>
<form action="test.php" method="post">
<label for="pseudo">Pseudo : </label><input type="text" id="pseudo" name="pseudo">
<br>
<input type="submit" value="Envoyer">
</body>
</html>
J'ai donc une page contenant le formulaire de saisie qui pointe vers le fichier test.php, qui sera chargé de récupérer le pseudo. ENsuite, comme tu peux le voir, dans la balise form, j'ai spécifié method="post", ce qui signifie qu'on pourra récupérer les données en PHP avec la variable $_POST. Si j'avais utilisé la méthode "get", je récupèrerais mes données avec $_GET.

Donc le fichier test.php
session_start();
if(isset($_POST['pseudo']))
{
   $_SESSION['pseudo'] = $_POST['pseudo'];
   echo 'Pseudo: '.$_SESSION['pseudo'];
}
else echo 'Aucune saisie! <a href="form.html"> Retour au formulaire</a>';
Voilà le principe. Je te conseille fortement d'aller lire la doc, qui explique beaucoup mieux que moi cela ici