Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 27
  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157
    dararag e andreamk trovatemi tu una soluzione più breve di 2 righe che la commentiamo...

  2. #12
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    if (date("Y-m-d") > date("Y-m-d",str_replace("-","",$_POST['data'])))

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157
    non concordo assolutamente.

    1)il secondo parametro di date può essere solo una unix timestamp, e non la generi semplicemente togliendo i trattini.

    2)anche se tu le potessi confrontare (impossibile per quanto scritto nel punto 1) l'utnete immette la data nel formato "gg-mm-aaaa" infatti nel primo post cito danirota che scrive: "l'utente inserisce 00-00-0000", per cui devi fare attenzione all'ordine dei valori giorno,mese,anno per fare un confronto corretto.

    3)nel tuo script non mandi in output nulla per cui anche se lo script funzionasse avresti esaudito solo in parte le richieste del committente.

  4. #14
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    per il primo punto, ti conviene studiare come è formato un timestamp, e cioè da annomesegiornooreminutisecondi, ed omettendo oreminutisecondi semplicemente utilizza solo i primi 3, per il punto 2 e 3 basta modificare così:
    Codice PHP:
    if (date("d-m-Y") < date("d-m-Y",str_replace("-","",$_POST['data']))) die("La data non può essere futura"); 

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157
    ma perchè non li provi i tuoi script prima di postarli?
    Fai come me: anche se sei sicuro di quel che pensi fai qualche prova prima di rendere pubblica una risposta; io infatti nonostante fossi certo che il tuo script non funzionasse l'ho testato e ne ho avuto la conferma!


    Codice PHP:
    if (date("d-m-Y") < date("d-m-Y",str_replace("-","","19-11-1980"))) die("La data non può essere futura"); 
    output:La data non può essere futura

    Codice PHP:
    if (date("d-m-Y") < date("d-m-Y",str_replace("-","","19-11-2010"))) die("La data non può essere futura"); 
    output:La data non può essere futura


    io non ho parlato di timestamp, ma di UNIX TIMESTAMP, e sono due cose diverse. una è l'intervallo dall'unix epoch, cioè i secondi intercorsi dal 1.1.1970 il la definizione del timestamp l'hai data corretta, solo che non c'azzecca un'H.

  6. #16
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    e va bè, lo ammetto, ho sbagliato, capita, scusate...
    PS: errare umanum est, perseverare diabolicum est

  7. #17
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157
    cacchio dararag.. per l'età che hai ne sai anche troppa di informatica! Ho visto adesso il tuo profilo e devo ammettere che io alla tua età non distinguevo un bit da un bitter!
    Complimenti, se cresci con questa caparbietà tra una decina d'anni ti assumo.. anche il tuo ultimo messaggio ti fa onore.. riconoscere gli errori e farne tesoro, soprattutto alla tua età, è veramente lodevole.

  8. #18
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    però non capisco, così dovrebbe funzionare:
    Codice PHP:
    if (date("d-m-Y") < $_POST['data']) die("La data non può essere futura"); 
    perchè invece non va?
    PS: grazie, però ci sono ancora molte cose che non so fare, e poi, mi manca l'esperienza, ho iniziato da solo un anno!

  9. #19
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    1) innanzitutto prendere i dati in post $_POST['data'] senza eseguire un controllo sull'esistenza o meno dei dati(isset) e sulla validazione del campo(ad esempio posso immettere nel campo data una stringa, che non è assolutamente uguale a una data secondo GG-MM-AAAA) sicuramente deve essere corretto.

    io proporrei invece una soluzione basata esclusivamente sul confronto di stringa... cioè vado a costruire stringhe nel formato YYYYMMGG e poi le confronto:

    Codice PHP:
    $data = isset($_POST['data']) ? $_POST['data'] : "";
    /* VALIDAZIONE $data ... supponendo sia validata secondo il formato GG-MM-AAAA */
    $new_data_format substr($data,6,4).substr($data,3,2).substr($data,0,2);
    $actual date(Ymd);
    echo (
    $new_data_format $actual) ? "KO" "OK"
    ps: la bonta o meno di un'algoritmo non si misura dalla lunghezza in righe di codice(più corto è migliore è l'algoritmo), ma dagli effettivi costrutti e dalla complessità di tali costrutti... e soprattutto se funge o meno
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  10. #20
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    già provato, ma non funziona

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