Kod
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// połączenie z mysql
mysql_connect('localhost', 'xxxxx', 'xxxxx')
or die('Nieudane polaczenie z baza danych...');
// wybór bazy danych
mysql_select_db('xxxx')
or die('Nie udalo sie wybrac bazy danych...');
// nagłówek
echo '<center><h2>Logowanie</h2></center>';
// sprawdzamy czy user jest już zalogowany
if($_SESSION['logged']) echo 'Już jestes zalogowany!';
else
{
// tworzymy prosty formularz
echo '<center><form action="index.php" method="POST">
Nick: <br />
<input type="text" name="nick"><br />
Hasło: <br />
<input type="password" name="pass"><br />
<input type="submit" name="ok" value="Zaloguj">
</form></center>';
// jeśli zostanie naciśnięty przycisk "Zaloguj"
if(isset($_POST['ok']))
{
$nick = trim($_POST['nick']);
$pass = trim($_POST['pass']);
// sprawdzamy czy wszystkie dane zostały podane
if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
// jeśli tak...
else
{
// filtrujemy dane
$nick = strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick)));
$pass = strip_tags( mysql_real_escape_string( HTMLSpecialChars($pass)));
// kodujemy hasło
$pass = md5($pass);
// sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
$result = mysql_query ("SELECT * FROM 'players' WHERE 'nick' = '{$nick}' AND 'password' ='{$pass}'");
// jeśli nie istnieje
if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
// jeśli tak...
else
{
// dodajemy wynik zapytania do tablicy
$row = mysql_fetch_array($result);
// ustawianie sesji że użytkownik jest zalogowany
$_SESSION['logged'] = true;
// dodawanie do sesji id użytkownika, login oraz datę rejestracji
$_SESSION['nick'] = $row['nick'];
// wyświetlenie komunikatu oznaczającego poprawne logowanie
echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na <a href="index.php">stronę główna</a>';
}
}
}
}
// rozłączenie z bazą danych
mysql_close();
// koniec buforowania
ob_end_flush();
?>
Tylko teraz gdy wpisuję poprawny login i hasło piszę że są niepoprawne dane. W bazie mam tak w tabeli players:
Nick Password
Test 6F56E9B0A9ADE2FEBFC78EC7370EA165
Nie wczytuje danych. Pomoże ktoś to poprawić?