Witam! Mam taki kod logowania:
<?php
$uzytkownicy = array(1
=> array('login' => 'admin', 'haslo' => sha1
('admin')), array('login' => 'user1', 'haslo' => sha1
('ddd')), array('login' => 'user2', 'haslo' => sha1
('fff')) );
function czyIstnieje($login, $haslo)
{
$haslo = sha1($haslo);
foreach($uzytkownicy as $id => $dane)
{
if($dane['login'] == $login && $dane['haslo'] ==
$haslo)
{
// O, jest ktos taki - zwroc jego ID
return $id;
}
}
// Jeżeli doszedłeś a tutaj, to takiego użytkownika nie ma
return false;
} // end czyIstnieje();
// Wlasciwy skrypt
if(!isset($_SESSION['uzytkownik'])) {
// Sesja się zaczyna, wiec inicjujemy użytkownika
anonimowego
$_SESSION['uzytkownik'] = 0;
}
if($_SESSION['uzytkownik'] > 0)
{
// Ktos jest zalogowany
echo 'Witaj, '.$uzytkownicy[$_SESSION['uzytkownik']]
['login'].' na naszej stronie!';
}
else
{
// Niezalogowany
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(($id = czyIstnieje($_POST['login'], $_POST
['haslo'])) !== false)
{
// Logujemy uzytkownika, wpisal
poprawne dane
$_SESSION['uzytkownik'] = $id;
echo 'Dziekujemy, zostales
zalogowany! <a href="index.php">Dalej</a>';
}
else
{
echo 'Podales nieprawidlowe dane,
zegnaj! <a href="index.php">Dalej</a>';
}
}
else
{
echo '<form method="post" action="index.php"> Zaloguj sie: <input type="text"
name="login"/>
<input type="password" name="haslo"/>
<input type="submit"
value="OK"/></form>';
}
}
if (!isset($_SESSION['inicjuj'])) {
$_SESSION['inicjuj'] = true;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}
if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
{
die('Proba przejecia sesji udaremniona!'); }
?>
Mam pytanie: jak zrobić, aby jeśli zaloguje się user1 lub user2 to i tak do tej strony nie będzie miał dostępu (tylko admin)?
Taki kod nie działa:
<?php
if (isset($_SESSION['uzytkownik']) && ($_SESSION['uzytkownik']=='admin') ) {
}
else
{
echo "Nie jesteś adminem! Narqa ;)"; }
?>
Proszę o szybką odpowiedź, dzięki.
Ten post edytował ReBeLs513 12.12.2010, 14:49:44