Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2008, 17h42   #1
Membre confirmé
 
Inscription : juillet 2008
Messages : 407
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 407
Points : 289
Points : 289
Par défaut Utilisation de la fonction "stripslashes"

Salut!
Je suis confronté à un petit problème assez gênant:
J'ai un formulaire d'enregistrement. Un autre qui récupère les données et un autre de modification.

Dans le deuxième, celui de la récupération (enregistrement), j'ajoute de "addslashes" afin d'éviter le problème des apostrophes. Les antislashs sont bien ajoutés comme il est visible dans Phpmyadmin.
Ensuite, à la modification, si ma chaîne initiale est:
Citation:
J'ai
Sachant que dans Phpmyadmin elle devient:
Citation:
J\'ai
Dans le formulaire de modification, lorsque je la mets dans un input text, elle devient:
Citation:
J
tout court.
Sachant que si je fais un echo marche et donne:
J'ai

Code :
1
2
3
4
5
 
$temp = $objet->titre;
$x= stripslashes($temp);
echo $x;
$resultat.="Objet&nbsp;:<input type='text' name='objet' id='objet' value='".$x."'/>";

Donc comment affecter
Citation:
J'ai
à mon input au lieu de
Citation:
J
???
b_zakaria est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 17h49   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
C'est parce que ton guillemet casse ton code html.

Il faut convertir les guillemets en entités HTML.
Code :
$x = htmlspecialchars($x);
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 17h52   #3
Membre confirmé
 
Inscription : juillet 2008
Messages : 407
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 407
Points : 289
Points : 289
Merci pour ta réponse.
J'ai essayé avec htmlspecialchars mais ça marche pas.
De quel guillemet tu parles en fait?
b_zakaria est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 19h25   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Tu ecris
Code :
"<input type='text' name='objet' id='objet' value='".$x."'/>"
Regarde ce qui se passe quand tu inseres $x = "j'ai";
Code :
"<input type='text' name='objet' id='objet' value='j'ai'/>"
value='j' et le reste se perd dans la balise.

J'avais oublié que htmlspecialchars ne converti par defaut que les guillemets doubles.
Le mieux est de garder htmlspecialchars tel quel et de remettre ta chaine en "bon" HTML c'est à dire avec des guillemets doubles pour les attributs :
Code :
1
2
$x = htmlspecialchars($x);
$resultat.='Objet&nbsp;:<input type="text" name="objet" id="objet" value="'.$x.'"/>';
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 09h49   #5
Membre confirmé
 
Inscription : juillet 2008
Messages : 407
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 407
Points : 289
Points : 289
Salut,
t'as raison !!!
Merci pour ton aide, ça marche nickel!
b_zakaria est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h04.


 
 
 
 
Partenaires

Hébergement Web