Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1848 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Changement comportement fonctions suite passage PHP5

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Changement comportement fonctions suite passage PHP5

n°1373469
Odin34
Posté le 23-05-2006 à 18:33:19  profilanswer
 

Bonjour,
 
J'ai un souci avec des fonctions qui ont été écrites depuis quelques mois / années qui permettaient de nettoyer des champs text area avant insertion en base ainsi qu'une fonction inverse pour les modifications. Ces fonctions marchaient sans problème sous PHP 4. Depuis le passage à PHP5 lors de l'affichage des champs text area pour modification les return sont doublés.
 
Fonction pour enregistrement

Code :
  1. function net_form_enregistrement($a_nettoyer, $textarea=0) {
  2. if ($textarea == '1') {
  3.  $a_nettoyer = makehtml($a_nettoyer);
  4.  $a_nettoyer = eregi_replace("(\r\n)|(\n)|(\r)|(\r<br >\n)|(<br%20> )|(<br%20/> )|(\r<br />\n)|(\r<br>\n)", "<br />", $a_nettoyer);
  5.  $a_nettoyer = eregi_replace(" ", "&nbsp; ", $a_nettoyer);
  6.  $a_nettoyer = eregi_replace("<br&nbsp; />", "<br />", $a_nettoyer);
  7. } else {
  8.  $a_nettoyer = htmlspecialchars($a_nettoyer, ENT_QUOTES);
  9.  //$a_nettoyer = makehtml($a_nettoyer);
  10. }
  11. return $a_nettoyer;
  12. }


 
 
Fonction pour modification

Code :
  1. function net_form_modification($a_nettoyer,$textarea=0) {
  2. if ($textarea == '1') {
  3.  $a_nettoyer = eregi_replace("&nbsp; ", " ", $a_nettoyer);
  4.  $a_nettoyer = unhtmlentities($a_nettoyer);
  5.  $a_nettoyer = eregi_replace("(<br /> )|(\n)|(\r)|(\r<br >\n)|(<br%20> )|(<br%20/> )|(\r<br />\n)|(\r<br>\n)", "\r\n", $a_nettoyer);
  6. } else {
  7.  $a_nettoyer = unhtmlentities($a_nettoyer);
  8.  $a_nettoyer = eregi_replace('"', "&quot;", $a_nettoyer);
  9. }
  10. return $a_nettoyer;
  11. }


 
Autres fonctions appelees

Code :
  1. function makehtml($string){
  2.     $trans = get_html_translation_table(HTML_ENTITIES);
  3.     $newstring = strtr($string, $trans);
  4.     $newstring = nl2br($newstring);
  5.     return $newstring;
  6. }
  7. function unhtmlentities ($string){
  8. $trans_tbl = get_html_translation_table (HTML_ENTITIES);
  9. $trans_tbl = array_flip ($trans_tbl);
  10. return strtr ($string, $trans_tbl);
  11. }


 
 
 
Le fonctionnement est le suivant.
Nous avons un formulaire contenant des text area. Une fois valide on sauvegarde en base. Avant l'insertion on passe le contenu du text area à net_form_enregistrement.
Une fois sauvegardé, le mode affichage est correct. Lorsque l'on veut modifier ce champs on passe en mode edition et le contenu du text area est passé à net_form_modification. C'est à ce moment là que les <br> sont doublés à chaque fois. Le problème vient sans doute du eregi_replace mais j'ai du mal avec ces expressions rationnelles et ces fonctions que je n'ai pas écrites.
 
Merci de votre aide


Message édité par Odin34 le 23-05-2006 à 18:33:44
mood
Publicité
Posté le 23-05-2006 à 18:33:19  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Changement comportement fonctions suite passage PHP5

 

Sujets relatifs
fonctions ftp de phpMenu onglets changeant au passage de la souris
COM : nom des fonctionsAgrandir une photo au passage de la souris
Passage de références de tableaux dans l'urlPassage de variable...multicodes (HTML PHP JS)
probleme Debian Sarge 3.1 PHP5 SendMail[Résolu] Passage Paramètre TList
problème changement de page a cause d'un comboboxPRO*C : passage de parametres dans une requete
Plus de sujets relatifs à : Changement comportement fonctions suite passage PHP5


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR