Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Toutankharton le le 13-12-2003 a 22:23:53

Titre: afficher les infos d'une page en fct de l'url
Posté par: Toutankharton le le 13-12-2003 a 22:23:53

Je debute tjrs en php mais ce que je demande me semble possible :

J'ai une BDD avec une table sur les dieux égyptiens de 3 champs (id, nom, description) j'affiche les pages sans probleme suivant l'ordre alphabetique ce qui affiche tout les dieux d'une même lettre. Je peut aussi faire une recherche et afficher les resultats... Mais ce que je voudrais faire c'est faire un lien vers un dieu pour que la page qui s'ouvre n'affiche que celui ci, sans creer une page pour chaque dieu...

un truc du genre

Code:
<a href="afficher_dieu.php?dieu=horus"


Comment on fait ça ? J'ai lu que dieu aurait étyé une variable et horus sont contenu mais je ne sait pas comment utiliser ça dans la page...

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: TinMar le le 13-12-2003 a 22:38:49

je metterais dans la requete :


Code:
SELECT * FROM $table WHERE nom LIKE '$dieu'";

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: Toutankharton le le 13-12-2003 a 23:33:03

Oui, mais le probleme n'est pas là :

j'ai une page on va l'appeler page1 j'ai le nom d'un dieu, disons horus, je veut faire un lien vers une autre page, page2, donc il faut que dans l'url je mette en nom de variable dieu=horus pour que page2 affiche horus, mais que si le nom de variable était autre ça affiche cet autre nom...

Bref comment faire pour extraire de l'url une variable?

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: TinMar le le 14-12-2003 a 10:33:25

ben comme tu as fait : dans ton cas si dans l'url tu mets : dieu =horus : dans la varialbe $dieu il y aura la chaine de caractères "horus".

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: Toutankharton le le 14-12-2003 a 13:16:17

et ba ça marche pas : je vous montre l'essai avec deux pages :

page1

Code:

<?
echo "essai<br />";
echo "<a href='page2.php?dieu=horus'>Page 2</a>";
?>


Page2

Code:

<?
echo "page 2<br />";
echo $dieu
?>


et là il m'affiche

page2

Notice: Undefined variable: dieu in g:\program files\easyphp1-7\www\ess\2.php on line 3

Comment faire pour qu'il m'affiche

page2

horus


???

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: POde.uk le le 14-12-2003 a 13:20:28

Citation de: Toutankharton le le 13-12-2003 a 23:33:03
Bref comment faire pour extraire de l'url une variable?


il faut utiliser la methode GET pour récupérer les valeurs par l'url : $_GET['nom'] dans ton cas

mais il est plus judicieux de faire passer l'ID du dieu que son nom, un nom pouvant comporter des caractères spéciaux (il faudrait alors utiliser urlencode avant de le mettre dans l'url) ou si tu fais une faute un moment dans une de tes tables ça peut ne plus correspondre.

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: POde.uk le le 14-12-2003 a 13:24:41

tu as easyphp 1.7 c'est pour ça que tu as ce "bug"

c'est juste un warning parce que ta variable n'est pas déclarée avant utilisation

beaucoup de réponses à ta question se trouvent ici :

http://www.webdynamit.net/forum/index.php?showtopic=3969


Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: POde.uk le le 14-12-2003 a 13:30:34

du code plus correct :
(si tu peux éviter de faire un echo "que du texte"; c'est mieux, essaie dans la mesure du possible de sortir le HTML pur du code PHP l'exécution est plus rapide)

page1

Code:

essai<br />
<a href="page2.php?dieu=horus">Page 2</a>


Page2

Code:

page 2<br />
<?
echo $_GET['dieu']
?>
//équivalent : <?=$_GET['dieu']?>

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: Toutankharton le le 14-12-2003 a 13:43:07

Merci ça marche :)
T'inquiete pas on m'a deja prevenu pour ce type d'adresse, seulement j'ai a rechercher dans plusieurs tables dc je fait ?lttr=a&nom=nom dc je ne risque pas de faire de fautes et c'est super facile ! merci ++

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: TinMar le le 15-12-2003 a 09:31:59

Sorry si mes infos étaient pas bonnes mais j'utilise cette methose sur un de mes sites et ca marche sans le get comment ca se fait ??? !!

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: POde.uk le le 15-12-2003 a 17:48:40

tes infos sont bonnes, mais pour programmer de façon plus "correcte" et "sécurisée" il faudrait spécifier d'ou viennent tes variables

tu peux les récupérer dans différents endroits : tableau GET, POST, SESSION, COOKIE, FILE, SERVER...

tout dépend d'une variable de configuration dans ton php.ini : register_global

si c'est sur ON ça signifie que les variables que tu utilises sont systématiquement enregistrées en tant que variable globales, donc tu peux les appeler de la manière dont tu le fais

si c'est sur OFF, il faut préciser d'ou tu les tires
si ce sont des variables locales définies dans un script, ça ne change pas, $variable

si ce sont des variables venant de la method POST : $_POST['variable']

etc.

mais tout est mieux expliqué ici :

http://www.phpindex.com/articles/articles_lire.php3?element=299

les prochaines version de PHP nécessiterons de programmer avec register_global à off (c'est déjà le cas normalement actuellement mais certains hébergeurs sont encore à on, le temps de mettre à jour les vieux script en gros)

mais c'est pas tout, actuellement on n'a pas besoin d'initialiser une variable avant de l'utiliser, encore un problème auquel on sera confronté dans un futur proche, d'autres informations ici : http://www.webdynamit.net/forum/index.php?showtopic=3969

Titre: Re:afficher les infos d'une page en fct de l'url
Posté par: TinMar le le 15-12-2003 a 19:58:54

ok ! Merci beaucoup POde. C'est vrai que je suis pas très au courant des changements des languages web mais ca à l'air de bouger pas mal.


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.