Una sessione è qualcosa che usi per non far inserire la password ad ogni richiesta. Si archiviano tutti i dati necessari all'utente (ad es. È il login, con quale username, ecc.) Sul server in una sorta di tabella di ricerca. Quindi si passa l'ID necessario per visualizzare le informazioni all'utente, in modo che possa utilizzarlo per l'autenticazione senza password in futuro.
Ci sono molti modi per implementarlo. Tutte le implementazioni richiedono una tabella di ricerca (per memorizzare i dati in), un generatore di ID sessione casuale e un cookie o un altro modo per passare l'ID tra l'utente e il client.
PHP viene fornito con un'implementazione pronta all'uso. Se usi le funzioni di sessione PHP PHP si occuperà di generare l'ID, l'impostazione e la lettura dei cookie, e cercare i dati della sessione (che PHP salva nei file sul disco) per te. Non devi preoccuparti di queste cose.
Ovviamente potresti scrivere la tua implementazione, usando un database come tabella di ricerca. Tuttavia, ci sono molte cose complicate sull'implementazione e, a meno che tu non sappia cosa stai facendo, è facile commettere errori impercettibili che renderanno il tuo sistema insicuro. Pertanto ti consiglio di andare con la soluzione che PHP ti ha già fornito.
Infine, non è necessario utilizzare entrambe le sessioni PHP e un database solo per verificare che l'utente abbia effettuato l'accesso. Uno è sufficiente e aggiungerne un altro non ti dà alcun vantaggio in termini di sicurezza. (Potresti, ovviamente, utilizzare il database per cercare informazioni sull'utente che ha effettuato l'accesso, come nome utente ed e-mail, ma è un'altra questione.)