Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/12/2012, 18h02   #1
chooky97150
Invité de passage
 
Inscription : août 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 6
Points : 1
Points : 1
Par défaut Détection et remplacement complexe dans notepad++

Bonjour @ tous,

suite au passage du CLIENT MYSQL 4.1 à MYSQL 5.1, j'ai un bug qui est apparu sur la totalité des formulaires (POST) avec entrées stockées dans une base de données mysql.

En effet la fonction htmlentities($_POST['xxx']) que je pensais bien utliser doit impérativement se voir renseigner htmlentities($_POST['xxx'], ENT_QUOTES);.

aussi, je souhaiterais utiliser notepad++ pour remplacer la totalité des pages concernés soit plus de 3000 en utlisant les regex que je ne maitrise pas du tout.

Est ce quelqu'un pourrait s'il vous plait me dire quelle regex utiliser pour chercher et remplacer une chaine contant htmlentities( suivie de "quelque chose" puis de ");" et de remplacer le ); suivant par ", ENT_QUOTES);"

Merci
chooky97150 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 19h30   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 484
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 484
Points : 21 305
Points : 21 305
Remplacer
Par
Code :
htmlentities\(\1, ENT_QUOTES\)
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 21h15   #3
chooky97150
Invité de passage
 
Inscription : août 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 6
Points : 1
Points : 1
Merci beaucoup pour votre réponse.

je viens d'essayer, le remplacement remplace la variable par /1 lorsqu'il s'agit d'une simple déclaration de variable et commet une erreur lorsque la variable est incluse dans une condition.

Par exemple :

Code :
1
2
if($_POST[tri]!='') 
{ $tri=htmlentities($_POST[tri]); } else { $tri=htmlentities($_GET[tri]); }
donne
Code :
if($_POST[tri]!='') { $tri=htmlentities\(\1, ENT_QUOTES\); }
Pouvez vous me dire SVP ce que signifie la regex htmlentities\((.*)\) et le /1 du remplacement?

Merci
chooky97150 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 10h59   #4
Seb33300
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 428
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 27
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 428
Points : 1 913
Points : 1 913
Un client MySQL ?

Je pense que tu veux plutot dire que ton serveur mysql a été mis à jour.
Mais je dirais plutot que le probleme vient du coté de PHP et des magics quotes qui ne doivent plus etres activées sur ton nouveau serveur.

Donc soit, tu les réactives, mais c'est déprécié et fortement déconseillé de continuer à lutiliser.
Soit tu corriges ton code pour protége tes requetes des injctions SQL avec la fonction mysql_real_escape_string
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h36.


 
 
 
 
Partenaires

Hébergement Web