Sto costruendo un'applicazione di base e sto cercando di capire come posso passare le informazioni dell'utente da login.php a index.php. Ecco cosa ho ottenuto finora: ho una pagina di accesso che invia e autentica l'utente attraverso il database attraverso una classe utente. Successivamente, le proprietà dell'utente vengono impostate sui valori restituiti dal database. Da lì l'ID viene memorizzato in una sessione. Come potrei fare per accedere alle informazioni dell'utente da una pagina all'altra. Dovrei semplicemente creare un metodo di costruzione per interrogare il database con l'ID di sessione? È un approccio sicuro o valido? Un esempio potrebbe essere l'overflow dello stack. Il modo in cui puoi vedere il tuo nome utente nella parte superiore di ogni pagina.Come posso accedere alle informazioni dell'utente dopo aver effettuato l'accesso?
risposta
Suona come avete l'idea generale di sessione di movimentazione verso il basso. Quindi stai solo chiedendo quale metodo è sicuro, o ottimizzato o altro.
È normale archiviare il meno possibile le informazioni nella sessione o nel cookie in modo da non aprire gli utenti a semplici hack di pesca. Quindi idealmente questo significa che hai una tabella di sessione nel database che puoi incrociare il riferimento con l'ID di sessione.
Sì, si esegue una query su ogni caricamento di pagina, ma non si tratta di un sovraccarico su un sito standard. E non è sicuro a patto che tu correttamente disinfetti il tuo contributo. In questo modo non verrai abbattuto se l'utente manipola le informazioni sulla sessione.
In alternativa, se si utilizza solo l'ID utente e un nome utente, è possibile archiviarli in modo sicuro nella sessione ed evitare una query su ogni caricamento della pagina.Basta non impazzire per riempire dati di sessione o cookie con array estremamente lunghi pieni di informazioni usate in modo non comune.
+1; Buon punto sulla sicurezza dei dati di sessione –
@Kai ha risposto alla mia domanda a un T, grazie. – Scott
Nella pagina di login, utenti di memorizzare le informazioni da un database in una sessione, nelle altre pagine, è possibile chiamare direttamente loro
<?php
session_start();
$_SESSION['user'] = $username;
e dall'altro sito
<?php
session_start();
$_SESSION['user'];
tornando all'esempio dello stackoverflow, quando vai alla pagina del tuo profilo, ci sono molti dati lì: domande a cui hai risposto, domande che hai posto, ecc. Ovviamente non hai intenzione di memorizzare tutto ciò in una sessione , quindi come faresti a recuperare tutti i dati dal database con $ _SESSSION ['USER'] e id? – Scott
Suppongo che tu abbia un id principale per il tuo utente nella tua struttura sql, basta memorizzare id in $ _SESSION ['id'] e alcune informazioni di base che verranno utilizzate su ciascun sito (come nome utente e nome), se in seguito vuoi recuperare alcune query difficili e specifiche, basta ottenere id da $ _SESSION ['id'] e usarlo nella query sql –
I Sto costruendo un'applicazione di base e sto cercando di capire come posso passare le informazioni dell'utente da login.php a index.php
Un modo è quello di memorizzare i dati condivisi, come i dati di sessione PHP: http://www.tizag.com/phpT/phpsessions.php
<?php
session_start(); // start the session
$_SESSION['views'] = 1; // store session data
echo "Pageviews = ". $_SESSION['views']; //retrieve data
memorizzare i dati utente necessario per tutte le pagine. Puoi lasciare dati estesi nel DB, quindi non devi interrogare una tonnellata di dati in primo piano (come le statistiche esaurienti che vedresti nella pagina del profilo su SO).
Quindi non dovrai ri-interrogare i dati utente su ogni pagina. Basta recuperarlo dai dati di sessione.
Devo solo creare un metodo di costruzione per interrogare il database con l'ID di sessione? È un approccio sicuro o valido?
Se si utilizza lo stesso account DB per tutto, non c'è nulla di intrinsecamente meno sicuro sull'interrogazione della tabella utente. Non ti esporrerai più a rischi di qualsiasi altra query che stai già facendo.
Se sei preoccupato per la sicurezza quando accedi al DB, ti suggerisco di informarti su un problema concreto: prevenire SQL injection attacks.
- 1. Come eseguire una richiamata dopo aver effettuato #each?
- 2. twitter4j - accedere alle informazioni tweet dall'API Streaming
- 3. Ho perso le modifiche non modificate dopo aver effettuato un'unione
- 4. AutoCompleteTextView display 'android.database.sqlite.SQLiteCursor @' ... dopo aver effettuato la selezione
- 5. Come accedere alle informazioni del protocollo ARP tramite .NET?
- 6. Motore di Google Compute: bloccato dopo aver effettuato l'accesso a SSH alcune volte
- 7. Come disconnettere correttamente un'applicazione Web Java EE 6 dopo aver effettuato l'accesso
- 8. Le mie informazioni non vengono cancellate dopo aver disinstallato l'app
- 9. Come rendere accessibile una pagina solo dopo aver effettuato il login in PHP
- 10. Come reindirizzare alla homepage se l'utente accede alla pagina di accesso dopo aver effettuato l'accesso?
- 11. Impossibile cancellare un file anche dopo aver effettuato l'accesso come amministratore
- 12. Impossibile accedere dopo aver creato l'utente in SQL Server
- 13. FB auth.logout viene sollevato dopo aver effettuato l'accesso utilizzando "server-side-workflow" (OAuth 2.0)
- 14. Qt come accedere alle risorse
- 15. Come posso accedere alle variabili da un'altra classe?
- 16. Come posso accedere alle opzioni specifiche del server in Capistrano?
- 17. Continua a lavorare su un ramo Git dopo aver effettuato una richiesta pull
- 18. Informazioni sulle buone pratiche relative alle eccezioni
- 19. NoClassDefFoundError quando si utilizza Dagger 2 dopo aver effettuato l'accesso ad Android Studio 2.0
- 20. TYPE_KEYGUARD mantiene la modalità a schermo intero dopo aver effettuato una chiamata
- 21. Come posso chiudere il popup dopo aver postato su Facebook?
- 22. Ember.js: Come accedere alle istanze vista nested
- 23. accedere alle impostazioni NotificationListenerService Android
- 24. Come accedere alle viste nell'actionLayout nel menu
- 25. Accedere alle informazioni di percorso successivo all'interno canDeactivate guardia nel nuovo router angular2
- 26. javascript: come accedere alle proprietà statiche
- 27. Come accedere alle enumerazioni Java da Scala?
- 28. Come accedere alle risorse nel file JAR?
- 29. Passport.js: come accedere all'oggetto utente dopo l'autenticazione?
- 30. Come accedere agli elementi dell'array dopo aver usato string.split in Velocity?
Perché non memorizzare le informazioni utente nella sessione? –