PDA

View Full Version : [Javascript]Salvare dati in un database


Mattyfog
04-12-2010, 21:02
Credo di non essere l'unico ad avere avuto questo problema ma su internet non ho trovato nulla.
Il problema nasce dal fatto che, essendo lato client, javascript non può accedere a un database mysql.
Dunque io ho un menu che può essere modicato in tempo reale grazie a semplici script javascript. Il punto è che io vorrei che poi il menu venisse salvato in un database senza che l'utente clicchi da nessuna parte su un generico bottone "salva". Quindi vorrei che in tempo reale le modifiche apportate al menu vengano salvate.
Come posso fare? Ah, se è una cosa difficile evito e risolvo con il classico pulsante "salva" passando le informazioni con un POST.
Grazie!

MEMon
04-12-2010, 22:45
Credo di non essere l'unico ad avere avuto questo problema ma su internet non ho trovato nulla.
Il problema nasce dal fatto che, essendo lato client, javascript non può accedere a un database mysql.
Dunque io ho un menu che può essere modicato in tempo reale grazie a semplici script javascript. Il punto è che io vorrei che poi il menu venisse salvato in un database senza che l'utente clicchi da nessuna parte su un generico bottone "salva". Quindi vorrei che in tempo reale le modifiche apportate al menu vengano salvate.
Come posso fare? Ah, se è una cosa difficile evito e risolvo con il classico pulsante "salva" passando le informazioni con un POST.
Grazie!

Devi usare ajax che chiama la pagina che chiameresti <<con il classico pulsante "salva" passando le informazioni con un POST>>

dojolab
05-12-2010, 09:08
Devi usare ajax che chiama la pagina che chiameresti <<con il classico pulsante "salva" passando le informazioni con un POST>>

Esatto, se usi JQuery puoi usare il metodo $.post() che trovi nella documentazione, niente di più semplice (5 minuti di lavoro :)).

Mattyfog
05-12-2010, 12:57
Parlate di questo http://www.w3schools.com/PHP/php_ajax_database.asp ?
In pratica il codice javascript "apre" una pagina php passandogli i parametri con un get, giusto?
Ma è sicuro come metodo? Non potrebbe succedere che chiuqneu poi possa inserire dati nel database?

Mattyfog
05-12-2010, 13:01
Waaaaaa! Jquery pare una figata :)
Dicevate questo http://api.jquery.com/jQuery.post/ ?
Ma la sicurezza? Mi lascia perplesso la cosa...

MEMon
05-12-2010, 13:02
Waaaaaa! Jquery pare una figata :)
Dicevate questo http://api.jquery.com/jQuery.post/ ?
Ma la sicurezza? Mi lascia perplesso la cosa...

Cosa ti preoccupa esattamente? E' sicuro quanto un form con action=POST

Mattyfog
05-12-2010, 15:27
Non è che poi chiuque potrebbe inserire dati nel mio database?
In teoria il menu può essere modificato solo dall'area admin però non è che chiuqnue con chiamate con $.post potrebbe modificarlo?

MEMon
05-12-2010, 15:43
Quello dipende da che controlli fai nella pagina php che chiami.
Sarebbe la stessa cosa che mettere un form con il pulsante salva, la sicurezza è la stessa, e dipende dalla pagina lato server che chiami.

Mattyfog
05-12-2010, 17:40
Non credo sarebbe la stessa cosa. Infatti se usassi una form, quella form sarebbe accessibile solo dopo essersi loggati nell'area admin. Invece così facendo dovrei richiamare una pagina accessibile a tutti e quindi come posso sapere se è l'admin o un hacker a modificare il menu?
Come posso risolvere?

MEMon
05-12-2010, 18:14
Non credo sarebbe la stessa cosa. Infatti se usassi una form, quella form sarebbe accessibile solo dopo essersi loggati nell'area admin. Invece così facendo dovrei richiamare una pagina accessibile a tutti e quindi come posso sapere se è l'admin o un hacker a modificare il menu?
Come posso risolvere?
Non è vero, basta che anche nella pagina che chiami fai il controllo della sessione.
Tra l'altro non centra nulla dove metti il form, se so quel'è la pagina che chiami, e in quella pagina non fai controlli, non hai nessuna sicurezza.

Quindi tra il form, o ajax non c'è nessuna differenza.

Mattyfog
05-12-2010, 19:21
Beh richiamo la stessa pagina nel pannello admin ;)
Comunque ho capito: pensavo che siccome è la pagina a richiare un'altra pagina non fosse possibile controllare la sessione, invece a quanto dici tu la sessione viene "mantenuta".
Ora provo ;)

dojolab
05-12-2010, 19:42
Non è vero, basta che anche nella pagina che chiami fai il controllo della sessione.
Tra l'altro non centra nulla dove metti il form, se so quel'è la pagina che chiami, e in quella pagina non fai controlli, non hai nessuna sicurezza.

Quindi tra il form, o ajax non c'è nessuna differenza.

Esatto, si presuppone che il controllo tu lo faccia PRIMA di inserire i dati nel DB, ancora prima di processare i dati in POST, nel tuo file .php.

Sinceramente come dice Memon, non cambia niente, assolutamente niente.