Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Mysql + PHP: Update $valore-1 ad ogni giorno che passa
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • K
      kian User Attivo • ultima modifica di

      Mysql + PHP: Update $valore-1 ad ogni giorno che passa

      Ciao

      Sono nella fase finale dello sviluppo di un pannello Billing + Mailer + tanti altri servizietti che mi interessano. Adesso però proprio all'ultimo passo mi sono bloccato. Vengo al punto.

      Un cliente acquista un servizio con menu a tendina e può scegliere la durata del contratto
      [php]<select size="1" id="durata" name="durata">
      <option value="30">1 mese</option>
      <option value="90">3 mesi</option>
      <option value="180">6 mesi</option>
      <option value="270">9 mesi</option>
      <option value="360">12 mesi</option>
      </select>[/php]Come potete intuire al submit mi salvo la durata del contratto in giorni e considero tutti i mesi di 30 giorni. Il dato viene salvato nel campo durata della tabella servizi nel database (mysql).

      Ho già un mailer system che invia email ai clienti raccogliendo tutti i dettagli in base all'id cliente. Il punto è che devo sempre esserci io a premere "Invia". Vorrei automatizzare il tutto in questo modo.

      Pippo compra un servizio per 3 mesi (90 giorni). Il dato 90 viene salvato nel database
      [php]INSERT INTO servizi (durata) VALUE ($durata)[/php]A questo punto ogni giorno che passa il campo deve essere aggiornato automaticamente
      [php]UPDATE servizi SET durata=$durata-1[/php]
      Quando mancano 7, 3 e **1 **giorno alla fine del contratto partono le email che ho già preimpostate nel sistema.

      Come faccio a esprimere in php l'idea che ad ogni giorno che passa quel campo deve essere ridotto di 1?

      Grazie

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        thedarkita ModSenior • ultima modifica di

        Ciao Kian,

        Puoi mettere lo script in cron, facendo dcrementare ogni giorno il campo e nel caso manchino 7,3 o 1 giorno invii un email.
        Esistono numerosi servizi di cron gratuiti esterni che puoi usare, se non puoi farlo dal tuo server

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • K
          kian User Attivo • ultima modifica di

          Wow grazie mille... non solo mi hai risposto, mi hai aperto nuovi orizzonti hihi

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • K
            kian User Attivo • ultima modifica di

            Dunque direi che c'è un grosso problema

            giorgiotave.it/forum/php-mysql/41570-chicca-d-utilizzare-cron-senza-account-di-root.html

            Ho utilizzato questo metodo per sottrarre il valore 1 da un campo in una tabella del database. Per provarlo la prima volta ho impostato l'esecuzione dello script ogni 30 secondi. Quando ho visto che funzionava ho aggiunto i dettagli e messo tutto online. A questo punto mi sono reso conto che vengono letteralmente spammati ogni 30 secondi tutti i miei script per 2 volte!

            ⭕o⭕o

            Cancellare il php, eliminare gli script, fare die(), ignore_user_abort(FALSE), non c'è modo di fermare i 2 script! Ogni 30 secondi spammano in 2 scrivendo nel database. Anche se gli blocco la connessione al database, cambiando il nome del php che effettua la connessione, questi tornano a spammare appena la ripristino. Non ditemi che devo aspettare il riavvio del server :(): (sono shared hosting).

            Come termino questo dannato script? :mmm:

            Edit: sono riuscito a killare lo script creando una riga che lo faceva bloccare. Bhè vista questa esperienza non credo possa usare i cron. E' vero che vanno avanti in eterno ma nel momento in cui ti riavviano il server devi riavviare il cron manualmente e magari intanto hai anche perso dei giorni senza saperlo. Ci sono altri modi? Che so un getdate() 🙂

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              thedarkita ModSenior • ultima modifica di

              Ciao Kian,

              Quello è solo un metodo alternativo per utilizzare i cron, puoi usare servizi esterni come ti ho detto prima che si incaricano di avviare lo script in certi momenti precisi della giornata.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • K
                kian User Attivo • ultima modifica di

                Uhm se non c'è altro metodo potresti dirmi perchè non funziona?

                File spoiler.php
                [php] 01 * * * * /usr/local/bin/php wwwmiositoit/script.php[/php]Da questo file vado a richiamare script.php. Il problema è che prima di tutto non funziona (dovrebbe eseguire lo script ogni minuto) e in spoiler.php mi da errore di sintassi vicino a "*".

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Attento che le variabili globali (esempio $_SERVER) non esistono quando lo script è lanciato da cron, se lo script usa queste variabili hai problemi...

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • K
                    kian User Attivo • ultima modifica di

                    No, lo script fa un UPDATE nel database e niente altro

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      thedarkita ModSenior • ultima modifica di

                      Posta l'errore completo...

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • K
                        kian User Attivo • ultima modifica di

                        Parse error: syntax error, unexpected '*' in /web/htdocs/wwwmiositoit/home/cartella/spoiler.php on line 3Generato da questo
                        [php]<?
                        */1 * * * * /usr/lib/php /home/web/wwwmiositoit/cartella/automation_script.php
                        ?>[/php]P.S. Ovviamente nel link wwwmiositoit ci sono i due punti. Scrivo cosi perchè non posso inserire link attivo... è ora che mi faccio premium.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          thedarkita ModSenior • ultima modifica di

                          Poi postare la prima parte di codice del file spoiler.php?

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • K
                            kian User Attivo • ultima modifica di

                            Non c'è una prima parte. Questo è tutto quello che c'è in spoiler.php
                            [PHP] <?
                            */1 * * * * /usr/lib/php /home/web/wwwmiositoit/cartella/automation_script.php
                            ?> [/PHP]

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • T
                              thedarkita ModSenior • ultima modifica di

                              Vedi che quel codice dovrebbe servire per impsotare il CRON, il cron no si imposta da php, ma è una funziona che ti permette il server. Devi avere i permessi di impostare un cron sul tuo server tramite il pannello per poterlo creare, altrimenti devi usare servizi esterni

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • K
                                kian User Attivo • ultima modifica di

                                Eh ma purtroppo non ho accesso al demone (credo si chiami cosi) cron. Ma io mi domando... in tutti i cms o forum c'è la data e tutto il database si aggiorna in base alla variabile temporale. Che sistema utilizzano? Non certo il cron visto che spesso è bloccato dal provider.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • T
                                  thedarkita ModSenior • ultima modifica di

                                  Fanno un controllo su ogni pagina, di quando è stato lanciato lo script l'ultima volta, sistema che utilizza più risorse del server...

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • K
                                    kian User Attivo • ultima modifica di

                                    Si ma tale controllo è comunque automatico immagino. Per fare il controllo o qualcuno visualizza la pagina o automatizza la sua esecuzione. Questo automatismo è sempre cron o sbaglio?

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • T
                                      thedarkita ModSenior • ultima modifica di

                                      Viene fatto sulle pagine, quando un visitatore entra in una pagina del cms lo script esegue anche questo controllo

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • K
                                        kian User Attivo • ultima modifica di

                                        Quindi se non posso utilizzare cron (sto su Aruba e credo lo blocchi) o mi impegno ogni giorno a refreshare lo script o devo rinunciare. Giusto?

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • T
                                          thedarkita ModSenior • ultima modifica di

                                          Usi cron esterni... che si occupino loro di visitare una volta al giorno(o più volte) la tua pagina

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • K
                                            kian User Attivo • ultima modifica di

                                            Ne conosci qualcuno? Sai conosco cron da ieri 🙂

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti