Dare l'accesso ad una pagina solo ad un utente specifico

di il
3 risposte

Dare l'accesso ad una pagina solo ad un utente specifico

Buongiorno, ho bisogno di un piccolo aiuto.
Utilizzo il mysql di altervista e ho già creato un database che registra solo username e password.
È un semplice sito dove ci sono vari dossier sugli utenti registrati e ogni utente che accede può vedere i dossier di tutti gli altri utenti.
Devo fare in modo che l'utente che accede e che è collegato all'ID 1 possa visualizzare solo la sua pagina e cosi via anche per gli altri.

In questo codice ho applicato il "2" ovvero che solo l'utente con ID 2 può vedere tale pagina ma sfortunatamente non funziona.
<?php
    
    session_start();
    
    $_SESSION['2'] = "2"; //THIS IS SET DURING LOGIN!
    
    if(!isset($_SESSION['2'])) { die("Not logged in!"); };
    
    $requested_user = $_GET['id'];
    
    $db = new PDO('mysql:host=localhost;dbname=my_pfa;charset=utf8', 'root', 'MyPassword');
    
    try {
        
        $stmt = $db->prepare("SELECT * FROM c_userpage WHERE id = ?");
        
        $stmt->execute(array($_SESSION['2']));
        
        $mydata = $stmt->fetch();
        
    } catch (Exception $e) {
        
        //error with mysql
        die();
        
    }
?>
ho provato anche questa stringa ma non funziona
<?php
$_SESSION['user_id'] = $page_id;
?>

3 Risposte

  • Re: Dare l'accesso ad una pagina solo ad un utente specifico

    Ciao, non so se ho capito bene
    qui valorizzi $_SESSION[2]
    $_SESSION['2'] = "2"; //THIS IS SET DURING LOGIN!

    Questo controllo non sarà mai verificato perché $_SESSION lo hai valorizzato poco sopra
    if( !isset($_SESSION['2'] ) ) { die("Not logged in!"); };

    altra domanda
    $requested_user = $_GET['id']; quando lo usi?

    detto questo per l'utilizzo delle sessioni controlla che la tue pagine php non producano un output prima del dovuto
  • Re: Dare l'accesso ad una pagina solo ad un utente specifico

    Ciao grazie per la risposta ma ho trovato questa stringa che funziona secondo le mie esigenze
    if($_SESSION["id"]!=1) { header('Location: access_denied.html'); }
    quello che vorrei ora è che ID multipli possano leggere la stessa pagina, tipo così
    if($_SESSION["id"]!=1,2,3,4) { header('Location: access_denied.html'); }
    ma non funziona
  • Re: Dare l'accesso ad una pagina solo ad un utente specifico

    Quello che vorrei ora è che ID multipli possano leggere la stessa pagina, tipo così
    Nella pagina alla quale dovrebbero avere accesso più utenti crea un array con gli ID che dovrebbero aver accesso e poi controlla con un if statement se l’ID dell’utente è contenuto in quell’array. Se vuoi rendere il tutto dinamico allora assegna un ruolo agli utenti che devono aver accesso e prima di mostrare il contenuto controlla che l’utente abbia quel determinato ruolo
Devi accedere o registrarti per scrivere nel forum
3 risposte