Buonasera ragazzi, ho un po' di domande da porgervi.
1. Come potrei realizzare "logicamente" un sistema di notifiche con php e mysql? Ovvero, tipo Facebook, che quando io faccio un post, mi arriva la notifica se qualcuno mette mi piace o lo commenta. Per caso devo fare tutto tramite database? Per esempio Utente1 commenta il post di Utente2 e quando preme invio automaticamente apro la tabella relativa a Utente2, una tabella creata apposta per lo storico delle notifiche, con anche un campo flag per vedere se è stata letta o meno, e vado a scrivere che Utente1 ha fatto una determinata cosa e che è una notifica da leggere. Poi quando Utente2 accede al sito, automaticamente il sito legge la tabella notifiche e mostra a questo tutte quelle ancora da leggere. Io l'ho pensata così ma credo che sia troppo lento e costoso fare una cosa del genere. Forse mi sto sbagliando?
2. Come sono strutturate le connessioni, tramite php, ad un database mysql? Esistono degli step fissi da seguire? Sto progettando un sito web e quando ho necessità di accedere al database, eseguo la pagina php, mi collego al database, prendo ciò che mi serve e lo chiudo. Però, già qui mi sono accorto che in questo modo sono soggetto a Sql injection, infatti, per proteggermi dal classico "OR 1=1", quando leggo dal login "username" e "password", prima di inserirlo nella query sql invoco il metodo "addslashes()" che dovrebbe aggiungere slash a eventuali simboli nei campi del form. Però, credo che vi siano degli accorgimenti da poter fare per proteggermi da questo genere di attacchi. Per esempio, devo connettermi al database tramite PDO? Posso aprire una volta solo il database e chiuderlo semplicemente quando l'utente si scollega? Queste domande, anche molto confuse, le faccio perché fino a qualche tempo fa credevo che, essendo php un linguaggio lato server, fosse impossibile risalire alle informazioni di qualsiasi file php sull'host del sito web. Mi hanno detto che invece posso accedere a queste informazioni e, nel caso riescano, se entrano nella pagina di php e leggono come io mi connetto al database per fare le query, ecco che sono fregato! O forse sbaglio anche qui?
3. Come rappresento i dati di un utente? Per esempio, se entro nel profilo di questo forum, mi da tutte informazioni relative al mio profilo, i miei post, ultimo accesso, frase, immagine e altre cose. Le metto sempre in un database sql? O conviene creare altre tipologie di database e gestirle tramite php? Ho la vaga impressione che abusare di sql e delle sue tabelle, soprattutto quando vi sono molte informazioni, sia troppo costoso dal punto di vista di elaborazione di un server.
4. Ultima domanda, che non centra nulla con php ma senza che apro un nuova discussione... Comunque, per la struttura di una pagina html, ho letto che bisogna usare i div e non le table anche perché Google penalizza quelli che usano le table. E' vero? Perché se lo è, evito qualsiasi utilizzo delle table!
Grazie a chiunque risponderà. Qualsiasi cosa chiedetemi!
1. Come potrei realizzare "logicamente" un sistema di notifiche con php e mysql? Ovvero, tipo Facebook, che quando io faccio un post, mi arriva la notifica se qualcuno mette mi piace o lo commenta. Per caso devo fare tutto tramite database? Per esempio Utente1 commenta il post di Utente2 e quando preme invio automaticamente apro la tabella relativa a Utente2, una tabella creata apposta per lo storico delle notifiche, con anche un campo flag per vedere se è stata letta o meno, e vado a scrivere che Utente1 ha fatto una determinata cosa e che è una notifica da leggere. Poi quando Utente2 accede al sito, automaticamente il sito legge la tabella notifiche e mostra a questo tutte quelle ancora da leggere. Io l'ho pensata così ma credo che sia troppo lento e costoso fare una cosa del genere. Forse mi sto sbagliando?
2. Come sono strutturate le connessioni, tramite php, ad un database mysql? Esistono degli step fissi da seguire? Sto progettando un sito web e quando ho necessità di accedere al database, eseguo la pagina php, mi collego al database, prendo ciò che mi serve e lo chiudo. Però, già qui mi sono accorto che in questo modo sono soggetto a Sql injection, infatti, per proteggermi dal classico "OR 1=1", quando leggo dal login "username" e "password", prima di inserirlo nella query sql invoco il metodo "addslashes()" che dovrebbe aggiungere slash a eventuali simboli nei campi del form. Però, credo che vi siano degli accorgimenti da poter fare per proteggermi da questo genere di attacchi. Per esempio, devo connettermi al database tramite PDO? Posso aprire una volta solo il database e chiuderlo semplicemente quando l'utente si scollega? Queste domande, anche molto confuse, le faccio perché fino a qualche tempo fa credevo che, essendo php un linguaggio lato server, fosse impossibile risalire alle informazioni di qualsiasi file php sull'host del sito web. Mi hanno detto che invece posso accedere a queste informazioni e, nel caso riescano, se entrano nella pagina di php e leggono come io mi connetto al database per fare le query, ecco che sono fregato! O forse sbaglio anche qui?
3. Come rappresento i dati di un utente? Per esempio, se entro nel profilo di questo forum, mi da tutte informazioni relative al mio profilo, i miei post, ultimo accesso, frase, immagine e altre cose. Le metto sempre in un database sql? O conviene creare altre tipologie di database e gestirle tramite php? Ho la vaga impressione che abusare di sql e delle sue tabelle, soprattutto quando vi sono molte informazioni, sia troppo costoso dal punto di vista di elaborazione di un server.
4. Ultima domanda, che non centra nulla con php ma senza che apro un nuova discussione... Comunque, per la struttura di una pagina html, ho letto che bisogna usare i div e non le table anche perché Google penalizza quelli che usano le table. E' vero? Perché se lo è, evito qualsiasi utilizzo delle table!
Grazie a chiunque risponderà. Qualsiasi cosa chiedetemi!
Ultima modifica: