Variables en php

Guy87
Invité n'ayant pas de compte PHPfrance

08 déc. 2011, 19:40

Bonjour,
Je ne mets pas tous les détails pour simplifier le code.
L'ensemble est avec une session de contrôle d'identifiant :
session_start();
if(isset($_SESSION['login']))
{
// Code
}

J'ai une requête qui lit des infos dans une table :
$sql="select * from manifestations";

Ensuite un affichage des valeurs :
echo "<table width='80%' border>";
$mysql_result = mysql_query($sql, $conn);
while($result=mysql_fetch_array($mysql_result))
{
$_SESSION['cm']=$result['code_manif'];
echo "<tr>
<td width='20%'>".$result['debut_manif']."</td>
<td width='50%'>".$result['lieu_manif']." - ".$result['info_manif']."</td>
<td width='30%' align='center'><a href='em_manif_details.php'>Détails code=".$_SESSION['cm']."</a></td>
<tr>";
}
echo "</table>";

Toute cette partie fonctionne bien. Le code de la fiche manif est correct pour chaque ligne.
Quand je demande le détail de la fiche manif, je n'arrive pas à récupérer le bon code_manif, et j'ai toujours le dernier enregistrement.

Le deuxième fichier php : em_manif_details.php
<?php
session_start();
if(isset($_SESSION['login']))
{
echo 'Bonjour : ' . $_SESSION['login']." -- ".$_SESSION['cm']."<br>";
}
?>
$_SESSION['cm'] n'est pas correct ici.
Voici mon problème peut-être ne peut-on pas utiliser les variables session de cette façon ?
Merci pour l'aide.

Mammouth du PHP | 1967 Messages

08 déc. 2011, 19:53

Lors de ta boucle pour l'affichage des manif, tu écris toujours sur la même variable de session tu écrase donc les précédente valeurs.

Mais ton erreur est une erreur de conception de ton code, tu dois détecter sur quelle lien a cliqué ton utilisateur, pour cela je te suggère d'utiliser des variable GET

et donc un lien du style
echo "<tr>
<td width='20%'>".$result['debut_manif']."</td>
<td width='50%'>".$result['lieu_manif']." - ".$result['info_manif']."</td>
<td width='30%' align='center'><a href='em_manif_details.php?cm=".$result['code_manif']".'>Détails code=".$result['code_manif']."</a></td>
<tr>";
et donc sur ta 2eme page
session_start();
if(isset($_SESSION['login']))
{
echo 'Bonjour : ' . $_SESSION['login']." -- ".$_GET['cm']."<br>";
}
?>
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Guy87
Invité n'ayant pas de compte PHPfrance

08 déc. 2011, 21:47

Je viens d'essayer et ça fonctionne, je ne connais pas beaucoup l'utilisation de $_GET, je vais chercher dans l'aide.
Merci pour la réponse.
Guy