Probleme en $_GET [Fermé]

Signaler
Messages postés
25
Date d'inscription
dimanche 29 janvier 2012
Statut
Membre
Dernière intervention
9 septembre 2015
-
megarachid
Messages postés
25
Date d'inscription
dimanche 29 janvier 2012
Statut
Membre
Dernière intervention
9 septembre 2015
-
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

Messages postés
4984
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2019
964
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.
Colbi97
Messages postés
751
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
11
+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.
le hollandais volant
Messages postés
4984
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2019
964
Oui, le mieux parfois est d'utiliser un formulaire en POST.

Surtout pour la variable "commentaire" qui peut parfois être très long.
megarachid
Messages postés
25
Date d'inscription
dimanche 29 janvier 2012
Statut
Membre
Dernière intervention
9 septembre 2015
1
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>';