Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formulaire, php, fichier et apostrophes

3 réponses
Avatar
jerome balti
Bonjour

j'ai réalisé quelques petites pages simple en php permettant de rentrer
des infos avec un formulaire html (une chaine de caractere, du texte
normal)

j'ai un petit problème d'apostrophes quand les fichiers tournent sur
certains serveurs

voilà , j'utilise un formulaire en html avec une entrée comme ça :
<input name="objet">

ensuite dans la page de traitement.php
je fais
$objet=$_POST['objet'];

puis en gros en php j'ecris la variable dans un fichier avec ces
fonctions
$fichier=fopen("texte.txt","w+");
fputs($fichier,$objet);

(ensuite le fichier peut etre relu et le texte reaffiché, bref du
basique)

et quand je teste ça avec easyPHP (que j ai installé il y a 2 ans sans
maj) il n y a pas de probleme particulier, et sur certains serveurs non
plus (par exemple les pages perso free ou les page ovh gratuites)

mais , sur un hebergement payant OVH il y a là des probleme avec les
apostrophes du texte entré
dans le fichier texte.txt , les apostrophes (')ont été converties en
(/'), à la limite pourquoi pas , mais lors du réaffichage de la chaine
de caractère dans une page web les / restent

j ai vu qu il existait une fonction php "stripslahes()" que je
pourrais utiliser sur ma variable avant de l'ecrire dans le fichier, ça
ameliorerait le probleme avec ' mais du coup si on veut mettre un
slash dans le texte, il faut dire a l utilisateur de taper // pour
avoir /


il y a peut etre un problemem de configuration , mais je suis un peu
largué (par exemple j ai vu qu il existe un ensemble d' option/config
qui commencent par "magic_quote..." mais je suis un peu largué

merci de vos idées sur la façon d aborder le problème !

3 réponses

Avatar
jerome balti
j ai vu qu il existait une fonction php "stripslahes()" que je pourrais
utiliser sur ma variable avant de l'ecrire dans le fichier, ça ameliorerait
le probleme avec ' mais du coup si on veut mettre un slash dans le texte, il
faut dire a l utilisateur de taper // pour avoir /




je dis des c*** c'est des antislashs ;-) donc
"stripslahes()" devrait le faire (qui retire les antislashs) ;-)

mais j aimerais bien comprendre un peu mieux quand même :-)
Avatar
CrazyCat
jerome balti wrote:
je dis des c*** c'est des antislashs ;-) donc
"stripslahes()" devrait le faire (qui retire les antislashs) ;-)
mais j aimerais bien comprendre un peu mieux quand même :-)



De toutes manières, les antislashes d'échappement sont ajoutés à tous
les caractères spéciaux devant être protégés.
Le stripslashes() enlèvera donc ce qui est en trop.

Par contre, pour la portabilité du code, il est intéressant de savoir si
oui ou non la chaîne que tu récupères a été modifiée lors de l'envoit en
utilisant ceci (uniquement sur les chaines, attention):
if (get_magic_quotes_gpc()) {
$data = stripslashes($data);
}

--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Avatar
jerome balti
jerome balti wrote:
je dis des c*** c'est des antislashs ;-) donc
"stripslahes()" devrait le faire (qui retire les antislashs) ;-)
mais j aimerais bien comprendre un peu mieux quand même :-)



De toutes manières, les antislashes d'échappement sont ajoutés à tous les
caractères spéciaux devant être protégés.



ben non, si je fais tourner le truc sur free , ou ovh gratuit ou mon
easyphp , les ne sont pas mis !

c est juste sur l'hebergement ovh que ça le fait

j essaie de voir comment avoir les options php avec le manager ovh,
mais j ai de la peine (!)


Le stripslashes() enlèvera donc ce qui est en trop.

Par contre, pour la portabilité du code, il est intéressant de savoir si oui
ou non la chaîne que tu récupères a été modifiée lors de l'envoit en
utilisant ceci (uniquement sur les chaines, attention):
if (get_magic_quotes_gpc()) {
$data = stripslashes($data);
}



ok , merci , je vais voir ça