8797 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

J'essaye d'afficher une phrase différente selon que ma page affichée est :

index.html?page=phrase1
index.html?page=phrase2
index.html?page=phrase3
index.html?page=phrase4

J'ai insérer ce code php dans ma page mais il n'affiche rien Smiley decu


if($page=="phrase1") print("<p class=\"red\">Voici la phrase 1.</p>\n");

if($page=="phrase2") print("<p class=\"red\">Voici la phrase 2.</p>\n");

if($page=="phrase3") print("<p class=\"red\">Voici la phrase 3.</p>\n");

if($page=="phrase4") print("<p class=\"red\">Voici la phrase 3.</p>\n");


Ai-je fais une erreur dans mon code ? Ou est-ce qu'il y a un autre moyen pour afficher les phrases selon le "page=" ?

Merci pour votrs aide,

Sub
Modifié par subran (13 Jul 2011 - 16:39)
Comme ta variable page est de type GET (elle provient de ton URL) elle est contenue dans le tableau global $_GET. Donc c'est $_GET['page'] au lieu de $page.
jb_gfx a écrit :
Comme ta variable page est de type GET (elle provient de ton URL) elle est contenue dans le tableau global $_GET. Donc c'est $_GET['page'] au lieu de $page.


Merci !!!
Modifié par subran (13 Jul 2011 - 14:21)
Ha zut, il affiche tout le temps : "La phrase 1" (quelle que soit la variable):


if($_GET['page'] = 'phrase1') { print("<p>La phrase 1</p>\n"); }

elseif($_GET['page'] = 'phrase2') {print("<p>La phrase 2</p>\n");}

elseif($_GET['page'] = 'phrase3') {print("<p>La phrase 3</p>\n");}

elseif($_GET['page'] = 'phrase4') {print("<p>La phrase 4</p>\n");}


Smiley ohwell
Modifié par subran (13 Jul 2011 - 14:21)
En mettant ceci :


if($_GET['page']="phrase1") print("<p class=\"red\">Voici la phrase 1.</p>\n"); 
 
if($_GET['page']="phrase2") print("<p class=\"red\">Voici la phrase 2.</p>\n"); 
 
if($_GET['page']="phrase3") print("<p class=\"red\">Voici la phrase 3.</p>\n"); 
 
if($_GET['page']="phrase4") print("<p class=\"red\">Voici la phrase 3.</p>\n"); 


Il affiche toutes les phrases quelle que soit la variable.

En mettant == ou === il n'affiche rien Smiley confus
Normal le "=" affecte une valeur là tu écris en gros if(0=0) blabla

avant de mettre les if fait un echo de ton get

et donne nous le code complet, ton erreur est autre part
hum et si tu faisais
$page= $_GET['page'];
echo "phrase : ($page) <br />";

avant tes if histoire de vérifier le passage du paramètre ?
quand je fais print sur la variable $_GET cela affiche Array

et

$page= $_GET['page'];

echo "phrase : ($page)
";

affiche :

phrase : ()
Modifié par subran (13 Jul 2011 - 15:00)
Je viens de faire la même chose en remplacant GET par POST et j'ai un résultat identique.

La variable se trouve dans l'url : index.html?page=phrase1
La réponse est : c'est normal, les post ne récupère pas les infos dans l'url...

mais juste comme ça, comme tu envoies ta variable dans l'url ?

l'erreur viens peut être de là, non ?

file nous le code de index.php stp Smiley cligne
Ma page index.php ne contient rien que le code php pour l'instant car j'essaye selon la variable qui se trouve dans l'url d'adapter le texte qui s'affiche dans la page :

pour l'url : index.php?page=phrase1

j'essaye d'afficher une variable phrase1 = une phrase au choix
Accède à ta page en utilisant l'URL index.php?page=phrase1

Et au début de ta page index.php ajoute la ligne :


print_r($_GET);


Et dis nous ce que ça affiche.
Avec ce code cela fonctionne :

<?php

if($_GET['page']==='phrase1') {print("phrase1\n");}

?>

Mon problèmee survient quand j'essaye depuis une page :

test.html?page1=phrase2

car via cette page cela donne :
Cela donne :

Array ( Smiley page => test )

La page test.html est en faite une page test.php qui est inclue via php dans la page index.php puis avec REXRITE cela donne test.html et du coup pas moyen de prendre ma variable page1 Smiley decu

Pensez-vous qu'il y a moyen depuis ma page test.html?
Pages :