OVH Cloud OVH Cloud

strip & addslashes

2 réponses
Avatar
xpatval
Bonjour,

Suite à un problème rencontré avec la quote, je cherche le pourquoi du
comment, et sa solution, je m'explique:

Dans un script de modification de données, j'affiche une liste de nom -
prénom sélectionnables pour modifications de données adjacentes.
Pour ceci, j'utilise cela:

.....
<center><table border=1 cellspacing=3 cellpadding=3 bordercolor=#01BAB0>

<form action="<?= $_SERVER['PHP_SELF'] ;?>" method=post>

<tr><td><center><font color=red><b>Sélectionnez un
Pilote</font></center></td>

</tr><tr>

<?

$sql = "select id_pilote, nom, prenom, victoire, nb_partici, nation from
pilote order by nom";

$rs1 = mysql_query($sql);

print "<td><center><select name='pilote' size='15'>\n";

while ($i = mysql_fetch_array($rs1))

{

print"<option
value='$i[id_pilote]=$i[nom]=$i[prenom]=$i[victoire]=$i[nb_partici]=$i[natio
n]'>$i[nom]&nbsp;$i[prenom]</option>\n";

}

print "</select></center></td>\n";

?>

<input type='hidden' name='confirm' value='<? print $confirm ;?>'>

<tr><td><center><input type='submit' value='Validation'></center>

</td></tr>

</form></table></center>

...

Or, certains noms sont orthographiés comme suit: O'Connor (c'est un
exemple).

Et, bien entendu, lorsque ce nom est sélectionné pour modif, $i[nom] prend
la valeur "O" (sans addslashes), ou "O\" (avec addslashes), mais en aucun
cas "O'Connor".

Quelqu'un a-t-il une idée de la manière de résoudre ce problème ?
(Je précise que la valeur du champ 'nom' a été enregistrée avec addslashes.
Aucun problème pour l'insert [vérif faite directement dans la table
concernée], seule la modif me pose problème)

Merci de vos remarques, conseils ou autres.

--
xpatval@(oo)wanadoo.fr [Oter le (oo) dans l'adresse]
-----
http://24lemans.free.fr
-----

2 réponses

Avatar
Guillaume Bouchard
xpatval wrote:
<center><table border=1 cellspacing=3 cellpadding=3 bordercolor=#01BAB0>

<form action="<?= $_SERVER['PHP_SELF'] ;?>" method=post>

<tr><td><center><font color=red><b>Sélectionnez un
Pilote</font></center></td>

</tr><tr>


<set mode="extremiste" value="true" />
kékec'est ce html degeu !!
<set mode="extremiste" value="false" />

$sql = "select id_pilote, nom, prenom, victoire, nb_partici, nation from
pilote order by nom";

$rs1 = mysql_query($sql);


$rs1 = mysql_query($sql) or die(mysql_error().$sql);
Gestion d'erreur...

print"<option
value='$i[id_pilote]=$i[nom]=$i[prenom]=$i[victoire]=$i[nb_partici]=$i[natio
n]'>$i[nom]&nbsp;$i[prenom]</option>n";


Dit moi, si ton pilote à un ID, pourquoi ne pas mettre seulement celui
ci dans value="..." ?

Or, certains noms sont orthographiés comme suit: O'Connor (c'est un
exemple).

Et, bien entendu, lorsque ce nom est sélectionné pour modif, $i[nom] prend
la valeur "O" (sans addslashes), ou "O" (avec addslashes), mais en aucun
cas "O'Connor".


htmlspecialchars() va devenir vite fait bien fait ton meilleur amis.

--
Guillaume.

Avatar
P'tit Marcel
Guillaume Bouchard écrivit
news:40e951ae$0$16850$:

htmlspecialchars() va devenir vite fait bien fait ton meilleur amis.


sans compter (un)serialize (si tant est qu'il faille vraiment stocker
la totalité du tableau i dans la valeur de l'option)



--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng