Visualizzazione risultati 1 fino 11 di 11

Discussione: Impostare data precisa codice php

  1. #1
    Guest

    Predefinito Impostare data precisa codice php

    Salve,

    qualcuno di voi sa come fare x impostare una data precisa con il PHP ??

    perchè io avevo provato a fare: mktime(13,00,00) ma non funziona... perchè vorrei che (ad esempio) alle ore 13:00 di ogni giorno mi faccia una azione... ma non so come fare per mettere l'ora precisa... qualcuno sa come fare??

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    Per far eseguire uno script ad una certa ora, devi per forza usare cron: infatti gli script vengono eseguiti solo se un utente (o un bot) ha aperto la tua pagina php.

    Con le funzioni php, potresti fare:

    Codice PHP:
    <?php
    if(date('H:i') == '13:00')
    {
    esegui_azione();
    }
    ?>
    Nota, che questo script sopra per esser eseguito alle 13:00, dovresti aprire la pagina a quell'ora!.. Quindi se lo apri in un orario diverso, l'if fallisce, mentre se lo apri alle 13:00, l'if non fallisce, ed esegue il codice al suo interno.

    Quindi, la cosa migliore per eseguire uno script ad una certa ora, è usare cron.

    Ciao!
    Ultima modifica di alemoppo : 10-01-2012 alle ore 00.09.03

  3. #3
    Guest

    Predefinito

    con questo metodo mi esce questa pagina non reindirizza in modo corretto...

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    Puoi postare il codice per capire cosa vuoi fare? Oppure spiega meglio cosa vuoi fare...

    Ciao!

  5. #5
    Guest

    Predefinito

    ecco il codice:
    Codice PHP:
    if(date('H-i') == '13,00')
    {
    header("Location: game.php?page=logout");
    }
    e l'ho messo nel common quindi non c'è bisogno che un utente apra quella pagina ma automaticamente appena sono le 13 reindirizza da solo

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    Citazione Originalmente inviato da Nest2 Visualizza messaggio
    non c'è bisogno che un utente apra quella pagina ma automaticamente appena sono le 13 reindirizza da solo
    Sbagliato... O almeno, l'utente deve aprire quella pagina alle 13:00, altrimenti se lo apre alle 12:59 e aspetta, non succederà nulla, perché quello script viene eseguito solo al caricamento della pagina, visto che viene eseguito sul server (php).

    Se vuoi che alle 13:00 un utente venga mandato nella pagina "game.php?page=logout", dovresti usare javascript (l'utente può disabilitarlo, quindi occhio).

    ...Comunque, l'if così come è scritto non sarà mai soddisfatto: date() restituisce "ora-minuti", mentre l'if lo confronta con la stringa "ora,minuti". Ovviamente non potranno mai essere uguali.

    Ciao!

  7. #7
    Guest

    Predefinito

    azz.. e col javascript come potrei farlo nn me ne intendo molto di javascript

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    Codice HTML:
    <script type="text/javascript">
    window.onload= setInterval('controlla()',1000);
    function controlla()
    {
         var adesso = new Date();
         if((adesso.getHours() == 13) && (adesso.getMinutes() == 00))
              window.location.href='game.php?page=logout';
    }
    </script>
    Alcune considerazioni importanti (javascript viene eseguito lato client):

    - L'utente può comunque bloccare lo script, modificarlo {solo sulla sua pagina, ovviamente non può modificare quella sul server :P}.

    -L'orario è preso dal PC dell'utente. Se vuoi, con una piccola modifica si può far in modo di avere un orario pressapoco sincronizzato con il server.

    Quindi, (in generale, e nel tuo caso), javascript (secondo me) andrebbe usato soltanto per facilitare la vita al visitatore, e non per forzarlo a far qualcosa.
    Se vuoi che obbligatoriamente l'utente alle 13:00 vada nella pagina "game.php?page=logout", non puoi farlo (non puoi forzare i visitatori a far quello che vuoi tu).

    Ciao!
    Ultima modifica di alemoppo : 10-01-2012 alle ore 01.39.43

  9. #9
    Guest

    Predefinito

    se conosci ogame quello che voglio fare io si chiama "relog" in pratica nel gioco chiamato OGame a una certa ora ti sloggano e poi devi rientrare

    siccome ho un retro identico volevo farlo identico in ogni particolare ;)

    cmq grazie :)

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da Nest2 Visualizza messaggio
    se conosci ogame quello che voglio fare io si chiama "relog" in pratica nel gioco chiamato OGame a una certa ora ti sloggano e poi devi rientrare

    siccome ho un retro identico volevo farlo identico in ogni particolare ;)

    cmq grazie :)

    A quel punto si presume che l'utente sia già connesso al sito.

    Basta archiviare nel database la data in cui dovrebbe avvenire questo slog, se l'utente è connesso da prima della data X e refresha precisamente nell'istante X o dopo avvii una routine che gli smonta la sessione.

    Il cron è utile per fare le cose più precise e meno dispendiose in termini di risorse (poichè ti risparmi una query sql per ogni utente connesso in quel momento avviando un unica procedura all'ora X) ma non è essenziale.

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,691

    Predefinito

    Allora potresti fare una cosa: salvi l'ora in cui l'utente ha fatto il login (ad esempio, puoi salvare il timestamp in $_SESSION['time_login']). Poi fai un controllo del tipo:

    Codice PHP:
    if(date('h',$_SESSION['time_login']) < date('h'))
    header("Location: game.php?page=logout");
    ..Oppure, più semplicemente (e direi è anche una soluzione migliore), potresti impostare la scadenza delle sessioni al momento del login, (penso) tramite la session_cache_expire()*, calcolando i minuti che rimangono per le 13:00...

    * Non l'ho mai usata, quindi non so.... È da provare :-)

    Ciao!
    Ultima modifica di alemoppo : 10-01-2012 alle ore 14.18.42

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •