Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: AIUTO classe controlli

  1. #1

    AIUTO classe controlli

    Ciao a tutti... ho spesso stressato molto su questo forum chiedendo e richiedendo un sacco di info. In questi giorni sto creando un po' di classi che normalmente usavo in ASP ed una di questa da solo non riesco a finirla (si parla di reg exp!).
    Io la posto... la classe è semplice, racchiude tutti i controlli che mi sono venuti in mente (tel, piva, cap...). Se mi aiutaste a finirla potremmo metterla in rilievo così che chi vuole la usi liberamente.
    codice:
    class objCTRL{
     function objCTRL(){}
     
     //ritorna 1 se è un numero
     function isNaN($var){ return preg_match("/^[-]?[0-9]+([\.][0-9]+)?$/", $var); }
     
     //da fare
     function isMail($var) { return $var; }
     
     //ritorna 1 se è un numero di telefono (accetta il . come separatore)
     function isTel($var) { return preg_match("/^\+?\d[0-9 .]{7,12}\d$/", $var); }
     
     //ritorna 1 se è un CAP corretto (5 numeri)
     function isCap($var) { return preg_match("/^[0-9]{5}$/", $var); }
     
     //ritorna 1 se è uno USER corretto (min 5 caratteri, max 25 caratteri, tutti caratteri permessi tranne '"%#)
     function isUser($var) { return preg_match("/^[^ '\"%#]{5,25}$/", $var); }
     
     //ritorna 1 se è una PSW corretta (min 5 caratteri, max 15 caratteri, tutti caratteri permessi tranne '"%#)
     function isPsw($var) { return preg_match("/^[^ '\"%#]{5,15}$/", $var); }
     
     // da fare
     function isCodiceFiscale($var) { return $var; }
     
     //ritorna 1 se è una PIVA corretta (11 numeri)
     function isPiva($var) { return preg_match("/^[0-9]{11}$/", $var); }
     
     // da fare
     function isDate($var,$stato) {
      switch(strtolower($stato)){
       case "it": return $var; //valida data formato italiano (gg/mm/yyyy)
       case "en": return $var; //valida data formato inglese (mm/gg/yyyy)
       default: return $var; //valida data formato generico (yyyy/mm/gg)
      }
     }
     
     //ritorna 1 se rappresenta la valuta (x,xx)
     function isEuro($var) { return preg_match("/(\d+),(\d{2})/", $var); }
    }
    Manca il controllo della mail, del codice fiscale e della data. Questi controlli li ho in JS, ma non riesco a tradurli!
    Ciao e grazie
    Rino

  2. #2
    Mi dispiace dirtelo ma questa classe non serve e non è nemmeno progettata bene. Leggi questo articolo: validare i form con la programmazione ad oggetti
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3
    Probabilmente hai ragione, ma io volevo creare una classe che contenesse un po' di controlli (aumentabili nel tempo), non mi serve solo per un form, ma anche per altro. Poi pensavo di creare una classe che prelevasse i dati dai form e li ciclasse facendo tutti i controlli della mia 1° classe.
    Mi leggerò il tuo link, ma vorrei cmq continuare con questo sistema (in javascript l'ho fatto e non tocco il codice da 1 anno! lo riutilizzo sempre uguale e va bene )
    Ciao
    Rino

  4. #4
    Non sto dicendo che non vada bene! Solo che non è opportuno, conveniente e performante!

    Il link che ti ho postato utilizza in pieno le capacità di scalabilità, ereditarietà e compagnia cantata della programmazione OOP in php.

    La classe non è nemmeno molto complessa (se poi dovessi avere probelmi ti basterà postare qui per avere tutto il supporto che ti serve!) ed è anche estensibile. Inoltre può essere utilizzata per controllare i dati dei form ma i controlli che implementa possono essere utilizzati tranquillamente per altre variabili.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #5
    aggiungo il controllo alla mail che ho trovato sul link postato sopra (spero sia sufficientemente corretto!)
    codice:
     function isMail($var) { return preg_match("/^[a-zA-Z]{1}\w{1,10}[-|.|_]{0,1}\w{0,10}@\w{3,10}\.\w{0,10}-{0,1}\w{0,10}\.{0,1}\w{2,6}$/i", $var); }
    Rimangono data e codice fiscale... se poi vi viene in mente altro... tipo numero compreso tra min e max, stringa lunga tot...

  6. #6
    Originariamente inviato da mircov
    Non sto dicendo che non vada bene! Solo che non è opportuno, conveniente e performante!

    Il link che ti ho postato utilizza in pieno le capacità di scalabilità, ereditarietà e compagnia cantata della programmazione OOP in php.

    La classe non è nemmeno molto complessa (se poi dovessi avere probelmi ti basterà postare qui per avere tutto il supporto che ti serve!) ed è anche estensibile. Inoltre può essere utilizzata per controllare i dati dei form ma i controlli che implementa possono essere utilizzati tranquillamente per altre variabili.
    Gli sto dando una occhiata...

  7. #7
    per il codice fiscale puoi usare questa:

    /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/


    per la data, s ela fuzione di là non va bene provo a cercare qualcosa su una sola riga


    comunque de devi controllare solo la sequenza gg/mm/aaaa o aaaa-mm-gg è semplice, il difficile sta nel controllare che non inseriscano fesserie tipo 30/02/2004 o 74/15/9999
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    codice:
    $str5="03/12/1995";
    if (preg_match("/^(0[1-9]|[12]\\d|3[01])[\\/](1[0-2]|0[1-9])[\\/]((19|20)\\d{2})$/",$str5)) echo "
    okdata";

    questo è il massimo che sono riuscito a tirar fuori, avevo anche io una cosa simile in js.

    così ti controlla che la data sia SOLO nel formato gg/mm/aaaa

    quindi compresi eventiali zeri se il numero è minore di 10

    9/3/2005 -> non lo accetta
    09/03/2005 -> corretto

    altro controllo che fa è che gg non sia maggiore di 31 e mm maggiore di 12, però uno potrebbe inserirti 31/02/1998, poi sull'anno controlla che inizi con 19 (e quindi anni del 1900) o con 20 (anni del 2000).

    Ottenere di più con una preg non so se puoi [si potrà sicuramente ma io non so aiutarti ]
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    per l'email
    codice:
    function checkMail( $m ) {
    	// andr3a / HTML.IT / caruccis
    	$r1 = "([a-z0-9]+[";
    	$r2 = "\-]?){1,3}([a-z0-9])*";
    	return preg_match("/(?i)^{$r1}\._{$r2}\@{$r1}{$r2}\.[a-z]{2,6}$/", $m);
    }
    ______________________________________

    Progresso Web.

  10. #10
    Originariamente inviato da caruccis
    per l'email
    codice:
    function checkMail( $m ) {
    	// andr3a / HTML.IT / caruccis
    	$r1 = "([a-z0-9]+[";
    	$r2 = "\-]?){1,3}([a-z0-9])*";
    	return preg_match("/(?i)^{$r1}\._{$r2}\@{$r1}{$r2}\.[a-z]{2,6}$/", $m);
    }
    Dici che è meglio di quella che ho postato io su? Io non ne capisco molto...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.