[PHP] Algoritmo log in e out

Sarrio

Nuovo Utente
24 Set 2016
7
0
1
Salve a tutti.Utilizzando php, Secondo quale algoritmo posso far capire al mio sito internet che un utente abbia effettuato il log in anche dopo essersi spostato su un'altra pagina del mio sito? Come ad esempio avviene negli ecommerce, dove dopo aver effettuato il log in puoi navigare per tutto il sito senza perdere lo stato di log in? Scusate se la domanda è un po banale, ma non riesco a trovare soluzioni
 

webimage

Nuovo Utente
22 Gen 2014
12
1
3
Per ottenere quello che vuoi, ogni pagina del sito che il visitatore visita dopo aver fatto login, deve avere immediatamente all'inizio del codice il controllo del login
esempio tipo:
PHP:
<?php
session_start();
$_SESSION['username'] = 'quella che il visitatore ha nel tuo database';
$_SESSION['authuser'] = 1;
if ($_SESSION['authuser'] != 1){
    echo 'Spiacente; devi fare il login';
    exit();
?>
 
Ultima modifica di un moderatore:
  • Like
Reactions: Sarrio

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
26
PHP:
<?php
session_start();
$_SESSION['username'] = 'quella che il visitatore ha nel tuo database';
$_SESSION['authuser'] = 1;
if ($_SESSION['authuser'] != 1){
    echo 'Spiacente; devi fare il login';
    exit();
?>
Ciao, mi intrometto perché credo che il codice postato non sia una soluzione.
Riporto il codice commentato.
PHP:
<?php
session_start();
$_SESSION['username'] = 'quella che il visitatore ha nel tuo database'; // variabile inutilizzata
$_SESSION['authuser'] = 1;
if ($_SESSION['authuser'] != 1){ // la variabile di sessione 'authuser' è sempre uguale a 1 (riga precedente)
    echo 'Spiacente; devi fare il login'; // questo messaggio non compare mai
    exit();
?>
La variabile di sessione $_SESSION['authuser'] deve essere settata uguale a 1 solo e subito dopo che l'utente si è loggato. Successivamente, effettui il controllo di tale variabile in ogni pagina del sito.


POSSIBILE SOLUZIONE

Pagina di login

PHP:
$_SESSION['authuser'] = 0; // inizializzo la variabile a 0
if(utente si è loggato correttamente) {
    $_SESSION['authuser'] = 1; // setto uguale a 1 solo se il login va a buon fine
}
Ogni altra pagina
PHP:
if ($_SESSION['authuser'] != 1) { // se la variabile è diversa da 1, ossia se il login non è andato a buon fine o non è mai avvenuto
    echo 'Spiacente; devi fare il login';
    exit();
}
 
  • Like
Reactions: Sarrio