PDA

View Full Version : [PHP] - Come mantenere una connessione durante la navigazione


Pegasus84
16-12-2010, 17:26
Salve ragazzi!

Sono alle prese con un imprevisto mentre smanettavo col PHP... Mi sono accorto che una volta effettuato il login presso un sito, la connessione al server MySQL si chiude automaticamente ogni volta che termina il pezzo di codice PHP integrato in quello HTML... Come posso fare? Qualche suggerimento per mantenere la connessione in tutta la sessione di navigazione, oppure c'è qualche classe di PHP5 che dispone già di qualche funzione che mi legge una connessione se è in stato attivo o meno? Mi sembra che aprire e chiudere una connessione al server MySQL ogni volta che si deve intervenire nel database sia uno spreco inutile che rallenta l'esecuzione...

Suggerimenti?

Ludo237
16-12-2010, 18:12
Salve ragazzi!

Sono alle prese con un imprevisto mentre smanettavo col PHP... Mi sono accorto che una volta effettuato il login presso un sito, la connessione al server MySQL si chiude automaticamente ogni volta che termina il pezzo di codice PHP integrato in quello HTML... Come posso fare? Qualche suggerimento per mantenere la connessione in tutta la sessione di navigazione, oppure c'è qualche classe di PHP5 che dispone già di qualche funzione che mi legge una connessione se è in stato attivo o meno? Mi sembra che aprire e chiudere una connessione al server MySQL ogni volta che si deve intervenire nel database sia uno spreco inutile che rallenta l'esecuzione...

Suggerimenti?

$_SESSION[]

http://www.php.net/manual/en/book.session.php

http://www.php.net/manual/en/session.examples.basic.php

inserisci nella sessione le variabili di login , poi dopo ogni pagina controlli quelle variabili

kk3z
17-12-2010, 11:28
no, devi usare mysql_pconnect (http://php.net/manual/en/function.mysql-pconnect.php)

Supdario
17-12-2010, 11:56
Direi che sicuramente è meglio aprire e chiudere la connessione ogni volta che si deve accedere al database, piuttosto che lasciarla attiva ed intasare il server. :asd:

Nel metodo più sensato, apri la pagina, la connessione al server MySQL si apre, fa quello che deve fare, e si chiude. L'utente vede la pagina e finisce lì. Se passa ad un'altra pagina lo stesso si ripete.

Metodo connessione persistente: l'utente naviga nel tuo sito, immaginiamo che il timeout della connessione sia di un'ora. Apre la pagina, la carica, e la connessione rimane attiva. Magari nel tuo sito ci sono 100 visitatori, allora avrai 100 connessioni attive. Nell'arco di mezz'ora questi 100 visitatori se ne vanno, e ne arrivano altri 100: avrai 200 connessioni attive inutili, intasando il server.

Tant'è che la connessione persistente in molti server è disabilitata.

Jak696
17-12-2010, 12:12
come dice Supdario, le connessioni persistenti sono da evitare come la peste. A meno che tu non abbia esigenze particolarissime, ma non mi sembra questo il caso.