Lien HTML-PHP avec paramètres PHP

Résolu/Fermé
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 - 10 avril 2008 à 14:30
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 - 10 avril 2008 à 16:26
Bonjour,
Je ne sais pas si le titre de mon post est très clair, donc je vais vous expliquer.

// liste région
$ReqReg = "SELECT Département FROM départements_voisins WHERE région='$vregion' ORDER by Département";
$resReg=mysql_query($ReqReg,$cnx);
$JeuEnrReg=mysql_fetch_assoc($resReg);
$vlister="";
			
while($JeuEnrReg)//permet de lister les départements voisins
{
     $vlister=$vlister."left(CP,2)='".$JeuEnrReg['Département']."' OR ";
     $JeuEnrReg=mysql_fetch_assoc($resReg);
}
$vlister=substr($vlister,0,strlen($vlister)-4); // Enlève  le " OR " de la fin de la chaîne

Comme vous pouvez le voir, ma variable $vlister est générée automatiquement grâce à la boucle while.


J'ai un lien :
echo "<b><a href = 'fimex.php?vardep=r&vardep1=$vardep&varreg=$vlister&varspec=$varspec'>".$vregion."</b></a>";

Or, lorsque je clique sur le lien, au niveau du $vlister, il me met varreg=left(CP,2)=...
Il aurait du me mettre : varreg=left(CP,2)='24' OR left(CP,2)='33' OR left(CP,2)='40' OR left(CP,2)='47' OR left(CP,2)='64'

En effet j'ai besoin de cette chaine pour pouvoir compléter une requête SQL, et je n'ai que le début.

J'espère que vous comprenez mon problème, et j'attends avec impatience vos réponses.
A voir également:

5 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
10 avril 2008 à 14:35
salut,

il faut que tu encodes les caractères incompatibles avec les spécifications d'une url (pas d'espaces, etc…).
et hop, la méthode magique :
$url = urlencode( $url );
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
10 avril 2008 à 14:39
Excuse moi mais tu peux développer un peut plus?

L'affichage du lien je le fais comment?

Voici ce que j'ai fait :
echo "<b><a href='fimex.php?vardep=r&vardep1=$vardep&varreg=".urlencode($vlister)."&varspec=$varspec'>".$vregion."</b></a>";
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
10 avril 2008 à 15:00
en fait il vaut mieux tout encoder.
je te propose :
<?php
$url = urlencode( "fimex.php?vardep=r&amp;vardep1=$vardep&amp;varreg=$vlister&amp;varspec=$varspec" );
echo '<b><a href="'.$url.'">'.$vregion .'</a></b>';
?>

et tu avais fait chevaucher les balises <b> et <a>.
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
10 avril 2008 à 15:38
Alors ça a l'air de marcher, mon problème c'est ça me donne une requete qui pour moi est correcte, sauf que quand j'esssaye d'exécuter cette derniere sur mysql, elle bloque, je n'ai aucun résultat et c'est à cause des anti-slashs "\" :
SELECT * FROM recap WHERE (left(CP,2)=\'24\' OR left(CP,2)=\'33\' OR left(CP,2)=\'40\' OR left(CP,2)=\'47\' OR left(CP,2)=\'64\') AND (Specialite1='D.U méd. statutaire et médecine agréée' OR Specialite2='D.U méd. statutaire et médecine agréée' OR Specialite3='D.U méd. statutaire et médecine agréée' OR Specialite4='D.U méd. statutaire et médecine agréée') ORDER by CP,Nomed

Les numéros de départements sont entourés par des "\" qui sont générés automatiquement par la fonction urlencode que tu m'a donné...
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
10 avril 2008 à 15:50
pour ça tu as la fonction inverse 'urldecode()' qui te rendra des paramètres "propres".

en premier tu récupères la valeur de la variable codée puis tu la nettoies.
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
10 avril 2008 à 15:52
Ok merci je regarde ça et je te dis
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283 > Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010
10 avril 2008 à 16:00
Alors non cela ne marche pas mais c'est normal si on encode, puis on décode!

Une autre solution pour me supprimer les "\" peut être ?

Merci de ton aide en tout cas
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921 > Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010
10 avril 2008 à 16:01
ce n'est pas normal qu'il reste des anti-slashs.

je fais un essai et te tiens au courant.
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921 > Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010
10 avril 2008 à 16:06
je n'ai pas essayé, mais pour les slashs, c'est normal.

tu devrais pouvoir le soigner avec une passage à 'stripslashes()' en plus.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
10 avril 2008 à 16:26
Merci beaucoup, mon problème est résolu.
0