Votre question

apostrophe devient / en texaera via formulaire et ph

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
7 Janvier 2007 18:18:16

Bonjour à tous, j'ai un petit script en php pour lire un fichier text, ce fichier text est modifié par un formulaire qui post via un textaera sur un fichier php.
Malheureusement La page qui affiche le texte affiche des / lorsqu'il y a des apostrophes, bien sur il y a la fonction stripslashes, mais je n'arrive pas à l'utiliser correctement bien sût c'est la débrouille, je ne maitrise pas bien le php, voici mon code php pour lire mon fichier text, ensuite il y a aussi la fonction htmlspecialchars que j'ai utiliser et bien sûr ça ne fonctionne pas, quelqu'un peut-il m'aidez SVP?
Voici le code
<code>
<?
//Définir le fichier qui nous intéresse
$Fnm = "last_info.txt";



//Ensuite soit lire tout le fichier d'un coup dans un tableau
$tableau = file($Fnm);

//Puis afficher ce tableau
while(list($cle,$val) = each($tableau)) {
{{echo $val.htmlspecialchars(stripslashes($val), ENT_QUOTES))}} ."<br>";
} ?>
</code>

Autres pages sur : apostrophe devient texaera via formulaire

7 Janvier 2007 18:42:13

ton serveur est paramétré avec les magicquotes à on --> c'est mal :p 

du coup au moment d'utiliser ta chaine il faut faire stripslashes($tachaine) si tu ne veux pas avoir de \' a la place des ' sans la constante ENT_QUOTES ou, mieux, changer le parametrage de ton serveur.
7 Janvier 2007 20:05:24

merci pour ta réponse rapide mais comment peut on changer le parametrage de mon serveur
7 Janvier 2007 20:13:31

essaye d'utilisé htmlentities() à la place de strislashes()
7 Janvier 2007 20:30:28

merci Guillaume, j'ai essayé ceci <?echo htmlentities($val)> mais ça ne fonctionne pas
7 Janvier 2007 20:43:55

si tu as accès au parametrage de ton serveur il s'agit du fichier php.ini qui contient des directives magicquotes : http://fr2.php.net/magicquotes

bonne lecture :) 
7 Janvier 2007 20:50:53

Malheureusement je ne peux pas changer php.ini n1kk0, dommage
7 Janvier 2007 20:55:39

donc, vois si ini_set() est activé sur ton serveur pour modifier la configuration '"a chaud"

sinon tu as plein de petites fonctions dans les commentaires de la doc (lien que je viens de te donner) qui répondent à ton besoin par des astuces
8 Janvier 2007 07:41:04

merci n1kk0, j'ai essayé un stripslash dans le code du formulaire avant que le fichier txt ne soit enregistré, vois le code ci-dessous, mais ça ne fonctionne pas non plus, j'ai trouvé ces explications sur le site dont tu m'as envoyé le lien, je ne sais vraimant plus que faire.
  1. <?php
  2.  
  3. // Formulaire pour modifier un fichier texte
  4.  
  5. $chemin = 'last_info.txt'; // le chemin du fichier
  6.  
  7. // //
  8. // RECUPERATION DES VARIABLES POST //
  9. // //
  10.  
  11. $modifier = isset($_POST['modifier']) ? $_POST['modifier'] : '';
  12. $texte = isset($_POST['texte']) ? $_POST['texte'] : '';
  13.  
  14. // Modification du fichier
  15. if ($modifier == 1) {
  16. $f = fopen($chemin, "w+"); //montre le texte existant et permet de le modifier
  17. StripSlashes($f); // met les ' correctement
  18. StripSlashes($texte); // met les ' correctement
  19. fputs($f, $texte); //enregistre le nouveau texte
  20. fclose($f); //ferme le fichier
  21.  
  22. }
  23. // lit le contenu du fichier
  24. $f = fopen($chemin, "r");
  25. $contenu = fread($f, filesize($chemin));
  26. fclose($f);
  27.  
  28. ?>
  29.  
  30.  
  31. <!--HTML Formulaire-->
  32. <head>
  33. <p align="center"><u><font size="5" color="#FF0000">Entrez ou modifiez le texte ci-dessous</font></u></p>
  34. </head>
  35.  
  36. <body bgcolor="#CCFFFF">
  37. <form action="formulaire_modifie_texte.php" method="POST">
  38. <input type="hidden" name="modifier" value="1">
  39. <p align="center">
  40. <table cellspacing="0" cellpadding="5" border="0" align="center">
  41. <tr><td</td></tr></table>
  42. <textarea cols="70" rows="15" name="texte"><? echo $contenu; ?> </textarea>
  43. <br><input type="submit" value=" Cliquez ici pour envoyer la modification ">
  44. </td></tr></table>
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS