Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52

    eseguire script offline

    in pratica voglio fare uno script che quando clicco su un submit mi parte un operazione del tipo per ogni secondo che passa mi aumenta di 1 una variabile, il tutto ha una durata di 2 ore. Quindi:
    -clicco sul submit
    -comunico alla tabella la data/ora d'inizio esempio 04/08/2014 16:00:00
    -prendo il valore dalla tabella da aumentare esempio "Aumento"che ha un valore già di 7200
    -alle 16:00:01 "Aumento" sarà 7201, alle 16:00:02 sarà di 7202 e così via
    -dopo 2 ore ovvero alle 18:00:00 dovrò comunicare di cessare la script e "Aumento" avrà un valore pari a 14400

    Il mio problema è quello di far continuare lo script anche quando l'utente è offline o non si accede alla pagina. cioè clicco sul submit inizia lo script, poi esco dalla pagina e lo script deve continuare.

    Qualche idea?

  2. #2
    devi usare la funzione ignore_user_abort http://php.net/manual/en/function.ignore-user-abort.php che ti permette di far proseguire lo script anche dopo la chiusura del browser da parte dell'utente

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52
    riesco ad ottenere la data d'inizio, quella finale (che sarebbe la data d'inizio + 2h) li colloco sulla tabella, ma non riesco fare lo script, qualche spunto? devo anche integrare ignore_user_abort

  4. #4
    Quote Originariamente inviata da gpinodj Visualizza il messaggio
    riesco ad ottenere la data d'inizio, quella finale (che sarebbe la data d'inizio + 2h) li colloco sulla tabella, ma non riesco fare lo script, qualche spunto? devo anche integrare ignore_user_abort
    Posta la parte di script che hai che ti da problemi, altrimenti non sappiamo come aiutarti

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52
    Non so come far partire il ciclo usando i secondi come step, in pratica non so da dove iniziare, l'unica cosa che riesco a ottenere sono le date d'inizio e fine

  6. #6
    potresti fare un ciclo che si ripete per 7200 volte aumentando ogni volta di 1 il valore nel database e usare
    Codice PHP:
    sleep(1); 
    per separare un ciclo dall'altro anche se così facendo il tempo reale per ogni ciclo è 1 secondo + tempo esecuzione. Ti è proprio necessario aggiornarlo ogni secondo? Se ci indichi a cosa ti server magari si trova un'alternativa migliore

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52
    Non mi interessa aggiornarlo ogni secondo anche perché lo script deve continuare in automatico anche quando l'utente chiude la sessione o cambia pagina

  8. #8
    Quote Originariamente inviata da gpinodj Visualizza il messaggio
    -alle 16:00:01 "Aumento" sarà 7201, alle 16:00:02 sarà di 7202 e così via
    Qualche idea?
    Non hai detto scusa che ogni secondo devi aggiornare il valore nel database? Per farlo continuare basta che usi la funzione che ti ho indicato nell'altro messaggio e risolvi in un attimo il problema della chiusura del browser

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52
    si ma mi basta che si aggiorni il valore all'interno del database, ho provato come mi hai suggerito e devo dire che è quello che cercavo però c'è un piccolo problema cioè devo aspettare che termina lo script per poter navigare nel sito, in pratica per fare un'altra operazione devo aspettare 2 ore

  10. #10
    ma scusa con la funzione ignore_user_abort puoi anche chiudere il browser, come fai a non poter fare un altra azione sul sito? non puoi solo se tale altra azione è nella stessa pagina dello script perché avvieresti nuovamente lo script, non riesco a capire

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.