Visualizzazione dei risultati da 1 a 4 su 4

Discussione: sono passati 7 giorni

  1. #1

    sono passati 7 giorni

    Ciao ho creato questa funzione per verificare se sono passati 7 giorni dalla data di oggi,ma non funziona
    Codice PHP:
    <script language="javascript">
    function controlDate() {
        now  = new Date().getTime();
        nextweek = 'now' + 7*60*60*24;
        azione = <?php echo($azione);?>;
    if(nextweek < azione) {
    alert('Devono passare almeno 7 giorni per modificare il giocatore');
    }
    }
    </script>
    lo richiamo così
    Codice PHP:
    echo "<a href=\"pagina.php?\"><img onClick=\"controlDate($azione)\" alt=\"Cambia\" src=\"immagini/icona.png\"></a>"
    Grazie

  2. #2
    codice:
    nextweek = 'now' + 7*60*60*24;
    Questo è sbagliato poichè now va senza virgolette visto che ti riferisci ad una variabile. Il codice che hai scritto tu considera invece la stringa now e quindi mette nella variabile nextweek la stringa 'now604800'.

    Inoltre se vuoi usarlo nel link come hai fatto e fare in modo che il link non venga "attivato" se un utente ci clicca ma non sono passati sette giorni devi fare in modo che restituisca true o false, altrimenti il link viene sempre seguito dal browser (se restituisce false invece il browser non fa niente).

    Comunque per il resto il tuo codice è sbagliato semanticamente, e non si capisce bene perché dovrebbe controllare che siano passati 7 giorni. Ogni volta che viene eseguito prende la data di 7 giorni successivi al momento in cui l'utente clicca e poi la confronta con una variabile (azione) di cui non sappiamo il contenuto...
    Visita il mio blog e canale YouTube dedicati a programmazione web e sicurezza informatica.

  3. #3
    Ciao innanzitutto grazie per la risposta,ma sto ancora cercando di imparare il Javascript
    Allora $azione è un valore timestamp salvato sul database che avrà sempre valore inferiore al timestamp attuale...
    Now mi restituisce il timestamp attuale e nextweek il timestamp di oggi + una settimana e quindi se nextweek è minore di "azione" deve partire un alert che mi dice che non sono passati 7 giorni...

    Per i valori true e false di cui mi hai parlato devo scrivere?
    return true;
    return false;

    Dove li posso posizionare?

    Grazie

  4. #4
    Dovresti fare qualcosa tipo:

    codice:
    if (SONO PASSATI SETTE GIORNI) {
      return true;
    } else {
      alert('Errore');
      return false;
    }
    In questo modo, se i giorni non sono passati, il return false impedisce che il link venga seguito dal browser. Ovviamente dovresti inserire pure un controllo lato server in PHP per evitare che semplicemente disabilitando Javascript o modificando il codice della pagina possa essere possibile bypassare quello lato client.

    A parte questo, la logica che usi è completamente sbagliata:

    codice:
    if(nextweek < azione) {
    alert('Devono passare almeno 7 giorni per modificare il giocatore');
    }
    Hai detto che azione contiene sempre un timestamp minore di quello corrente però poi nel codice controlli che invece sia maggiore.
    Visita il mio blog e canale YouTube dedicati a programmazione web e sicurezza informatica.

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.