Problème $_REQUEST et include

j3b
Petit nouveau ! | 3 Messages

17 mars 2010, 16:15

Bonjour à tous!

J'ai une page index_fr.php qui contient mon index, j'utilise des conditions et des includes pour afficher le contenu de mon site. Pour certaines pages, je désire ajouter un menu "news" dans lequel il y a les 5 dernières news de mon site. Pour le moment j'ai testé en l'ajoutant a l'une de mes pages dans lequel je désire ajouter le menu news. voici le code (moi sa me parait logique :p, mais j'ai surement fait une petite erreur comme d'habitude #-o ) :
<?php
if(isset($_REQUEST['news'])) $news = $_REQUEST['news'];
else $news = "";
?>

contenu html

<?php
include("sql.php");

// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
	$idnews = $donnees['id'];
    echo "<a href=\"index_fr.php?news=$idnews\"><h5><li>\n";
	echo $donnees['titre'];
    echo "</li></h5></a>";
} 
?>
Puis la condition :
<?php
if($news=="") { ?>

Afficher le contenu de la page

<?php } 
else { ?>

Afficher "test"

<?php }
?>
Je vois bien mon menu à droite et les liens sont correct (index_fr.php?news=4 par exemple), mais lorsque je clique sur une news rien ne s'affiche alors que "test" est sensé s'afficher.

Merci !

Eléphant du PHP | 86 Messages

17 mars 2010, 16:22

Salut,

Le fait de mettre une variable "news" dans le lien de ta page correspond à un GET.
Donc pour récupérer la valeur de ta variable :
if($_GET['news']=="")
...
De plus, "text" n'est pas censé s'afficher dans ton exemple puisque $_GET['news'] aura pour valeur '4'...

j3b
Petit nouveau ! | 3 Messages

17 mars 2010, 16:47

J'ai fait mon index avec

if(isset($_REQUEST['page'])) $page = $_REQUEST['page'];
else $page = "";

puis pour mes pages : <a href=\"index_fr.php?page=nomdelapage\></a>

puis if ($page==ma page)include("page contenu.php"); et sa fonctionnait... maintenant avec une variable ça ne fonctionne plus, pourquoi ?

En changeant pour $_GET j'ai l'erreur :

Notice: Undefined index: news in C:\.. on line 74
Notice: Undefined index: news in C:\.. on line 85

Merci !

Eléphant du PHP | 86 Messages

17 mars 2010, 17:15

En lisant ton code, je n'arrivais pas à trouver ton erreur donc j'ai testé le code suivant :
<?php
if(isset($_REQUEST['news'])) $news = $_REQUEST['news'];
else $news = "";
?>

contenu html<br />

<?php
	$idnews = 1;
    echo "<a href=\"index.php?news=$idnews\">News 1</a><br />";
	$idnews = 2;
	echo "<a href=\"index.php?news=$idnews\">News 2</a>";
	
if($news=="") {
	echo "page";
}
else {
	echo "test";
}
?>
Et... Il fonctionne très bien :)
Je pense que tu as fait une erreur dans tes noms de variables car le code que tu as posté sur le forum semble correct

j3b
Petit nouveau ! | 3 Messages

17 mars 2010, 17:49

Sa marche :D

J'avais tout mit dans le fichier include,j'ai seulement mit la requête et l'affichage dans mon fichier include, le reste je l'ai mit dans mon index et tout fonctionne, merci :mrgreen: