Ciao a tutti, sono nuovo del forum, premetto che ho spulciato i post passati per cercare di capire come agire per il mio progetto, ma non sono riuscito a capire dove sbaglio, spero possiate aiutarmi, ho delle difficoltà a far funzionare un login multi utente, vi spiego il progetto che devo realizzare per l'università per gestire il sito di una scuola.
In pratica vengono gestiti 4 tipi di utenti: Admin, Professor, Student, Staff (personale ufficio), ho già realizzato le 4 sezioni dedicate ad ogni utente, dove l'admin gestisce le altre 3 categorie, i docenti che caricano le lezioni ed il materiale didattico, gli studenti che si limitano a visualizzare il materiale didattico e le lezioni inserite nel database dai docenti, e lo staff che visulizza alcune info sugli studenti come ad esempio il loro curriculum. Le sezioni li ho realizzate adesso devo solo dirigere ogni utente alla sua area riservata. Le mie difficoltà sono sul login multi utente, ho creato nella tabella categoria un campo nomecategoria che nel momento della registrazione scelgono gli utenti se è: docente, studente o staff, tranne per admin che se non erro dovrebbe andare predefinito altrimenti gli altri si potrebbero registrare pure come admin.
Quindi nel database abbiamo una tabella:
registrazione (idRegistrazione,email,username,password,cognome,nome)
una:
categoria(idCategoria,nomecategoria,ruolo,idReg)
dove ruolo è la mansione che hanno gli utenti tipo gli studenti: dottorando, laurenado ecc.
i docenti: ordinario, associato, direttore ecc.
lo staff: ufficio, manager personale ecc.
mentre idReg e la chiave esterna per registrazione(idRegistrazione)
poi altre tabelle che per il login e la registrazione non vengono coinvolte, ma usate nel momento delle manzioni delle varie categorie spiegato sopra.
Sin quì tutto ok, adesso per il login una volta che gli utenti inseriscono username e password vengono dirottati nella pagine specifiche con check.php che gestisce lo smistamento delle categorie, non capisco dove sbaglio perchè nonostante inserisco username e password corretti mi fà entrare, solo nella pagina per lo staff, la terza area, ecco il codice della pagina:
<?php
include ('DBConfig.php');
// preleviamo username e password per il login
$username = $_POST['username'];
$password = md5($_POST['password']);
// protezione MySQL injection
//$username = mysqli_real_escape_string($link, $_POST['username']);
//$password = mysqli_real_escape_string($link, $_POST['password']);
$sql="SELECT * FROM registrazione as r,categoria as c WHERE r.idRegistrazione=c.idReg and username='$username' and password='$password'";
$result = mysqli_query($link, $sql);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
$_SESSION['nomecategoria'] = $row['nomecategoria'];
if (isset($_SESSION['nomecategoria']) && $_SESSION['nomecategoria'] == "Professor")
{
header("location:dashboard_docente.php");
//$_SESSION['username'] = $username;
//$_SESSION['password'] = $password;
} //qui dovremmo generare l'interfaccia per il docente
elseif (isset($_SESSION['nomecategoria']) && $_SESSION['nomecategoria'] == "Student")
{
header("location:dashboard_studente.php");
//$_SESSION['username'] = $username;
//$_SESSION['password'] = $password;
}//qui dovremmo generare l'interfaccia per lo studente
elseif (isset($_SESSION['nomecategoria']) && $_SESSION['nomecategoria'] == "Staff")
{
header("location:dashboard_personale.php");
//$_SESSION['username'] = $username;
//$_SESSION['password'] = $password;
}//qui dovremmo generare l'interfaccia per lo staff
//Se l'username e la password non coincidono redirect to homepage with message=1
else {
echo '
<script language="javascript" type="text/javascript">
window.location.href="main.php?message=1";
</script>';
}
?>