Probleme en $_GET

Fermé
megarachid Messages postés 25 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 9 septembre 2015 - 16 mars 2012 à 03:04
megarachid Messages postés 25 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 9 septembre 2015 - 16 mars 2012 à 15:39
Bonjour,




je veux savoir comment on peut utiliser $_GET pour récupérer une variable dans un lien php j'ai essayer avec ca mais il marche pas




<?php
if(!empty($_GET['pseudo'])&&!empty($_GET['commentaire'])&&!empty($_GET['pays'])&&!empty($_GET['ville'])&&!empty($_GET['sexe'])&&!empty($_GET['age']))
{
$pseudo=$_GET['pseudo'];
$commentaire=$_GET['commentaire'];
$pays=$_GET['pays'];
$ville=$_GET['ville'];
$sexe=$_GET['sexe'];
$age=$_GET['age'];
}
?>

1 réponse

le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 057
16 mars 2012 à 09:20
Salut !

Le soucis ici, c'est que l'ensemble des éléments dans l'URL sont testés et doivent être présents. Je conseille plutôt ça :


<?php 
if (!empty($_GET['pseudo'])) { 
    $pseudo=$_GET['pseudo']; 
} else {
    $pseudo='';
}

if (!empty($_GET['commentaire'])) 
    $commentaire=$_GET['commentaire']; 
} else {
    $commentaire='';
}

if (!empty($_GET['pays'])) {
    $pays=$_GET['pays']; 
} else {
    $pays='';
}

if (!empty($_GET['ville']) {
    $ville=$_GET['ville']; 
} else {
    $ville='';
}

if (!empty($_GET['sexe'])) {
    $sexe=$_GET['sexe']; 
} else {
    $sexe='';
}

if (!empty($_GET['age'])) {
    $age=$_GET['age']; 
} else {
    $age='';
}
?>


Par ailleurs, je te conseille très fortement de mettre des htmlspecialchars partout, comme ça :

if (!empty($_GET['age'])) {
    $age=htmlspecialchars($_GET['age']); 
}


Ne pas le faire est dangereux (risque de piratage), et c'est une erreur grave dans le développement web.
0
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 12
16 mars 2012 à 11:24
+1 pour le hollandais volant (en même temps c'est normal...).
De plus, tu passes ton formulaire en GET avec beaucoup de textes (pseudo, commentaire, pays, ville, sexe, age) et par conséquent, ton url doit être très longue si tu ne limite pas la taille de chaque champ.
Il ne faut pas oublié que la longueur maximale d'une url est de 256 caractères et que tout ce qui dépasse sera donc tronqué et par conséquent tes variables qui viennent ensuite et leur contenu disparaissent.
0
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 057
16 mars 2012 à 12:52
Oui, le mieux parfois est d'utiliser un formulaire en POST.

Surtout pour la variable "commentaire" qui peut parfois être très long.
0
megarachid Messages postés 25 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 9 septembre 2015 1
16 mars 2012 à 15:39
ok merci a vous tous vous avez me donnez une tres belle idee c'est detuliser sur URL le pseudo seul et apres je peut appeler les autres par une requete mysql et ton code qui tu ma donner mr "le hollandiais volant " marche bien merci bcq

et j'ai un autre probleme
je fais d'affiche de tableux d'inscription d'une une table php comme des liens et je veux savoir comment faire pour passer le nom que je clique dans un URL avec le page qui vas afficher ila vas afficher sur une iframe
mon c'est que je ne sait pas comment passer ce pseudo que je clique pour le utiliser dans des requete sur dans la page distant dans URL

et c'est ca le code que j'ai utilise

echo '<td bgcolor="#CCCCCC"><a href = "info.php ?pseudo='.$row['pseudo']. '" target="zone">' .$row['pseudo']. '<br/></a></td>';
0