Accueil > Forum > > > > Ecriture dans un fichier texte
Ecriture dans un fichier texte
mercredi 14 janvier 2009 à 01:42:59 |
Ecriture dans un fichier texte

TrevorReznik
|
Bonjour,
J'ai un petit soucis avec le contenu d'un fichier .txt créé à partir des données d'un formulaire.
En effet, à chaque fois qu'une apostrophe est utilisée dans le champ d'un formulaire, et bien dans mon fichier texte elle est remplacée par « '/ »
Exemple, quand l'utilisateur tape « L'hubac » j'ai dans mon fichier texte « L\'hubac ». Je me suis aperçu que dans un autre formulaire ça me fait la même chose... ça ne vient donc pas du fichier texte, mais de la façon dont mes variables du formulaire sont récupérées, non ? J'ai fait des tests avant d'envoyer le formulaire, genre champ vide ou test des chiffres pour un code postal, mais comment vérifier pour l'apostrophe ??? Merci d'avance.
|
|
mercredi 14 janvier 2009 à 02:20:22 |
Re : Ecriture dans un fichier texte

TrevorReznik
|
Je mélange tout, dur dur !!! Alors je vais essayer d'être clair...
J'ai fait un formulaire en "html" sur une page avec une balise <textarea></textarea> pour récupérer une phrase.
Au moment de sa validation par clic sur un bouton, j'exécute une fonction JavaScript contenu dans un fichier .js qui vérifie si le champ est vide. Si c'est le cas, il y a un message d'erreur et on reste sur la même page.
Si le champs est rempli, une page .php est chargée, dans laquelle j'attribue à une variable le contenu de mon "textarea" (dicton), pour ensuite écrire dans un fichier texte son contenu avec ça :
<?php $nouveau_dicton = $_POST['dicton']; $nom_du_fichier = "dicton.txt"; $ressource = fopen($nom_du_fichier, "w"); fseek ($ressource, 0); fwrite ($ressource, $nouveau_dicton); fclose ($ressource); ?>
Lorsque j'appelle le contenu du fichier "dicton.txt" je m'aperçois que ce dernier n'a pas exactement enregistrée les même caractères de la balise "textarea".
En effet, à chaque fois qu'une apostrophe est utilisée dans le champ d'un formulaire, et bien dans mon fichier texte elle est remplacée par « '/ ». Exemple, quand l'utilisateur tape « L'hubac » j'ai dans mon fichier texte « L\'hubac ».
Il faudrait donc tester le contenu de la variable avant de la mettre dans le fichier texte, un peu comme quand on veut vérifier si un champ email contient un email du type contact@doamine.com
On fait des tests sur le caractère "@" et éventuellement sur le point.
J'ai pu trouver plein de script qui vérifie les champs, mais c'est des scripts en PHP. Ne vaudrait-il mieux pas faire les tests dans le fichier .js ???
Après je me dis qu'en entête de mon deuxième fichier, j'ai du code PHP pour écrire mon fichier texte alors je pourrais peut être le faire à ce moment là.... ?!? Il faudrait supprimer les caractères "/" dans la chaine avant l'apostrophe, non ?... et donc faire un boucle qui la teste.
PHP ou JavaScript ??? Je commence à tout mélanger...
Merci d'un petit coup de pouce...
|
|
mercredi 14 janvier 2009 à 09:43:18 |
Re : Ecriture dans un fichier texte

JulSoft
|
Réponse acceptée !
Tu as probablement un problème lié aux fameuses "magic quotes", un truc magique de PHP jusqu'à sa version 5 (il parrait que ça va disparaitre dans la 6) qui "protège" automatiquement les données entrées dans un formulaire. En gros, il echape un certain nombre de caractères pour protéger l'intégrité de ton script (ainsi tu évites une partie des injections SQL).
Jette un oeil du côté de stripcslashes() : http://www.php.net/manual/en/function.stripcslashes.php
Peut être que la solution est là, peut être pas.
|
|
mercredi 14 janvier 2009 à 10:31:55 |
Re : Ecriture dans un fichier texte

TrevorReznik
|
Réponse acceptée !
Après moult essais... Je me suis aperçu que c'est au moment où j'attribue le contenu de mon champ dans une variable PHP que ça merde !
Je viens de voir ton message... il rejoindrait ce dont je me suis aperçu.
J'ai bien compris l'intérêt de stripcslashes(), et je me suis dis « yep ! c'est ça qu'il faut que j'utilise » mais j'ai une erreur du type...
« undefined function stripcslashes() on line ... »
Bizarre... Je continu de chercher... c'est vraiment con comme truc !
|
|
mercredi 14 janvier 2009 à 12:25:34 |
Re : Ecriture dans un fichier texte

TrevorReznik
|
Réponse acceptée !
Je cherche je cherche et c'est tout simplement au moment de récupérer le contenu de ma variable que ça foire...
Si dans un premier fichier dans un formulaire j'écris : L'OISEAU dans une balise <input name = "animal" ... > La chaîne renvoyée est bien : L'OISEAU
Je peux alors faire tous les tests en Javascript sur cette chaîne, ça sert à rien.
Mais dans mon deuxième fichier, quand je fais : $animal = $_POST['animal']; Pour récupérer le contenu de la variable, alors si je fais : <? echo $animal; ?> j'aurais L\'OISEAU qui s'affiche.
J'ai essayé de rajouter la ligne suivante avant le echo sur les conseils de Julsoft : $animal = stripslahses($animal);
Mais j'ai une erreur...
Je cherche je cherche mais si vous connaissez un bout de code n'hésitez pas à me le communiquer et je ferai un copier/coller avec = plus de prise de tête... c'est pas faute d'essayer...
|
|
mercredi 14 janvier 2009 à 16:15:42 |
Re : Ecriture dans un fichier texte

TrevorReznik
|
Réponse acceptée !
La fonction stripslashes me provoquait des erreurs quand je l'utilisais comme suit :
<?php $nouveau_dicton = $_POST['dicton']; $nouveau_dicton = stripslashes($nouveau_dicton);
Bablabla
?>
J'ai juste rajouté une ligne de code et maintenant ça fonctionne très bien...
Voilà... J'ai mis des commentaires au cas où si quelqu'un qui galère comme moi veut comprendre... J'ai fait comme ça :
<?php // Attribution du contenu de mon champs <input name="dicton" ...> à la variable $nouveau_dicton $nouveau_dicton = $_POST['dicton']; // J'ai pensais à faire ça comme s'il fallait convertir le contenu en chaîne de caractère... sans, ça ne fonctionne pas, ça me renvoi une erreur !!! $str = "".$nouveau_dicton; // Je vire mes "\" de la chaîne de caractère $str = stripslashes($str); // Nom du fichier à écrire dans une variable $nom_du_fichier = "dicton.txt"; // ouverture du fichier en écriture avec effacement de ce dernier $ressource = fopen($nom_du_fichier, "w"); // on se place au début fseek ($ressource, 0); // on écrit le contenu de la variable $str dans le fichier fwrite ($ressource, $str); // on ferme le fichier fclose ($ressource); ?> <html> <head>
|
|
Cette discussion est classée dans : fichier, texte, style, font, mso
Répondre à ce message
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|