Dzień dobry.
Mam problem z logowaniem użytkowników z różnymi rolami.
Napisałam coś takiego, gdy już user zostanie znaleziony w bazie to zależnie od roli jaką posiada powinien zostać przekierowany do swojego panelu i powinna zostać utworzona dla niego sesja. Nie wiem gdzie mam błąd i dlaczego tak a nie inaczej. Proszę o pomoc i wyjaśnienie jak powinnam to zrobić.
EDIT1:
Problem polega na tym że użytkownik nie zostaje przekierowany. User zostaje ponownie przekierowany do formularza gdzie dostaje komunikat o błędnych danych logowania
<?php
require_once('db_connect.php');
function login($login, $haslo)
{
$db_connect = new Db_connect();
$haslo=sha1($haslo);
$zapytanie = "SELECT Login, Haslo FROM Users WHERE Login ='$login' and Haslo ='$haslo'";
if ( $ile > 0 )
{
$query = mysql_query ("Select Rola From Users Where Rola='$rola'") or
die (mysql_error('nie mogę wyciągnąć roli użytkownika')); if ($rola == 'administrator')
{
header ('Location: admin/admin_control_panel.php'); $_SESSION['rola'] = $rola;
}
else
if ($rola == 'kierownik')
{
header ('Location: boss/boss_control_panel.php'); $_SESSION['rola'] = $rola;
}
else
if ($rola == 'pracownik')
{
header ('Location: workman/workman_control_panel.php'); $_SESSION['rola'] = $rola;
}
else
$blad="Podano błędne dane logowania";
// kombinacja: identyfikator i hasło dostępu jest nieprawidłowa
header('Location: index.php?blad=1'); }
}
}
?>
Tutaj połączenie z bazą
<?php
class Db_connect
{
function __construct()
{
$host = 'localhost';
$user = 'root';
$password = 'xxx';
$db = 'Sklep';
mysql_query("Set collation_connection = utf8_polish_ci");
}
public function closing ()
{
$close =$this->db;
}?>
user wypełnia zwykły formularz
<form action="" method="post" accept-charset="utf-8"> if(isset($_GET['blad']))
{echo "<font color=red>Podano błędne dane !
</font>";}
?>
Ten post edytował agata 4.12.2009, 15:22:22