Witam,
Nie znam się dobrze na php, więc nie atakujcie mnie jak coś jest nie tak.
Zobaczcie czy ten skrypcik logowania z zastosowaniem sesji jest sensowny i co najważniejsze - bezpieczny.
Nie zwracajcie uwagi na to, że dane użytkownika są pobierane z tabeli bazy forum phpbb, to tylko przykład.
Najlepiej jakby ktoś zarzucił to sobie na localhosta i posprawdzał dokładnie.
Z góry dzięki.
<?
include('baza.php');
pol_mysql();
$user_ip = $_SERVER['REMOTE_ADDR'];
$sesja_anim = md5($user_ip.$time); #sesja użytkownika anonimowego $sesja_uzytkownika = md5($user.$pass.$time.$user_ip);
if(!isset($_SESSION['uzytkownik'])) {
$_SESSION['uzytkownik'] = $sesja_anim; #inicjuje sesję użytkownika anonimowego
echo "została zinicjowana sesja użytkownika anonimowego<br>"; }
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$login = $_POST['login'];
$haslo = md5($_POST['password']);
if($_POST['login'] and !$_POST['password'])
{
echo "Musisz podać hasło!"; }
if(!$_POST['login'] and $_POST['password'])
{
echo "Musisz podać login!"; }
if(!$_POST['login'] and !$_POST['password'])
{
echo "Nie wypełniono pól!"; }
if($_POST['login'] and $_POST['password'])
{
$pobierz_usera = mysql_query("select username,user_password from phpbb_users where `username`='$login'"); {
$user = $napisz_usera[0];
$pass = $napisz_usera[1];
}
if($login != $user)
{
echo "Nie ma takiego użytkownika"; }
else
{
if($pass == $haslo)
{
$_SESSION['uzytkownik'] = $sesja_uzytkownika;
$sesja_anim = "";
echo "Zalogowany jako $user <br> <a href=logowanie.php?akcja=wyloguj>Wyloguj</a>"; }
else
{
echo "podano złe hasło!"; }
}
}
}
if($_SESSION['uzytkownik'] == $sesja_anim)
{
echo "<form action=logowanie.php method=post> <input type=text name=login><br>
<input type=text name=password><br>
<input type=submit value=\"Zaloguj\">
</form>
";
}
if($akcja == 'wyloguj')
{
$sesja_uzytkownika = "";
$_SESSION['uzytkownik'] = $sesja_anim;
echo "Zostałeś wylogowany<br><a href=logowanie.php>Wróć</a>"; }
?>
Ten post edytował MGreg 26.03.2008, 16:21:56