ciao a tutti.
vorrei fare un controllo su un campo data (variabile $_POST['datan'])
il controllo che dovrei effettuare consiste nel verificare che il formato inserito sia gg/mm/yyyy .
qualcuno mi sa aiutare?
grazie.
![]()
ciao a tutti.
vorrei fare un controllo su un campo data (variabile $_POST['datan'])
il controllo che dovrei effettuare consiste nel verificare che il formato inserito sia gg/mm/yyyy .
qualcuno mi sa aiutare?
grazie.
![]()
Non ho capito se vuoi semplicemente vedere se la data è 31/12/2004 o vuoi accertarti che non venga inserita una data del tipo 32/13/0000
quello del 32/13/0000 al massimo successivamente...Originariamente inviato da VaLvOnAuTa
Non ho capito se vuoi semplicemente vedere se la data è 31/12/2004 o vuoi accertarti che non venga inserita una data del tipo 32/13/0000
voglio accertarmi che l'utente inserica gg/mm/aaaa invece di
gg-mm-aaaa o 23 Luglio '04 o 12 feb 1993 ecc...
Originariamente inviato da Base
quello del 32/13/0000 al massimo successivamente...
voglio accertarmi che l'utente inserica gg/mm/aaaa invece di
gg-mm-aaaa o 23 Luglio '04 o 12 feb 1993 ecc...dovrebbe funzionare.Codice PHP:
if (ereg("[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{,4}",$_POST['datan'])) {
echo "data corretta";
}
ok grazie provo subito... e per quanto riguarda la verifica di una data reale?
Se funziona quella stringa di regexp (non l'ho provata e non sono molto ferrato sulle espressioni regolariOriginariamente inviato da Base
ok grazie provo subito... e per quanto riguarda la verifica di una data reale?) puoi aggiungere alla funzione ereg un'altra variabile $regs ad esempio che sarà un array in cui troverai i 3 campi della data su cui poi effettui i controlli. Insomma (ammesso e non concesso la regexp sia valida) puoi modificare così:
Codice PHP:
if (ereg("[0-9]{1,2}\\/[0-9]{1,2}\\/[0-9]{,4}",$_POST['datan'],$regs)) {
if (($regs[1] > 0) && ($regs[1] < 32)) && (($regs[2] > 0) && $regs[2] < 13)) {
echo "data corretta";
}
}
non funzionaOriginariamente inviato da VaLvOnAuTa
dovrebbe funzionare.Codice PHP:
if (ereg("[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{,4}",$_POST['datan'])) {
echo "data corretta";
}
![]()
Originariamente inviato da Base
non funziona
Prova così.Codice PHP:
ereg("([0-9]{1,2})\\/([0-9]{1,2})\\/([0-9]{4})", $_POST['datan'], $regs)
nun funge...ma mi è venuto un dubbio...
io devo creare la condizione "quando si verifica"
ti posto il codice...
ho provato a mettere ! davanti a ereg ma nulla.Codice PHP:
if (trim($name)=="" || empty($name) || trim($surname)=="" || empty($surname) || empty($datan) || ereg("([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})", $_POST['datan'], $regs)
) {
// errore
} else {
//ok
}
Prima di tutto ti consiglio di usare più parentesi così non ti incarti nel codice
In secondo luogo stai verificando tutte situazioni sfavorevoli (ovvero quelle in cui incorre un errore) e quella funzione ti restituisce false se c'è errore quindi dovrai negarla.
In ultima istanza il carattere "/" dovrebbe essere un simbolo dedicato nelle regexp quindi dovrai metterci il carattere di escape davanti (che è una "\"). Io ce l'ho messo nel codice che t'ho scritto ma non viene visualizzato.
![]()