Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    [php] controllo su campo data

    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.

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    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

  3. #3
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    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
    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...

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    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...
    Codice PHP:
    if (ereg("[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{,4}",$_POST['datan'])) {
     echo 
    "data corretta";

    dovrebbe funzionare.

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    ok grazie provo subito... e per quanto riguarda la verifica di una data reale?

  6. #6
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da Base
    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 regolari ) 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"
     }


  7. #7
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    Originariamente inviato da VaLvOnAuTa
    Codice PHP:
    if (ereg("[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{,4}",$_POST['datan'])) {
     echo 
    "data corretta";

    dovrebbe funzionare.
    non funziona

  8. #8
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da Base
    non funziona
    Codice PHP:
    ereg("([0-9]{1,2})\\/([0-9]{1,2})\\/([0-9]{4})"$_POST['datan'], $regs
    Prova così.

  9. #9
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    nun funge...ma mi è venuto un dubbio...
    io devo creare la condizione "quando si verifica"
    ti posto il codice...
    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

    ho provato a mettere ! davanti a ereg ma nulla.

  10. #10
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    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.

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.