ciao,
Spiego subito il problema, ho una pagina di login che apre una sessione, se i dati sono esatti viene richiamata una determinata pagina utente che ho in DB. Ora,io volevo fare in modo che ogni utente acquisisse i permessi per vedere solo la sua pagina personale e non quella di tutti. Spero di essermi spiegato.In pratica:
Login php:
Codice PHP:
<?php
session_start();
function loginform(){
echo "<form action='' method='POST'>
Username: <input type='text' name='username'>
Password: <input type='text' name='password'>
<input type='submit' name='login' value='Login'>
</form>
";
}
function logoutform(){
echo "<form action='' method='POST'>
<input type='submit' name='Invia' value='Logout'>
</form>
";
}
function login($username, $password){
$pass = md5($password);
$con = mysql_connect('localhost', 'root', '****') or die (mysql_error());
mysql_select_db('my_db', $con) or die (mysql_error());
$result = mysql_query(" SELECT * FROM user WHERE username='$username' AND password='$pass' ") or die (mysql_error);
$result_array = mysql_fetch_array($result);
$count = mysql_num_rows($result);
if($count==1){
$_SESSION['login']=$username;
$_SESSION['pagina']= $result_array['pagina'];
echo "Login avvenuto";
echo"<script type='text/javascript'>";
echo "setTimeout(\"location.href='{$result_array['pagina']}';\", 1000);";
echo"</script>";
}
else{
echo "Login errato. ";
}
}
function logout(){
session_destroy();
}
if(isset($_POST['login'])){
echo "sei loggato.";
logoutform();
}
else{
echo "fai il login" ;
loginform();
}
if($_POST['login']){
echo "login in corso..";
login($_POST['username'], $_POST['password']);
}
elseif($_POST['logout']){
echo "Stai facendo il logout ";
logout();
}
?>
Questo è il controllo:
Codice PHP:
<?php
session_start();
if (!isset($_SESSION['login']) && !isset($_SESSION['pagina'])){
exit( "Accesso negato. Devi fare il <a href='login.php'>login<a>.");
}
?>
Funziona ma solo in parte. La sessione si apre ma con i permessi di un utente posso vedere le pagine anche degli altri.. non mi spiego il perchè.
Consigli,indicazioni o altro?Vi ringrazio.