Forum Clubic

Petit probleme de $_GET en php qq un ?

est ce que qq un pourrai m’expliquer un peu comment fonctionne un GET…et puis comment on l’ecrit parce que jai du mal lol.
je veux charger une page (a chaque fois la meme page en fait) mais avec un contenu different a chaque foi en fonction de variable…mais ma page affiche une page blanche et dans ma barre de recherche elle affiche…le nom de la page.php?$nom etc… alor qu’elle devrait ecrire la valeur de ma variable …

Le $_GET permet de récupérer des variable à partir d’une url.

Pour l’utiliser tu dois le placer dans une variable exemple :

$page = $_GET['page'];

Et pour l’appeler tu dois faire (en continuant dans cette exemple la) :

<a href="index.php?page=exemple">

Selon ce que tu récupère, tu fait le traitement que tu veux :wink:

Tu peux en mettre autant que tu veux par exemple :

$page1 = $_GET['page1'];
$page2 = $_GET['page2'];

que tu appeleras ensuite de la façon suivante :

<a href="index.php?page1=exemple1&page2=exemple2">

Edité le 21/03/2008 à 15:34

en complément de la réponse de Tck-linkis un tuto
d’introduction aux variables d’environnement:

www.phpsources.org…

a+

salut, si dans ton url il te marque quelque chose du genre page.php?$nom
il est probable que tu as mis des ’ au lieu de " dans ton code,
il faut savoir que les variables présentent dans une chaine de caractere entre quote ne sont pas interprété,
alors que celle entre guillemets le sont

<?php $MaVariable='toto'; echo 'bonjour $MaVariable'; ?>

donnera : bonjour $MaVariable
alors que

<?php $MaVariable='toto'; echo "bonjour $MaVariable"; ?>

donnera : bonjour toto

j’espere que cela va t’aider

$_GET est un tableau qui reprend l’ensemble des donnees transmises au serveur en utilisant la method get. la methode get utilise l’url pour passer les donnees ce qui donne quelque chose du genre :

http://127.0.0.1/index.php?nom=roger&prenom=mathieu&age=27

pour les envoyées (les données) depuis un formulaire html il te faut faire quelque chose comme cela :


<form method="get" action="index.php">
Ton prenom : <input type="text" name="prenom">
Ton nom : <input type="text" name="nom">
Ton age : <input type="text" name="age">
<input type="submit" value="envoyer">
</form>

name déterminera l’index du tableau php dans lequel récupérer les données (sensible a la casse)

ensuite tu récupère le tout dans ton PHP avec $_GET


<?PHP

$prenom = $_GET['prenom'];
$nom = $_GET['nom'];
$age = $_GET['age'];

echo "bonjour, ".$prenom." ".$nom." tu as ".$age" ans c'est bien ca ?";


Mais le get a certaines limitation (securite on vois les donnees dans l’url et on peu donc plus facilement les modifier et surtout il est limite en taille.

Si tu souhaite que les informations transmisent via ton formulaire n’apparraissent pas dans l’url ou si tu souhaite envoyer plus de données fait le via POST tu change juste le :

<form method="get"...

en

<form method="post"...

et dans ton code PHP tu utilise $_POST a la place de $_GET.
Edité le 10/07/2010 à 22:36

ok je vais essayer tout ca…peut etre que c’est simplement un pb de " ou de ’

Par contre fait gaffe si tu fais un menu en index?page=exemple etc
Si la personne va utilise un lien exterieur pourra executer un code sur ton site a distance :.
Pour ca il y a plusieur moyen soit tu fais une multitude de condition
if(isset($_get[‘page’]))
{
if($_get[‘page’] == exemple)
{
$page = exemple.php
}
else
{
$page = home.php
}
}
bien sur en dessous tu as un include de $page pour voir le fichier voulu :slight_smile:

si je le fais pas qu’est qui peut m’arriver??

ca va dépendre un peu de la configuration de ton php.ini, et beaucoup de ta facon de programmer,
mais tu peux te faire hacker ton serveur, maintenant tu as des manieres simple de te prémunir contre ca,
tu devrais trouver ce qu’il te faut sur php.net
maintenant ce n’est pas forcement utile de devenir parano sur une appli que ne sera pas critique ^^

Linkwang ca depend de l’utilité du site surtout
Imaginons un site de vente
Tu peux afficher les coordonnés des gens et autre chose dont certains sont friand :wink:

c’est ce que je dis : application critique ou po, maintenant si l’on fait un site contenant des données personnelles, il y a quelques détails a prendre en compte, (dans certain cas il y a des déclarations a faire)

pour eviter cela tu peux faire un mysql_escape_string pour tes requetes si tu utilise tes $_GET directement dans une requete, sinon met des addslashes. ca evite les injections de code et pour verifier s’il vient de ton site ou non verifie ca avec des variables de session ($_SESSION)
Edité le 25/03/2008 à 09:43