Problema con login

di il
4 risposte

Problema con login

Salve, ho questo codice per una pagina di login , sempre quando inserisco i dati cioè username e password , clicco sul login e la pagina semplicemente fa il refresh e rimane soltanto aggiornata e non mi indirizza alla pagina area riservata.   grazie

<?php include 'database.php' ?>
<?php session_start(); ?>


<?php 

if(isset($_POST['login'])){



$username = $_POST['username'];
$password = $_POST['password'];

$username = mysqli_real_escape_string($connessione , $username);
$password = mysqli_real_escape_string($connessione , $password);

$query = "SELECT * FROM utenti WHERE username = '{$username}' ";

$trova_utente = mysqli_query($connessione , $query);

if(!$trova_utente){

    die('RICHIESTA FALLITA' . mysqli_error($connessione));
}

while($row = mysqli_fetch_array($trova_utente)){

$idUtente = $row['id'];
$nomeUtente = $row['username'];
$passUtente = $row['password'];
$ruoloUtente = $row['ruolo'];
}

if($username === $nomeUtente && $password === $passUtente){

    $_SESSION['utente'] = $nomeUtente;
    $_SESSION['password'] = $passUtente;
    $_SESSION['ruolo'] = $ruoloUtente;
    

    header('Location: area_riservata.php');
} else{
    header('Location: index.php');

} 
}


?>

4 Risposte

  • Re: Problema con login

    Qual è lo Status Code che restituisci nella risposta HTTP?

    Se vuoi fare un redirect, devi usare uno dei codici 3xx.

    Ciao! :)

  • Re: Problema con login

    Restituisce HTTP della pagina login, è come se io avessi soltanto fatto il refresh della pagina.

    i codici 3xx vanno inseriti all interno del codice ?

  • Re: Problema con login

    21/11/2022 - Basiliko ha scritto:


    Restituisce HTTP della pagina login, è come se io avessi soltanto fatto il refresh della pagina.

    Questo si era intuito. ;)

    21/11/2022 - Basiliko ha scritto:


    i codici 3xx vanno inseriti all interno del codice ?

    Certamente. Quando suggerisci un redirect, non devi restituire un 200 classico ma il codice che richiede il ridirezionamento desiderato (3xx).

    Vedi gli esempi indicati in questa pagina, dove si parla dell'argomento ed è presente anche un esempio illustrativo del tuo caso.

  • Re: Problema con login

    1) Oltre a ciò dal momento che la memorizzazione della sessione HTTP è FILE di default tramite COOKIE dopo il login sebbene ti ricarica (ancora da scoprire il perché) puoi comunque andare manualmente sul tuo browser se la richiesta è iniziata con protoccollo https https://www.domain.tld/area_riservata.php devi sostituire www.domain.tld con il tuo dominio reale e ovviamente se non usi https sostiusci con http

    Il Redirect ti occorre perché php crea il Set-Cookie te lo ritrovi nella risposta http (la pagina del login) e questo se il browser lo considera valido invia il Cookie alla prossima richiesta.

    2) Può darsi per brevità chiamiamola semplicemente login.php e la tua action inoltra i dati del modulo (form) alla medesima url (login.php) però esiste output dei tag html o testo prima che usi la funzione header. La regola se header il testo può essere solo dopo di esso ovviamente non è necessario output per un Location.

Devi accedere o registrarti per scrivere nel forum
4 risposte