[Php] la fonction include [Résolu/Fermé]

Signaler
Messages postés
364
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
20 juillet 2011
-
Messages postés
1839
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2019
-
Bonjour,
Je voudrais tester la fonction include en passant un paramètre page à la page.

voici mon index.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />

</head>
<body>
<div>
<ul>
<li><a href="index.php?page=accueil">accueil</a></li>
<li><a href="index.php?page=entourage">entourage</a></li>

</ul>
</div>

<?php

if($page=='entourage')
{
echo "page d'entourage";

}
else {echo "pas de variable page";}

?>


</body>
</html>



mais, si je clique sur le lien entourage, j'obtien ceci :


accueil
entourage

Notice: Undefined variable: page in C:\Program Files\EasyPHP5.3.0\www\test\index.php on line 24
pas de variable page


Merci de m'aider

7 réponses

Messages postés
1839
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2019
133
bonsoir,
pourquoi pas

<div>
<ul>
<li><a href="accueil.php">accueil</a></li>
<li><a href="entourage.php">entourage</a></li>

</ul>
</div>
ou alors il faut mettre un switch dans index.php
//syntaxe à vérifier
switch{
case : entourage
include ('entourage.php');
breack;
case accueil
include (accueil.php');
breack;
default:
include (index.php');
breack;
}

ou faire des if
if ($_GET['page']=='entourage') include ('entourage.php');
if ($_GET['page']==accueil) include ('accueil.php');
Messages postés
364
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
20 juillet 2011
63
Merci pour la réponse.

j'ai remplacé mon code par ceci :


<body>
<div>
<ul>
<li><a href="index.php?page=accueil">accueil</a></li>
<li><a href="index.php?page=entourage">entourage</a></li>

</ul>
</div>


<?php

if ($_GET['page']=='entourage') include ('entourage.php');
if ($_GET['page']=='accueil') include ('accueil.php');

?>
</body>


ça marche, mais, lorsque je tape dans mon url : http://127.0.0.1/test/index.php

j'obtien ceci :


accueil
entourage

Notice: Undefined index: page in C:\Program Files\EasyPHP5.3.0\www\test\index.php on line 24

Notice: Undefined index: page in C:\Program Files\EasyPHP5.3.0\www\test\index.php on line 25


comment éviter l'affichage des notices ??

Merci
Messages postés
1839
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2019
133
c'est normal puisque $_GET n'est pas initialisé

alors au début faire

if (isset($_GET)){ on fait les if
}
else {
on fait le index;php
}
Messages postés
364
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
20 juillet 2011
63
ok, j'ai fais ceci :

<body>
<div>
<ul>
<li><a href="index.php?page=accueil">accueil</a></li>
<li><a href="index.php?page=entourage">entourage</a></li>

</ul>
</div>


<?php
if(isset($_GET))
{
if ($_GET['page']=='entourage') include ('entourage.php');
if ($_GET['page']=='accueil') include ('accueil.php');
}

?>


</body>


mais le même message apparait
Messages postés
1839
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2019
133
alors on fait l'inverse

if (!isset($_GET)) {
on fait l'index
}
else
{
on fait les if
}
Messages postés
364
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
20 juillet 2011
63
Enfin, ça marche avec ceci :


<?php
if(!empty($_GET))
{
if ($_GET['page']=='entourage') include ('entourage.php');
if ($_GET['page']=='accueil') include ('accueil.php');
}

?>



mais avec !isset c'est le même problème.

Merci pour tes réponses rapides ;)
Messages postés
1839
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2019
133
oui bien sûr !