refresh php con dati mysql

Salve,

sono alle prime armi con la programmazione in Php e vorrei fare il refresh di una pagina che

contiene dati mysql che vengono aggiornati esternamente ( sono orari di treni ). C'è qualcuno

che ha qualche dritta semplice ?

Grazie a tutti

inviato 5 anni fa
emmeci
Cosa intendi per refresh? Voi che la pagina si ricarichi da sola dopo un certo intervallo di tempo?Gianni Tomasicchio 5 anni fa
Te la darei la risposta peré è semplice ma questo forum se metto più di due righe di script mi dice che è spam :-(Marco Grazia 5 anni fa
X 0 X

Vedi il problema è che tu non ci dai alcun dato sulla tua applicazione, io ho pensato semplicemente che comunque quando viene richiamata la pagina questa prenda i dati da un database attraverso un'interrogazione automatica.

Chiamo la pagina, il software interroga il database e mi vengono presentati i dati, se riavvio la pagina ogni tot secondi il sisteman on fa altro che ripetere l'operazione di recupero dei dati e loro presentazione. Se questi sono cambiati li vedo modificati, se no vedo quelli di prima.

E' un sistema semplice ma efficace, ovviamente ha le sue controindicazioni, per esempio non tiene conto della cache del browser, su browser antiquati come la serie Microsoft la cache può essere un problema anche se ovviabile, se non è presente il javascript è pure ovviabile ma insomma nel complesso è la via più semplice al problema.

Il problema però è che non si conosce quello che giustamente Andra chiama backend, cioè non sappiamo se il tuo database è interrogato ad ogni avvio di pagina o se da un'azione dell'utente come ad esempio la pressione in un bottone.

Se vuoi del codice te lo do volentieri, il problema è che il forum me lo prende come spam e ogni volta che ho provato a inserire codice mi ha bloccato l'invio del messaggio, quindi ti dico solo di cercartelo con Google, non è difficile se cerchi con "refresh javascript" oppure segui questo link: http://www.tecnomeme.it/risorse_web/javascript-refresh-reload

risposto 5 anni fa
Marco Grazia
X 1 X X

Da dove iniziare

Inizia con il separare bene le responsabilità tra frontend e backend per avere chiaro dove inizia e dove finisce il ruolo delle tecnologie che hai a disposizione (in questo caso PHP), tenendo conto che tutto ciò che è frontend in un'applicazione web (io considero frontend la pagina HTML e il codice Javascript che la gestisce) può -- e dovrebbe IMHO -- essere considerata un'altra applicazione che ha bisogno di accedere ai dati del tuo backend via HTTP.

ll ruolo di PHP in questo genere di situazioni è quello di essere l'interfaccia verso i dati presenti sul tuo database (backend) mentre è responsabilità di Javascript sul lato client (frontend) quella di interrogare la tua interfaccia remota per i dati e aggiornare la rappresentazione (pagina/DOM HTML).

Cosa è necessario

Pe ottenere nel frontend dati dal backend è necessario utilizzare una richiesta HTTP asincrona. Per questo ci sono i metodi di due eccezionali toolkit: dojo.xhrGet o jQuery.get. Leggendo la documentazione capirai come recuperare e utilizzare i dati di ritorno dal backend (XML e JSON sono i formati di interscambio più comunemente utilizzati) per manipolare il DOM della pagina e aggiornare la presentazione.

A livello di backend (quando l'accesso ai dati è pubblico, e quindi non richiede alcuno schema di autenticazione) puoi semplicemente creare uno script (non necessariamente RESTful, anche perché gran parte delle interfacce definite REST in realtà non lo sono) oppure seguire le Best Current Practices e implementare un server XML-RPC o JSON-RPC, cosa che lo Zend Framework rende incredibilmente semplice.

In particolare con i componenti Zend_XmlRpc_Server e Zend_Json_Server puoi creare degli oggetti PHP da utilizzare con chiamate remote (POST) che vengono semplificate dal Dojo Toolkit con dojo.rpc.

Autenticare le richieste

Se hai bisogno di poter autenticare le richieste devi usare oAuth, anche qui lo Zend Framework offre Zend_oAuth. Utilizzando oAuth puoi anche aprire le tue API a terze-parti fornendo l'autorizzazione ad accedere ai tuoi dati (immagina come le App di Facebook scambiano dati da/verso la piattaforma, oppure l'integrazione di Google Maps all'interno di una pagina HTML).

RealTime?

Da questo punto di vista, ovvero se avere aggiornamenti realtime (a là Facebook) appena i dati vengono "inseriti nel database" è una necessità indispensabile, sarà probabilmente necessario rivedere attentamente l'applicazione e iniziare a pensare all'integrazione di un server Bayeux che gestisca le connessioni (multiple) ad ogni client che utilizza il frontend e per l'invio dei dati in streaming o push verso di loro ogni qual volta il backend lo richiede.

Per Concludere

Questa è solo una risposta alla tua domanda, non la soluzione (in PHP) del tuo problema.

Dovresti avere informazioni a sufficienza per farti un'idea del lavoro che c'è da fare per ottenere quello che vuoi, se hai bisogno di suggerimenti su come iniziare a tradurre questi concetti in codice (che dovrai comunque scrivere prima tu :P) noi siamo qui per rispondere alle domande e chiarire i tuoi dubbi!

- Tom

risposto 5 anni fa
Andrea Turso
Andrea Turso
86
modificato 5 anni fa
Grazie, un pò complicato per me, ma mi metto subito a lavoro.emmeci 5 anni fa
X 1 X

Se ho capito bene, ma potrei sbagliarmi, tu intendi dire che ogni qualvolta qualcuno inserisce una modifica all'interno del database la pagina corrispondente che legge i dati deve riaggiornarsi.

Se questo è il problema la soluzione è un po' complessa ma non impossibile, in pratica quando hai premuto invio dopo aver scritto le modifiche nel form, il programma inserisce le modifiche nel database e se tutto è andato a buon fine, scrive un cookie di sessione con un valore predefinito che sta per "aggiorna la pagina".

La pagina che mostra i dati ogni tot tempo deve leggere quel cookie e verificarne il valore, se dice di aggornare allora si aggiorna.

In realtà tutto ciò mi sembra alquanto complesso e inutile, credo che un semplice refresh a tempo della pagina che mostra i dati sia sufficiente, ad esempio ogni 20/30 secondi. Per questo nelle stazioni ogni tanto avviene un refresh nei monitor.

M.

PS questa pagina è stata presa più volte come spam... non se pole.

risposto 5 anni fa
Marco Grazia
Grazie per la risposta, ma ho provato con il refresh ma la sintassi nel file mi risulta difficile. Puoi dirmi dove trovare esempi oppure darmi tu le indicazioni ? Thanksemmeci 5 anni fa
Grazie, ho risolto con il refresh. Buona giornataemmeci 5 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda