<?php
session_start();
require ("Connect.php");
$connexion = mysql_pconnect (SERVEUR,NOM,PASSE);
if (! $connexion)
{
echo"Désolé,connexion à " . SERVEUR ." impossible\n";
exit;
}
if (! mysql_select_db (BASE,$connexion))
{
echo "Désolé,accés à la base " . BASE . " impossible\n";
}
$resultat=mysql_query ("SELECT * FROM Fille",$connexion);
if ($resultat)
{
while ($valeur = mysql_fetch_array($resultat))
{ $id = $valeur["filleId"];
$image = $valeur["image"];
$prénom = $valeur["prénom"];
$age = $valeur["age"];
$pays = $valeur["pays"];
$langue = $valeur["langue"];
$objectif = $valeur["objectif"];
$id=$valeur["filleID"];
$miniature=$valeur["miniature"];
$_SESSION['prénom'] = "$prénom";
if ( isset( $_SESSION['prénom'] ) )
{
echo 'mon prénom : ' ;
// lecture de la variable de session 'prénom'
echo $_SESSION['prénom'] ;
echo "<a href=\"vide.php\">afficher le profil</a>";
} else {
echo 'prénom n\'existe pas dans la session' ;
}
}
}
else
{
echo"<B>Erreur dans l'exécution de la requete.</B><BR>";
echo"<B>Message de Mysql : </B>".mysql_error($connexion);
}
?>
mon soucis est que la seconde page n'affiche rien// on initialise et utilise la session
session_start();
$_SESSION['prénom'] = "$prénom";
echo $_SESSION['$prénom']; // affiche rien du tout donc...
c'est le code que je trouve sur tous les tuto....
$_SESSION['prénom'] = "$prénom"; ce qui t'écrase le contenu de ta variable de sessions.<?php
echo("<pre>") ;
print_r($_SESSION) ;
echo("</pre>") ;
?>
et bien j'y avais déja penser (pour une fois lol)session_start();
if ( isset( $_SESSION['prénom'] ) )
foreach($_SESSION as$valeur)
{
echo "<td><b>$valeur</b></td>";
}
le pire c'est que ça m'affiche la méme chose
if ($resultat)
{
while ($valeur = mysql_fetch_array($resultat)) // ici tu boucles sur les lignes retournées par la base
{ $id = $valeur["filleId"];
$image = $valeur["image"];
$prénom = $valeur["prénom"];
$age = $valeur["age"];
$pays = $valeur["pays"];
$langue = $valeur["langue"];
$objectif = $valeur["objectif"];
$id=$valeur["filleID"];
$miniature=$valeur["miniature"];
$_SESSION['prénom'] = "$prénom"; // ici tu écrases à chaque fois la valeur précédente par la nouvelle
...
En fait, tu es dans le cas ou tu veux mettre un tableau en session. <?
array_push($_SESSION['prénom'], $prénom);
// ou
$_SESSION['prénom'][] = $prénom;
// à noter que les guillemets autour de $prénom ne sont pas obligatoires :)?>
Tu peux également créer ton tableau normalement et une fois celui-ci renseigné comme tu le souhaites (en vérifiant avec print_r que tu as bien ce que tu attends) tu le coles dans $_SESSION
Code : Tout sélectionner
$_SESSION['prénom'] = array();<?php
session_start();
require ("Connect.php");
$connexion = mysql_pconnect (SERVEUR,NOM,PASSE);
if (! $connexion)
{
echo"Désolé,connexion à " . SERVEUR ." impossible\n";
exit;
}
if (! mysql_select_db (BASE,$connexion))
{
echo "Désolé,accés à la base " . BASE . " impossible\n";
}
$resultat=mysql_query ("SELECT * FROM Fille",$connexion);
if ($resultat)
{
while ($valeur = mysql_fetch_array($resultat))
{ $id = $valeur["filleId"];
$image = $valeur["image"];
$prénom = $valeur["prénom"];
$age = $valeur["age"];
$pays = $valeur["pays"];
$langue = $valeur["langue"];
$objectif = $valeur["objectif"];
$id=$valeur["filleID"];
$miniature=$valeur["miniature"];
$_SESSION['prénom'] = array();
array_push($_SESSION['prénom'], $prénom);
if ( isset( $_SESSION['prénom']))
{
echo 'mon prénom : ' ;
// lecture de la variable de session 'prénom'
echo $_SESSION['prénom'] ;
echo "<a href=\"vide.php\">afficher le profil</a>";
} else {
echo 'prénom n\'existe pas dans la session' ;
}
}
}
else
{
echo"<B>Erreur dans l'exécution de la requete.</B><BR>";
echo"<B>Message de Mysql : </B>".mysql_error($connexion);
}
?>$_SESSION['prénom'] = array(); if ($resultat)
{
while ($valeur = mysql_fetch_assoc($resultat))
{ $id = $valeur["filleId"];
$image = $valeur["image"];
$_SESSION['prénom'][] = $valeur["prénom"];
$_SESSION['age'][]= $valeur["age"];
$pays = $valeur["pays"];
$langue = $valeur["langue"];
$objectif = $valeur["objectif"];
$id=$valeur["filleID"];
$miniature=$valeur["miniature"];
echo"<DIV>";
$_SESSION['prénom'][]= $prénom;
$_SESSION['age'][]= $age;
echo "$valeur[prénom]";
et la page 2
<?
session_start();
echo"<DIV>";
$_SESSION['prénom']=$prénom;
$_SESSION['age']= $age;
//$prénom = array($prénom);
echo"<TABLE border='1'><TR>";
foreach($prénom as $valeur1)
{
echo"<TD>$valeur1</TD>";
}
echo"</TR></TABLE>";
echo"<TABLE border='1'><TR>";
foreach($age as $valeur2)
{
echo"<TD>$valeur2</TD>";
}
echo"</TR></TABLE>";
//echo"$valeur[prénom]";
//echo"$_SESSION[prénom]";
//var_dump($prénom);
//echo"<pre>";
//print_r ($prénom);
//echo"</pre>";
echo"</DIV>";
echo'Les filles s\'appellent :';
foreach($prénom as $valeur1)
{
echo"$valeur1 ";
}
//echo"$prénom";
//var_dump($prénom);
//echo"<pre>";
//print_r ($prénom);
//echo"</pre>";
?>
<br><br><br><br>
<?php
if (isset($_SESSION['prénom'])) {
echo 'La variable prenom est enregistrée !';
} else {
echo 'La variable prenom n\'est pas enregistrée !';
}
session_destroy()
?>
les ligne commanter sont des tests en fait
while (...) {
...
$_SESSION['prenom'][] = $valeur["prénom"]; // Ici tu mets les valeurs de ta requête dans ta session
$_SESSION['age'][]= $valeur["age"];
...
$_SESSION['prenom'][]= $prénom; // Et là tu ajoutes à nouveau dans ta session une variable $prénom alors que celle-ci n'existe pas. Tu vas donc récupérer un null
$_SESSION['age'][]= $age; // idem pour l'age
}
Tu devrais soit supprimer ce deuxième ajout en session, soit remplacer le premier par les variables que tu utilises :
$prenom = $valeur["prenom"]; // récupération des valeurs
$age= $valeur["age"];
...
$_SESSION['prenom'][]= $prenom; // mise en session
$_SESSION['age'][]= $age;
Enfin, sur ta deuxième page, tu affectes de nouveau une valeur dans ta session au lieu d'en lire le contenu, ce qui ne doit pas te donner grand chose comme résultat :// tu fais
$_SESSION['prenom']=$prenom;
// au lieu de
$prénom = $_SESSION['prenom'];
un var_dump($prenom); te montrerais alors le tableau des prénoms que tu as obtenu, et une simple boucle foreach te permettrait de le parcourir pour l'afficher