$_GET

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 17:07

Bonjours à tous !!!

J'aimerais savoir comment faire pour inclure 2 conditions dans les fonction $_GET permettant d'obtenir dans une barre d'adresse par exemple :
index.php?page=staff&id=1

Je vous remercie beaucoup d'avance je sais pas si j'ai été clair mais si sa ne l'été pas dites le moi ;)

Bonne année 2007 au passage^^

ViPHP
AB
ViPHP | 5818 Messages

06 janv. 2007, 17:10

Pas clair du tout;
Explique précisément ce que tu veux faire avec un exemple et ton code suivra

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 17:16

Par exemple sur mon site actuel disponible ici
Voici ce que j'ai fait pour inclure les pages dans d'autres avec $_GET :
<?php
$page = $_GET['page'];
if (!$page) {
$number = "4";
include("news/show_news.php");}
elseif (file_exists("pages/$page.htm"))  {include("pages/$page.htm");}
elseif (file_exists("pages/$page.php"))  {include("pages/$page.php");}
elseif (file_exists("pages/$page.php3"))  {include("pages/$page.php3");}
else {include('erreur.htm');}
?>
Et en faite j'ai commencer à faire une partie avec chaque personnages de la série et j'aimerais par exemple mettre une autre variable $_GET avec le nom des personnages.
exemple [url=<?php
$page = $_GET['page'];
if (!$page) {
$number = "4";
include("news/show_news.php");}
elseif (file_exists("pages/$page.htm")) {include("pages/$page.htm");}
elseif (file_exists("pages/$page.php")) {include("pages/$page.php");}
elseif (file_exists("pages/$page.php3")) {include("pages/$page.php3");}
else {include('erreur.htm');}
?>]ici[/url][/code]

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 janv. 2007, 17:25

Petit souci de copier/ coller pour le lien, non :-s

Regarde ce tuto pour plus d'explications :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 17:31

Oups excusez moi voila pour le lien : http://www.captainaruto.com/?page=personnages

^^"

Sinon j'avais deja vu le lien que vous m'avez montré mais en faites je vois pas du tout comment l'adapter à ce que j'ai fait.
J'ai essayer plusieurs choses mais à chaque fois sa ne marcher pas -_-

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 janv. 2007, 17:38

tu dois avoir un lien qui ressemble a ceci :
<a href="?page=personnages">
si tu veux faire passer un deuxième paramètre il faut l'ajouter au lien existant séparé par un "&" :
<a href="?page=personnages&perso=naruto">
Tu récupères donc deux variables en GET :
$page = $_GET['page']; // vaut personnages
$perso= $_GET['perso']; // vaut naruto
Une fois que tu as compri passe sur ce topic pour récupérer les données proprement en évitant d'éventuels messages d'erreurs

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 17:47

Voila ce que je viens d'essayer :
<?php
$page = $_GET['page'];
$perso= $_GET['perso'];
if (!$page) {
$number = "4";
include("news/show_news.php");}
elseif (file_exists("pages/$page.htm"))  {include("pages/$page.htm");}
elseif (file_exists("pages/$page.php"))  {include("pages/$page.php");}
elseif (file_exists("pages/$page.php3"))  {include("pages/$page.php3");}
elseif (!$perso)  {include("pages/personnages/$perso.php");}
else {include('erreur.htm');}
?>
Ensuite j'ai fait un lien comme sa :
<a href="?page=perso&perso=baki">

Mais il ne fait rien il reste sur la page ou il y a la liste des personnages -_-

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 janv. 2007, 18:04

à quoi correspondent tous les fichiers ?
$page.htm, $page.php...

Effectue des tests d'affichage pour savoir dans quel cas tu te retrouves :
if (!$page) 
{
   echo "Cas 1";
   $number = "4";
   include("news/show_news.php");  
}
elseif (file_exists("pages/$page.htm"))  
{
	 echo "Cas 2";
	include("pages/$page.htm");
}
elseif (file_exists("pages/$page.php"))  
{
	 echo "Cas 3";
	include("pages/$page.php");
}
elseif (file_exists("pages/$page.php3"))  
{
	 echo "Cas 4";
	include("pages/$page.php3");
}
elseif (!$perso)  
{
	echo "Cas 5";
	include("pages/personnages/$perso.php");
}
else 
{
	echo "Cas 6";
	include('erreur.htm');
} 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 18:11

En faites chaque pages qui sont incluses sont situer dans un repertoire nomé pages.
Il y en as certaines en html d'autre en php (la ligne pour le php3 ne sert plus d'ailleurs)
C'est pour sa qu'il y a $page.htm, $page.php... Comme sa il inclu la page en htm si elle est en htm et il inclu aussi en php si jamais la page est en php.
(ptêtre qu'il y a des facons plus simple de procédé moi j'ai fait un peu à ma façon^^")

Maintenant j'aimerais que par exemple quand l'adresse c'est
<a href="?page=perso&perso=naruto">
il inclu la page qui se trouve dans le repertoire pages/personnages/naruto.php

Voili voilou en plus clair ce que je cherche à faire :D

ViPHP
fab
ViPHP | 2657 Messages

06 janv. 2007, 20:24

Au passage ça m'énerve depuis que je vois le post :p
Il NE faut PAS mélanger les variables aux chaines
au lieu de
file_exists("pages/$page.htm"))
faut
file_exists("pages/".$page.".htm"))   
C'est pas obligatoire mais ça évite bien des erreurs
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 20:33

oups c'est vrai que j'y pense pas toujours à sa comme sa marche que ce soit l'un ou l'autre.
Voila j'ai modifier cette partie j'ai essayer plusieurs trucs mais je n'arrivent toujours pas à faire ce que je veux quelqu'un peut m'aider ?

:roll:

ViPHP
fab
ViPHP | 2657 Messages

06 janv. 2007, 20:40

Actuellement ça t'affiche quoi ? erreur non ?
si c'est ça remplace
elseif (!$perso)   
{ 
    echo "Cas 5"; 
    include("pages/personnages/$perso.php"); 
} 
par
elseif ($perso)   
{ 
    echo "Cas 5"; 
    include("pages/personnages/$perso.php"); 
} 
Car Avant tu demandais que la variable retourne FALSE ( en gros qu'elle n'existe pas pour envisager l'inclusion.
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 20:44

Jviens d'essailler ce que tu m'a dit mais sa n'a rien changer.

En faites ce qui se passe c'est que lorsque je suis sur la liste des personnages et que je clic sur un lien comme celui-ci : <a href="?page=perso&perso=naruto">
Il reste sur la page perso comme si il ne prennait pas en compte la partie
$perso = $_GET['perso'];

ViPHP
ViPHP | 1961 Messages

06 janv. 2007, 20:48

Bonjour,

La meilleur solution dans ses cas c'est d'afficher les variables.
Si la variable contient QQ chose, vérifier que le fichier en question existe.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 29 Messages

06 janv. 2007, 20:51

Bonjour,

La meilleur solution dans ses cas c'est d'afficher les variables.
Si la variable contient QQ chose, vérifier que le fichier en question existe.
Justement la variable ne contient rien à chaque fois car le fichiers lui est bien sur le serveur.
En faite si on prend la méthide de Truc en verifiant si la variable existe, on est jamais dans le Cas 5.
On reste toujours dans le Cas 3

Pour mieux voir ce qui ce passe vous pouvez faire un essais sur cette page ici
En cliquant sur le personnage Baki vous verrez que rien ne ce passe ;)



Au passage je souhaitais vous dire merci pour votre aide je trouve ce forum vraiment genial j'aime beaucoup^^
ptite parenthèse :D