Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Controllo validità data

    Ciao a tutti,
    sto attualmente creando un form per la registrazione di alcuni dati (nome,cognome data di nascita) che sia costituito da una pagina stabile in Html e una pagina dinamica per il controllo dei dati in PHP;non riesco però a creare uno script in grado di controllarmi la validità della data.
    Vi posto il codice Html del form:

    <tr>
    <td><div align="right">Dati di nascita</div></td>
    <td><div align="left">
    <input type="text" name="day" id="day" size="2" maxlength="2" onBlur="isnum(this)"/>
    /
    <input type="text" name="month" id="month" size="2" maxlength="2" onBlur="isnum(this)"/>
    /
    <input name="year" type="text" id="year" size="4" maxlength="4" />
    </div></td>
    </tr>

    Ho provato ad inserire in php il seguente script ma non ottenevo i risultati desiderati!
    -codice Php:

    else if (($day >=30) AND ($month =2))
    echo "Non hai inserito la data corretta!";

    Infatti se inserisco un numero maggiore a 30 nel campo del giorno e 2 nel campo del mese mi dice giustamente che non ho inserito la data corretta, ma purtuppo questo succede anche se inserisco 30 nel giorno e 3 nel mese!!
    Qualcuno può aiutarmi?? Grazie mille

  2. #2
    Utente bannato
    Registrato dal
    Jan 2009
    Messaggi
    152

    = rende uguale; == controlla se è uguale.

    Non ho focalizzato tutta la faccenda, ma comunque il segno di uguale deve essere doppio quando è comparativo negli if Statement

    ($month ==2)

    Anche in JavaScript, per la cronaca.

  3. #3

  4. #4
    Grazie mille per le risposte...Sono state utili!
    Ora però sorge un altro problema: devo concordare il messaggio di benvenuto a seconda del sesso della persona che si registra al mio Form...ovvero...Se il sesso selezionato è M(MASCHIO) , allora dovrò far comparire il messaggio "benvenuto" (al maschile)...Ovviamente se l'utente è femmina "benvenuta".
    Come posso fare?
    Vi posto sempre il codice html del form:


    <tr>
    <td><div align="right">Sesso</div></td>
    <td><div align="left">
    <input name="sex" type="radio" id="sex" value="male" checked="checked" />
    M

    <input name="sex" type="radio" id="Radio1" value="female" />
    F </div></td>
    </tr>
    <tr>

    Grazie mille ancora

  5. #5
    codice:
    function valida_data($data){
    if(!preg_match('/([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})/',$data,$a)) echo "Formato non corretto!"; 
    if($a[1]>31) return "Uno schiaffo all\'onestà";
    if($a[2]>12) return "I mesi si fermano a 12";
    if($a[3]>date('Y')) return "born in the future";
    }
    prova questa...
    controlla se la data è formata cosi: 2interi/2interi/4interi
    poi controlla se il giorno < 31, mese<12 e anno <dell'attuale.
    per ulteriori controlli relativi al numero di giorni di ogni mese puoi:
    creare 1 array per i mesi con 30 g, poi ci metti il numero indicante il mese.
    poi basta aggiungere un controllo del tipo sotto agli altri:
    codice:
    if ($a[1]==31 && in_array($a[1],$mesi_con_30gg)) return "questo mese ha solo 30gg";
    con febbraio fai lo stesso.
    Esisteranno metodi piu veloci ma ora qui e' il priumo che mi e' venuto in mente

  6. #6
    per il fatto del sesso:

    codice:
    echo "ciao ".$nome." e ".(($sesso=="M")?"benvenuto":"benvenuta");

  7. #7
    Ti ringrazio ma non il codice non funziona...In output mi dice sempre "benvenuto" anche se selezione F su sesso!
    Vi prego aiutatemi mi serve urgentemente!!

  8. #8
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087

    Re: Controllo validità data

    Originariamente inviato da ilredellamira
    Ciao a tutti,
    ........
    non riesco però a creare uno script in grado di controllarmi la validità della data.
    ......
    ciao
    potresti fare inserire la data scegliendo le option da select , mentre hai già creato un array per i giorni ed uno dove la chiave è il mese a cui corrispondono i giorni . Una cosa così:
    codice:
    <?php
    $giorni = array("01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16",
                    "17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
    $mesi = array("gennaio"=>31,"febbraio"=>28,"marzo"=>31,"aprile"=>30,"maggio"=>"31",
                  "giugno"=>"30","luglio"=>"31","agosto"=>"31","settembre"=>"30","ottobre"=>"31",
    			  "novembre"=>"30","dicembre"=>"31");
    ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
      <select name="mesi">
          <option value="" selected>  </option>
    <?php
    // si sceglie il mese ed il n° di giorni viene passato alla pagina
    	   foreach($mesi as $m=>$n)  {
    	   echo "<option value=$m> $m </option>";
    	   }
    ?>
    </select>
       
    <input type="submit" name="cnf_mese" value="conferma il mese" />
    <?php
    // se il mese è stato scelto appare il n° dei giorni
           if(isset($_POST['cnf_mese'])) {
    echo '   ' . $_POST['mesi'] . '   ';
    echo '</form>';
     
    if(isset($_POST['mesi']))   {
      if($_POST['mesi'] !="" OR $_POST['mesi'] !="  ") {
    ?>
    <form action="crea2_pdf_form.php" method="post" >
    
    <select name='giorni'>
    <option value="" selected>  </option>
    <?php
    	   for($g=1; $g<=$mesi[$_POST['mesi']]; $g++)  {
    	   echo "<option value=$g> $g </option>";
    	   }
      echo '</select>';
        }
    	}
    ?>
       
    <select name="anno" >
       <option value="" selected>selz.anno</option>
       <option value="07"> 2007 </option>
       <option value="08" > 2008 </option>
          <option value="08" > 2008 </option>
    </select>
    
    
    
    
    <input type="submit" name="invia" value="conf. data " />
    </form>
    <?php
       }
    ?>
    spero di essermi fatto capire.
    ciao

  9. #9
    Originariamente inviato da ilredellamira
    Ti ringrazio ma non il codice non funziona...In output mi dice sempre "benvenuto" anche se selezione F su sesso!
    Vi prego aiutatemi mi serve urgentemente!!
    strano a me funziona, in ogni caso prova il classico:

    codice:
    echo "ciao ".$nome." e ";
    if($sesso=="M") echo "Benvenuto";
    else echo "Benvenuta";

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 © 2024 vBulletin Solutions, Inc. All rights reserved.