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

Discussione: validazione data

  1. #1

    validazione data

    Ciao anche nel campo data di nascita ho utilizzato le ereg, il controllo l'ho fatto ma ho due problemi:
    1)Mi prende tutti i numeri quindi escono fuori date tipo 99/89/9999;
    2)Vorrei imporre che l'utente non metta una data superiore ad almeno 15 anni prima rispetto alla data odiera.... come faccio?
    mi spiego meglio se l'utente mette la data "10/10/2002" questa non è corretta perchè un bambino di un anno non può essere
    chi si registra... quindi al di sotto di una data tipo 10/10/1990 allora il campo va bene..per ora posto il controllo che ho fatto.
    La data deve avere solo questo formato xx/xx/xxxx

    codice:
    function CheckReg2() { 
     $errori = array(); 
    
     $compleanno = $_POST["compleanno"]; 
     if ($compleanno == ""){ 
     $errori[0] = "Devi compilare il campo correttamente"; 
     } 
                     
     else if (!eregi("^([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})$", $compleanno)) { 
     $errori[0] ="caratteri invalidi"; 
     } 
         
     return $errori; 
     }

  2. #2
    Ti consiglio di usare checkdate($mese, $giorno, $anno).

  3. #3

  4. #4
    No problem, volevo contribuire anch'io!

  5. #5
    Nulla da fare.... dove sbaglio?

    codice:
     
    function CheckReg2() { 
     $errori = array(); 
              
     //$giorno="";
     //$mese="";
     //$anno="";
    			 
     $compleanno = $_POST["compleanno"]; 
     if ($compleanno == ""){ 
     $errori[0] = "Devi compilare il campo correttamente"; 
     } 
    				 
     list ($giorno, $mese, $anno) = explode ("-", $compleanno);
     //$compleanno = "$giorno/$mese/$anno";
     if (!checkdate($giorno, $mese, $anno)) { 
     $errori[0] ="data non corretta";
     }
    			 
     return $errori;
     }
    

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    function CheckReg2($compleanno) { 
    	$errori = array(); 
    	//$compleanno = $_POST["compleanno"]; 
    	if ($compleanno == "")
    		$errori[0] = "Devi compilare il campo correttamente"; 
    	list ($mese, $giorno, $anno) = explode ("-", $compleanno);
    
    	if (!checkdate($giorno, $mese, $anno))
    		$errori[0] ="data non corretta";
    	else
    		$errori[0] ="data corretta";
    	$gap=15;
    	if (date("Y") - $anno < $gap)
    			$errori[0] ="data non corretta";
    	elseif (date("Y") - $anno < $gap && mktime(0,0,0,$mese,$giorno,2004) > mktime(0,0,0,date("m"),date("d"),2004))
    			$errori[0] ="data non corretta";
    	return $errori;
    }
    //FORMATO DATA MM-GG-AAAA
    print_r(CheckReg2("17-09-1989")); //Array ( [0] => data corretta )
    print_r(CheckReg2("04-12-2000")); //Array ( [0] => data corretta )
    think simple think ringo

  7. #7
    Grazie Marketto, l'ho modificato un po perchè fa parte di una lista di controllo solo che mi riporta in modo corrente l'errore "data non corretta" anche se il campo è vuoto invece dovrebbe ritornarmi "il l'errore ""Devi compilare il campo correttamente";

    codice:
    function CheckReg2() { 
    	             $errori = array(); 
    	
    	             $compleanno = $_POST["compleanno"]; 
    	             if ($compleanno == ""){
    		         $errori[0] = "Devi compilare il campo correttamente"; 
    	             }
    				 				 
    	             list ($giorno, $mese, $anno) = explode ("/", $compleanno);
    
    	             if (!checkdate($giorno, $mese, $anno)) {
    		         $errori[0] ="data non corretta";
    	             } 
    
    	             $gap=15;
    	             if (date("Y") - $anno < $gap)
    			     $errori[0] ="data non corretta";
    	             else if (date("Y") - $anno < $gap && mktime(0,0,0,$mese,$giorno,2004) > mktime(0,0,0,date("m"),date("d"),2004)) { 
    			     $errori[0] ="data non corretta";
    				 } 
    	
    	             return $errori;
                     }

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    function CheckReg2($compleanno) { 
    	$errori = array(); 
    	//$compleanno = $_POST["compleanno"]; 
    	if ($compleanno == "")
    		$errori[0] = "Devi compilare il campo correttamente"; 
    	list ($mese, $giorno, $anno) = explode ("-", $compleanno);
    
    	if (!checkdate($giorno, $mese, $anno))
    		$errori[0] ="data non corretta";
    	else
    		$errori[0] ="data corretta";
    	$gap=15;
    	$annominimo=1930;
    	if ($anno >= $annominimo){
    		if (date("Y") - $anno < $gap)
    				$errori[0] ="data non corretta";
    		elseif (date("Y") - $anno < $gap && mktime(0,0,0,$mese,$giorno,2004) > mktime(0,0,0,date("m"),date("d"),2004))
    				$errori[0] ="data non corretta";
    	} else
    		$errori[0] ="data non corretta";
    	return $errori;
    }
    //FORMATO DATA MM-GG-AAAA
    print_r(CheckReg2("17-09-0989")); //Array ( [0] => data corretta )
    print_r(CheckReg2("04-12-2000")); //Array ( [0] => data corretta )
    think simple think ringo

  9. #9
    ciao Mark, grazie per l'aiuto il controllo va bene sono che ho dovuto fare delle modifiche perchè il CheckReg() non è solo per il compleanno ma per una serie di campi in una pagina.... ora per come lo hai fatto tu quando il campo è vuoto mi da sempre l'ultimo errore cioè "data non corretta" non capisto dove è l'errore, mi dovrebbe dare campo obbligatorio, cioè il primo... ho aggiunto l'else mancante ma nulla da fare... ti posto il codice per come lo modificato..

    codice:
    function CheckReg2() { 
      $errori = array(); 
    	             
      $compleanno = $_POST["compleanno"]; 
      if ($compleanno == null OR trim($compleanno) == "") {
      $errori[0] = "la data del tuo compleanno è obbligatoria"; 
      }
      else {
      list ($mese, $giorno, $anno) = explode ("/", $compleanno);
    
      if (!checkdate($giorno, $mese, $anno)) {
      $errori[0] ="data non corretta";
      }
      }
      $gap=15;
      $annominimo=1930;
      if ($anno > $annominimo){
      if (date("Y") - $anno < $gap) {
      $errori[0] ="sei un minorenne";
      }
      else if (date("Y") - $anno < $gap && mktime (0,0,0,$mese,$giorno,2004) > mktime(0,0,0,date("m"),date("d"),2004)) 
      $errori[0] ="data non corretta";
      } 
      else
      $errori[0] ="campo";
      return $errori;
      }

  10. #10
    fuonziona....!!! unico problema e che non prende la data in formato gg/mm/anno ma nel formato mm/gg/anno... dove sbaglio? ho imposto gg/mm/anno ma non va...

    codice:
    $compleanno = $_POST["compleanno"]; 
    	             
        if ($compleanno == "") 
    	{
           	$errori[0] = "la data del tuo compleanno è obbligatoria"; 
    	}
        else 
    	{
    	list ($giorno, $mese, $anno) = explode ("/", $compleanno);
    		        
    	if (!checkdate($giorno, $mese, $anno)) 
    	   {
    	   $errori[0] ="data non corretta";
    	   }
    	        
               $gap=18;
    	   $annominimo=1930;
    
    	   if ($anno > $annominimo)
    	      {
    	      if (date("Y") - $anno < $gap)
    		 {
    		 $errori[0] ="sei minorenne";
    		 }
               elseif (date("Y") - $anno < $gap && mktime(0,0,0,$giorno,$mese,$anno) > mktime(0,0,0,$giorno,$mese,$anno))
    					            			   $errori[0] ="ok ";
    	      }
               else 
    	   $errori[0] ="data non corretta";
    	  }  
      return $errori;             
    }

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.