Page 1 sur 2
pb apostrophe
Posté : 21 avr. 2005, 11:05
par lamk
Bonjour tout le monde,
j'ai un problème d'affichage d'une adresse dans un champ input text, par contre quand je l'avais à l'extérieur aucun problème...
je pense que cela vient de l'apostrophe, prenons un exemple avec l'adresse :
2 rue de l'égalité
en effet quand je veux l'afficher dans le champ il va me mettre uniquement
2 rue de l
si qqun a une idée... ?? :D
voilà une partie de mon code.
$fab = "SELECT * FROM fabricant WHERE fab_nom='".$_POST['list']."' ORDER BY fab_nom ASC";
$r_fab=mysql_query("$fab") or die("Invalid query : ".mysql_error());
while ($r = mysql_fetch_array($r_fab))
{
echo $r[2];
/*formulaire de modification*/
echo "<div class='form-ligne'>";
echo "<div class='label'>Rue :</div>";
echo "<div class='champ'><input name='rue' type='text' size='100' maxlength='150' value='";
if (isset($_POST['select'])){echo $r[2];}
echo "'></div>";
echo "</div>";
Posté : 21 avr. 2005, 11:09
par Fresh
si par exemple tu fait
$rue="2 rue de l'égalité";
ca marche ou pas? il me semble que ca devrait fonctionner
Posté : 21 avr. 2005, 11:10
par lamk
le problème c'est que l'adresse est issue d'une base de données donc j'peux pas faire ça..
Posté : 21 avr. 2005, 11:12
par slipndi
ya une fonction qui s'apelle addslashes();
qui te permettera de rajouter des slash lors de l'affichage c'est très utile
addslashes($var)
voila;)
Re: pb apostrophe
Posté : 21 avr. 2005, 11:23
par lamk
je dois faire ça ?
echo "<div class='form-ligne'>";
echo "<div class='label'>Rue :</div>";
echo "<div class='champ'><input name='rue' type='text' size='100' maxlength='150' value='";
if (isset($_POST['select'])){echo addslashes($r[2]);}
echo "'></div>";
echo "</div>";
en fait quand je fais comme ça il m'affiche
2 rue de l\...
Posté : 21 avr. 2005, 11:27
par slipndi
Ton addslashes tu dois le mettre lorsque tu rentre les donnée dans ta BDD pas quand tu affiche, ensuite si lorsque tu affiche il te met les slash y'a une fonction qui s'apelle stripslashes mais si tu met la fonction lors de l'insertion des données ca devrai etre bueno
Posté : 21 avr. 2005, 11:32
par lamk
ok merci je test ça de suite !!
Posté : 21 avr. 2005, 11:43
par lamk
désolé mais j'y arrive pas :oops:
tu pourrais m'aider rapidement pour l'insertion ?
$sql = "INSERT INTO fabricant VALUES
('','".$_POST['nom']."', '".addslashes($_POST['rue'])."', '".$_POST['cp']."', '".$_POST['ville']."',
'".$_POST['tel']."', '".$_POST['fax']."', '".$_POST['site']."', '".$_POST['mail']."','')";
mysql_query("$sql") or die("<font color='red'>Invalid query : ".mysql_error()."</font>");
en faisant ça il ne m'ajout pas les slashes.... :/
Posté : 21 avr. 2005, 11:47
par slipndi
et si tu fais ca :
$rue=addslashes($_POST['rue']);
$sql = "INSERT INTO fabricant VALUES
('','".$_POST['nom']."', '" . $rue ."', '".$_POST['cp']."', '".$_POST['ville']."',
'".$_POST['tel']."', '".$_POST['fax']."', '".$_POST['site']."', '".$_POST['mail']."','')";
mysql_query("$sql") or die("<font color='red'>Invalid query : ".mysql_error()."</font>");
en théorie ca devrai marcher !
Posté : 21 avr. 2005, 11:50
par lamk
pour l'affichage c bien :
echo "<div class='form-ligne'>";
echo "<div class='label'>Rue :</div>";
echo "<div class='champ'><input name='rue' type='text' size='100' maxlength='150' value='";
if (isset($_POST['select'])){echo stripslashes($r[2]);}
echo "'></div>";
hein? parce que là ça ne marche pas.. :/
ce qui est bizarre c'est que le problème est présent que pour l'input text
Posté : 21 avr. 2005, 11:53
par slipndi
nan pour l'affichage le stripslashe vire le =) sinon ca fait comme si tu avais rien fait !!
le stripslashes c'etait une autre solution mais j'avai mal reflechi dsl

Posté : 21 avr. 2005, 11:57
par lamk
lol ok no prob, je test ça :)
Posté : 21 avr. 2005, 12:00
par lamk
en fait j'ai trouvé une autre soluce... j'ai pas réussi avec addslashes() :(
merci bcp pour ton aide ;)
j'utilise ça en fait :
$rue = htmlspecialchars($_POST['rue'], ENT_QUOTES);
$sql = "INSERT INTO fabricant VALUES
('','".$_POST['nom']."', '".$rue."', '".$_POST['cp']."', '".$_POST['ville']."',
'".$_POST['tel']."', '".$_POST['fax']."', '".$_POST['site']."', '".$_POST['mail']."','')";
mysql_query("$sql") or die("<font color='red'>Invalid query : ".mysql_error()."</font>");
ça marche nikel!
et merci encore ^^
Posté : 13 mai 2005, 14:43
par nimbus
Bonjour à tous !!
Je vois que je suis pas le seul avec des problèmes d'apostrophe.
Comme l'a dit
lamk au début du topics, j'ai le même problème

Seulement voilà, vous avez réussi à le résoudre en le faisant à l'insertion des données dans le BDD.
Et moi je n'ai pas la possibilité d'insertion, je ne fait que récupérer par SELECT les données de la BDD (là pas de souci), l'affichage dans la boite SELECT html fonctionne correctement.
C'est quand je valide et donc renvoie les infos sur une autre page que ça disjoncte

le
2 rue de l'égalité devient
2 rue de l.
Et pourtant je crois avoir tout essayé :
addslashes,
stripslashes,
htmlspecialchars,
magic_quotes_gpc.
Un petit coup de main serai le bienvenu
Merci d'avance
Nimbus
Posté : 13 mai 2005, 14:48
par seayoung
dans la bdd ou ailleur d abord si vous mettez un petit :
’
a la place de votre quote vous en serez gagnant !!!!