<?php
if (isset($_POST['login'])) { $user_pass = md5($_POST['user_pass']); $user_name = preg_replace(array("/=/","/#/","/sORs/"), "", stripinput
($_POST['user_name']));
if(empty($_POST['user_name'])) { } elseif(empty($_POST['user_pass'])) { } elseif(!dbcount
("(id_uzytkownika)", "uzytkownicy", "nick_uzytkownika='".$user_name."' AND haslo_uzytkownika='".md5($user_pass)."'")) { echo "Nieprawidłowy login lub hasło"; } else {
$login = $_POST['user_name'];
}
}
?>
Po pierwsze nie 'pójdzie' Ci to, bo dwa razy hashujesz hasło.
Po drugie, zamiast tych wszystkich filtrów, daj:
$user_pass = mysql_real_escape_string($_POST['user_pass']);
$user_name = mysql_real_escape_string($_POST['user_name']);
oprócz tego, do sesji logowania dodaj
<?php
$_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR'];
?>
i sprawdzaj je przy każdej zabezpieczonej stronie. Uniemożliwi to przejęcie przez 'hackera' sesji (o ile nie ma tego samego IP co ofiara

).
Przepisany kod logowania:
<?php
if(!isset($_POST['user_pass']) || !isset($_POST['user_name'])) die("Musisz wypelnic wszystkie pola!");
if(!dbcount("(id_uzytkownika)", "uzytkownicy", "nick_uzytkownika=\"$user\" AND haslo_uzytkownika=\"$pass\""))
{
echo "Nie prawidlowa nazwa uzytkownika lub haslo"; }
else
{
$_SESSION['login'] = $user;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}
?>
Nawiasem, session_start() wstawia sie zawsze na poczatku pliku, inaczej Ci wywali bledy (przy E_ALL).
Pozdrawiam