REPERAGE D'INFORMATIONS PERSONNELLES AVEC REGEXP

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 4 mai 2007 à 12:34
braxivamov Messages postés 22 Date d'inscription mercredi 10 janvier 2007 Statut Membre Dernière intervention 11 août 2009 - 16 mai 2007 à 08:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42564-reperage-d-informations-personnelles-avec-regexp

braxivamov Messages postés 22 Date d'inscription mercredi 10 janvier 2007 Statut Membre Dernière intervention 11 août 2009
16 mai 2007 à 08:50
Je suis desole avec l'indentation et la largeur du cadre le code est relativement lourd a lire ...
braxivamov Messages postés 22 Date d'inscription mercredi 10 janvier 2007 Statut Membre Dernière intervention 11 août 2009
9 mai 2007 à 08:43
Merci a vous deux vos conseils vont m'être très utiles. Juste une petite note je suis dans le dev de cette page donc pour les erreurs par exemple je fais des affichages et je n'arrete pas le code pour mieux voir ce qui se passe mais ce genre de choses comme la verification du nom de fichier je les fait apres ( c'est surement un defaut j'avoue ), comme j'ajouterais un controle sur la taille du fichier etc ...
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 1
5 mai 2007 à 23:48
Hello,

pour l'adresse mail, il est préférable de tester si le 1er caractère est bien un caractère alphanum.
Si cette vérification n'est pas faite, ton masque matchera les adresses de ce type:_____@------.com.

Dans le masque suivant, il n'y a que les adresses classiques qui sont acceptés.

'#[a-z0-9]([-_.]?[a-z0-9])+@[a-z0-9]([-_.]?[a-z0-9])+\.[a-z]{3,5}#i'

Bonne chance.
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
4 mai 2007 à 17:18
@ KIKI2sirom... tu le dis toi même tu ne connais pas les regexp parce que tu ne les utilise pas... après effectivement j'ai peut être été vite à juger... la source peut valoir le niveau d'initié... bref... je n'ai pas le temps de regarder en détail mais une chose me fait bondir... il n'y a aucun contrôle du type de fichier uploadé qui plus est lors de la gestion des erreurs tu ne fais qu'afficher l'erreur tu ne shunte pas le reste du code ni n'arrête l'exécution du script ce qui peut être problématique voir dangereux... pareil au niveau de ton utilisation de exec(), je ne connais pas énormément l'exécution de commande via php mais une chose est sûr si tu ne fais aucun traitement sur le nom du fichier avant de l'inclure dans ta commande tu risque de tomber sur un petit malin qui fera exécuter à ton serveur des commandes arbitraires... .. .

un peu de lecture...

http://fr2.php.net/manual/fr/function.escapeshellarg.php
http://fr2.php.net/manual/fr/function.escapeshellcmd.php

Sinon coté syntaxe du peu que j'ai vu il serait bien d'utiliser les simples quotes et la concaténation plutôt que les doubles quotes... pour tes boucles for() à partir du moment où ton tableau ou ta chaine n'est pas modifié en cour de boucle fais ton sizeof ou ton count à l'initialisation de ta boucle... pas dans l'instruction de contrôle... et préfère également la préincrémentation pour la dernière instruction... exemple...

for ($i=0,$max=count($monTableau); $i<=$max; ++$i)

Les expressions régulières c'est bien... en abuser ça craint... .. .

$telPort = "#$telPort#s";
$buffer preg_replace("$telPort", " ", trim($buffer));
>

$buffer = str_replace($telPort, ' ', trim($buffer));

-------------

$buffer = preg_replace('#([[:space:]][[:space:]]+)#s', ' ', trim($buffer));
$buffer preg_replace('#[|]#s', ' ', trim($buffer));
>

$buffer = preg_replace(
array(
'#([[:space:]][[:space:]]+)#s',
'#[|]#s'
),
' ',
trim($buffer)
);

---------------------

$taille = sizeof($res);
$testN=true;
switch ($taille) {

tu ne réutilise $taille nul part en dehors du switch... inutile d'encombrer la mémoire serveur pour rien...

$testN=true;
switch (sizeof($res)) {

d'ailleurs utilise plutôt les fonctions originale plutôt que leur alias... tu y gagne en rapidité et tu est plus sur de la compatibilité de ton code vis a vis des futures versions de php... donc...

$testN=true;
switch (count($res)) {

utilise des comparaisons typées... tu y gagne en perf et tu est sur du contenu de ta variable...

while (!feof($handle))

===>

while (feof($handle) === false)

-----

if($handle fopen("temp.txt", "rb")) {
>

if(false !($handle fopen('temp.txt', 'rb'))) {

---

if(preg_match('#...#',$buffer,$out) && $testC false) {
>

if(preg_match('#...#',$buffer,$out) !0 && $testC false) {

Voili voilou dans un premier temps... .. .

@ tchaOo°
braxivamov Messages postés 22 Date d'inscription mercredi 10 janvier 2007 Statut Membre Dernière intervention 11 août 2009
4 mai 2007 à 14:44
Je suis egalement d'accord avec toi, certaines pcre utilisees ici ne sont - a mon humble avis - pas realisablent par un debutant. Mais en tant que nouveau sur le site je me rallie a l'avis d'un "ancien".
A part ca si vous pouviez me faire des suggestions qui me ferait avancer dans l'amelioration de mon code (structure, construction des regexp, proprete (surtout le passage $j=3 du code postal) ) ce serait top ^^
kiki2sirom Messages postés 153 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 23 décembre 2010
4 mai 2007 à 14:24
@Kankrelune
ok alors dsl pour le dernier post mais je ne suis pas tout à fait d'accord avec toi : je n'y connais rien aux regexp (en fait je ne les utilise jamais, mais je devrais sûrement dans certains cas), et pour m'y mettre je ne pense pas que j'essaierai avec ce code.
je pense qu'il faut être "initié" aux regexp un minimum pour pouvoir le commenter

m'enfin c'est mon avis !!! après ce que j'en dis .... ;-)
kiki
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
4 mai 2007 à 12:35
Ah au fait... initié ne se justifie pas pour le niveau de cette source tu ne fais qu'utiliser des expressions régulières... c'est niveau débutant... .. .

@ tchaOo°
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
4 mai 2007 à 12:34
Si tu pouvais mettre le code dans le champ prévu à cet effet et non dans la description du code... et profites en pour indenter ton code... merci... .. .

@ tchaOo°