Encore passer $ dans php avec <a href> déta

Fermé
anglebert - 23 févr. 2001 à 19:40
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 25 févr. 2001 à 16:11
Merci pour les réponses
Voici une portion de mes scripts par lesquels je sélectionne avec mysql
A
un champ de ma_base_de_données [ARTISTE]

$result = mysql_query ("SELECT DISTINCT ARTISTE FROM stock WHERE ((stock.ARTISTE like 'A%'))") or die ("Invalid query");
while (list ($ARTISTE) = mysql_fetch_row ($result))
{
print ("<div align='center'><font face='arial black' size='2'><a href=search_name.php3?variable='artiste_name'>$ARTISTE</a></font></div>\n");
}
ou

print ("<div align='center'><font face='arial black' size='2'><a href=search_name.php3?'artiste_name'=value>$ARTISTE</a></font></div>\n");
}

en suite je cherche à exporter les noms obtenus dans mon résultat pour une autre sélection sur ma_base_de_données dans le script suivant

B
La liste de toutes les œuvres de l'artiste.
<?php
error_reporting (E_ALL);
if ($artiste_name);
$bdd = "mol";
@mysql_connect("localhost","root","") or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de données");
// Creation et envoi de la requete
$result = mysql_query ("SELECT * FROM stock WHERE ARTISTE like '$artiste_name'")or die ("Invalid query") ;

La réponse de error_reporting est
Warning: Uninitialized variable or array index or property (artiste_name) in c:\easyphp\www\search_name.php3 on line 96

Warning: Using uninitialized variable $artiste_name in c:\easyphp\www\search_name.php3 on line 101

Les diverses solutions que l'on m'a proposées ne fonctionne pas peut être du fait que la variable $artiste_name dans le deuxième script est aussi utilisé par une boite de texte dans le formulaire suivant CELA ME SEMBLE PEUT PROBABLE MAIS Vas savoir ??

<form method="post"action="search_name.php3" ><input type="text" size="20" maxlength="25" name="artiste_name"><br><input type="submit" value="SUBMIT"size=10 >
</form>

Je patauge dans la semoule.
merci de votre aide
A voir également:

1 réponse

PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
25 févr. 2001 à 16:11
Slt Anglebert,

Houlà c'est quoi ce code "foireux de chez foireux" !
Là t'es variment pas sympa avec le parser php ... Tu m'étonnes qu'il te renvoie une erreur !

Bon allez j'arrête de déconner et voici la solution à ton problème :

Tu remplaces :

print ("<div align='center'><font face='arial black' size='2'><a href=search_name.php3?'artiste_name'=value>$ARTISTE</a></font></div>\n");

Remarques :
D'où sort value ?
Et pourquoi des quotes autour de ta variable artiste_name ?
Si c'est toi qui à fait l'erreur ce n'est pas grave (c'est en faisant des erreurs qu'on apprend ...) par contre ne me dit pas que quelqu'un d'autre t'a conseillé d'écrire çà !!!


Par :

print ("<div align='center'><font face='arial black' size='2'><a href=search_name.php3?artiste_name=".urlencode($ARTISTE).">$ARTISTE</a></font></div>\n");

et tu vas voir ça va beaucoup mieux marcher maintenant ...

Explication :

str urlencode(str) : cette fonction remplace tous les carctères un peu particuliers (les guillemmets, les apostrophes etc ...) par des séquences commencant par "%" suivi de 2 chiffres ainsi que les espaces par le signe "+".

Ex

urlencode("Il fait beau aujourd'hui !") donne
"Il+fait+beau+aujourd%27hui+%21"

Tu as déjà sûrement vu ce genre de chose dans la barre d'adresse de ton navigateur.

Ainsi tu peux passer des artistes avec des nom composés ou comportant des espaces.

La fonction inverse existe :

str urldecode(str) : remplace les séquences par le caractère équivalent

Normalement dans ta page search_name.php3 tu devrais effectuer l'opération inverse du style :

$artiste_name=urldecode($artiste_name);

Mais tu n'es pas obligé car php le fait à ta place !
On arrête pas le progrès ... [:)

@+

Philippe
0