Visualizzazione dei risultati da 1 a 5 su 5

Discussione: confornto date

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    31

    confornto date

    Ciao a tutti!

    HO un sito in cui un utente può scegliere una data in cui fare un tour.

    Se l'utente o sceglie però a due giorni dal suo inizio deve dare errore.

    Per esempio se il tour è il 20 settembre e lui lo sceglie il 18 o il 19 il form deve restituire errore.
    Inoltre se sceglie- per sbaglio- una data già passata dovrebbe dare errore anche il quel caso.

    Il codice è cosi (scusate se esce tutto su una riga ma non so come si fa a mandarlo a capo)

    Codice PHP:
    if ($_SESSION['error1']==""){        # Verifico che le date inserite siano successive di almeno n giorni alla data attuale   $n=2;   if (data_passata($today,$_SESSION['lang'],$n) && $today!=$data1_pck) {     $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;  }   if (data_passata($data2,$_SESSION['lang'],$n) && $_SESSION['error1']=="" && $data2!=$data2_pck) {     $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;   }   if (data_passata($data3,$_SESSION['lang'],$n) && $_SESSION['error1']=="" && $data3!=$data3_pck) {     $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;   } }  if ($_SESSION['error1']!=""){   header("location: ".$dominio."p_step2.php"); } else {   header("location: ".$dominio."p_step3.php"); }    function data_passata($data,$lingua,$n) {   #riceve una data e ritorna true se questa non è almeno n giorni dopo la data attuale.   print "data passata a format_date_rev = ".$data."
    \n";   $arr_data=format_date_rev($data,$lingua,2);   $anno=$arr_data[0];   $mese=$arr_data[1];   $giorno=$arr_data[2]; print "anno ".$anno." mese ".$mese." giorno ".$giorno."
    \n";    $fmkdata=mktime(0, 0, 0, $arr_data[1]$arr_data[2]-$n$arr_data[0]);   $unixtoday=time(); print "fmkdata ".$fmkdata."
    \n"; print "unixtoday ".$unixtoday."
    \n";    if ($fmkdata<$unixtoday){     return true;   } else {     return false;   }  } 

    Ma in questo modo il sistema da sempre errore, qualsiasi data uno scelga
    COme fare per correggerlo?
    Grazie mile

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    In questo modo è anche impossibile capire il tuo script
    Riformatta il codice mettendo un'istruzione per riga ed indentando il codice.

  3. #3
    per endare a capo non devi usare il comando PHP che ti da in alto il compilatore ma mettere i tag a mano^^

    Codice PHP:
    <?php
    if ($_SESSION['error1']=="")
    {
    # Verifico che le date inserite siano successive di almeno n giorni alla data attuale   $n=2;
        
    if (data_passata($today$_SESSION['lang'], $n) && $today!=$data1_pck)
        {
            
    $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;
        }
        if (
    data_passata($data2$_SESSION['lang'], $n) && $_SESSION['error1']=="" && $data2!=$data2_pck)
        {
            
    $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;
        }
        if (
    data_passata($data3$_SESSION['lang'], $n) && $_SESSION['error1']=="" && $data3!=$data3_pck)
        {
            
    $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;
        }
    }
    if (
    $_SESSION['error1']!="")
    {
        
    header("location: ".$dominio."p_step2.php");
    }
    else
    {
        
    header("location: ".$dominio."p_step3.php");
    }
    function 
    data_passata($data$lingua$n)
    {
    #riceve una data e ritorna true se questa non è almeno n giorni dopo la data attuale.   print "data passata a format_date_rev = ".$data."

        
    \n";
        
    $arr_data=format_date_rev($data$lingua, 2);
        
    $anno=$arr_data[0];
        
    $mese=$arr_data[1];
        
    $giorno=$arr_data[2];
        print "
    anno ".$anno." mese ".$mese." giorno ".$giorno."

    \n";
        
    $fmkdata=mktime(0, 0, 0, $arr_data[1]$arr_data[2]-$n$arr_data[0]);
        
    $unixtoday=time();
        print "
    fmkdata ".$fmkdata."

    \n";
        print "
    unixtoday ".$unixtoday."

    \n";
        if (
    $fmkdata<$unixtoday)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    ?>

    per stavolta lo faccio per te^^

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    31
    indentando?
    come si fa?

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    31
    grazie mile sei molto gentile!
    qual'è il tag per andare a capo /n, questo? perchè prima ho provato a metterlo ma non lo leggeva..

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.