$_GET pas pris en compte

Répondre
papigato
le 31/08/2009 à 17:08
papigato
bonjour,j ai le contenu d une base de donnée qui fait des siennes .
je sors le resultat d une requête dans le while ( normal ) et tout se passe bien .
par contre je souhaites faire un lien cliquable avec une variable dedans qui pointe vers une page ou le contenu du resultat s affiche en détail mais seulement , malgré le "id" dans le lien, c est toujours le meme resultat qui apparait.
je suis un peu perdu et j au rais besoin de votre aide.

voici le code de ma page d affichage : ( lien ligne 40)
<?php
include("include/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

$requete2 = mysql_query('SELECT * FROM campagne WHERE campagne_membre_id = '.$_SESSION['id'].' ORDER BY campagne_creation DESC') or die(mysql_error());
?>
<form name="delete campagne" action="delete_campagne.php" method="post">
<table id="gradient-style" class="paginated" >
<thead>
<tr>
<th width="20"></th>
<th scope="col"><span class="nostyle_bold">Nom</span></th>
<th scope="col"><span class="nostyle_bold">création</span></th>
<th scope="col"><span class="nostyle_bold">status</span></th>
<th scope="col"><span class="nostyle_bold">choisir</span></th>
</tr>
</thead>
<tbody>
<?php

if (mysql_num_rows($requete2) < 1)
{
echo'</table><center>vous n\'avez pas de campagne
<br /><a href="nouvelle_campagne.php">créer une campagne</a></center>';
}
else
{
?>


<?php

while ($donnees = mysql_fetch_array($requete2))
{
?>

<tr>
<td><input type="checkbox" name="supp[]" value="<?php echo $donnees['campagne_id'];?>" class="noborder" /></td>
<td><?php echo'<a href="voircampagne.php?m='.stripslashes(htmlspecialchars($donnees['campagne_id'])).'&action=consulter">'; ?><?php echo $donnees['campagne_nom']; ?></td>
<td><?php echo ''.date('d/M/Y',$donnees['campagne_creation']).''; ?></td>
<td><?php if($donnees['campagne_status'] == 0) echo '<span style="color:red">Inactive</span>'; else echo '<span style="color:green">Active</span>'; ?></td>
<td><a href="switch_campagne.php?id=<?php echo $donnees['campagne_id'];?>"><img src="../images/switch.png" title="s&eacute;l&eacute;ctionner" /></a></td>
</tr>
<?php
}
?>
</tbody>
</table><br />
<center><b><input type="submit" value="Supprimer"onclick="if (window.confirm('êtes vos certain de vouloir supprimer cette campagne ? '))
{location.href='campagnes.php';return true;} else {return false;}">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="nouvelle_campagne.php">nouvelle_campagne</a></b></center>
<?php
}
?>

jusque ici tout va bien mais le nom de la campagne est en lien avec l'id compris dedans.

voici ma page voircampagne.php
<?php
if (isset($_SESSION['pseudo'])) // Si le membre est connecté
{
include("include/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

include 'include/menu_connect.php';
?>

<div id="contenu">

<div id="fil">

Vous &ecirc;tes ici :<a href="../index.php">Acceuil</a> <img src="images/boutons/list-marker.gif" /> <a href="../controlpanel.php">Panel de contr&ocirc;le
</a>
<img src="images/boutons/list-marker.gif" /> <a href="campagnes.php">Mes campagnes</a> <img src="images/boutons/list-marker.gif" /> détails de ma campagne

</div>

<?php
$action = htmlspecialchars($_GET['action']);
$campagne = (int) $_GET['m'];

switch($action)
{
case "consulter":// consultation des infos de la campagne
$requete1 = mysql_query('
SELECT
campagne_id,
campagne_nom,
campagne_description,
campagne_banniere,
campagne_acceuil,
campagne_aurevoir,
campagne_status,
campagne_creation
FROM
campagne') or die(mysql_error());

if ($_GET = mysql_fetch_assoc($requete1))
{
echo'<center><h3>Détail de la campagne : '.stripslashes(htmlspecialchars($GET['campagne_id'])).'</h3></center>';
echo'<div style="width:60%;margin:auto;font-size:12px;color:#606088;border:1px dotted silver;"><br /><br />';
echo'&nbsp;<label><b>Description:</b></label> '.$_GET['campagne_description'].'<br /><br />';
echo'&nbsp;<label><b>Message de bienvenue :</b></label> '.stripslashes(htmlspecialchars($_GET['campagne_acceuil'])).'</span><br /><br />';
echo'&nbsp;<label><b>Message de désinscription : </b></label>'.stripslashes(htmlspecialchars($_GET['campagne_aurevoir'])).'<br /><br />';
echo'&nbsp;<label><b>Date de création :</b></label>'.date('d/M/Y',$_GET['campagne_creation']).'<br /><br />';
echo'&nbsp;<label><b>Bannière :</b></label><img src="'.$_GET['campagne_banniere'].'" alt="Cette campagne n\'a pas de bannière" /><br /><br /><br />';
echo' <center><a href="voircampagne.php?m='.stripslashes(htmlspecialchars($_GET['campagne_id'])).'&action=modifier">Modifier cette campagne</a></center><br /><br />';
}
else
{
echo'<br /><br /><center><img src="images/alert.png" /><br /><span class="nostyle_bold">Cette campagne ne semble pas exister !</span></center><br /><br
/>';
}
echo'</div>';
break;


je vois pas ce qui cloche pourtant.

ps :mon site utilise les sessions
LA GLOBULE
le 01/09/2009 à 00:27
LA GLOBULE
"Cette campagne ne semble pas exister !".

Ta page voircampagne.php, c'est Beyrouth :)

Plusieurs choses qui ne vont pas :

1) tu ne testes pas si $_GET['m'] et $_GET['action'] existent, tu les utilises directement. Tu es d'accord que si tu ne recois pas d'id en GET, il n'y a pas lieu d'afficher une page "vide". Donc avant de commencer ton traitement, teste avec isset si $_GET['m'] et $_GET['action'] existent, et si elles n'existent pas, fait une redirection quelque part (la page de listing par exemple).

2) D'après ce que j'ai compris, le but de la page voircampagne.php, c'est d'afficher les informations d'une campagne, donc d'un id bien précis. Or ta requete SQL ne fait aucune restriction : il ne manquerait pas un WHERE campagn_id = $_GET['m'] ?

3) N'écrase pas ton tableau $_GET en faisant un "if ($_GET = mysql_fetch_assoc($requete1))". Utilise une autre variable ($_GET peut te servir plus loin).
papigato
le 01/09/2009 à 01:15
papigato
en fait j ai réussi a révolver mon problème et pour Beyrouth tu as raison ^^.
J' ai d'ailleurs revu la propreté de mon code.
que veux tu dire par utiliser une autre variable que $_GET ?
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours