Witam. Posiadam skrypt rejestracji, ktory dziala poprawnie oraz skrypt logowania, ktory nie dziala do konca. Skrypt sprawdza najpierw czy podany login istnieje w bazie, jesli nie istnieje to nie sprawdza nawet hasla. Jesli login zostal znaleziony w bazie, wowczas sprawdza haslo, jesli sa zgodne nastepuje zalogowanie uzytkownika - tak powinien dzialac skrypt. Rzeczywiscie potrafi rozpoznac czy w bazie jest taki login jaki poda uzytkownik, ale mimo wprowadzenia poprawnego hasla nie chce mi zalogowac, skrypt stwierdza poprawnosc loginu ale nieprawidlowe haslo. Moze ktos jest w stanie odnalesc blad w moim skrypcie?
Baza:
-- --------------------------------------------------------
--
-- Tworzymy Baze danych o nazwie BAZA
-- Baza danych: `baza`
--
CREATE DATABASE `baza` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;
USE `baza`;
--
-- --------------------------------------------------------
--
-- Tworzymy tabele Która będzie Składować konta nowych urzytkowników
-- Struktura tabeli dla `users`
--
CREATE TABLE `users` (
`user_id` tinyint(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_name` varchar(13) collate utf8_polish_ci NOT NULL,
`user_password` varchar(40) collate utf8_polish_ci NOT NULL,
`user_password_short` varchar(17) collate utf8_polish_ci NOT NULL,
`user_email` text collate utf8_polish_ci NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE= utf8_polish_ci AUTO_INCREMENT=3;
--
-- --------------------------------------------------------
Skrypt login.php
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
// start sesji
// połączenie z mysql
or
die('Nieudane polaczenie z baza danych...');
// wybór bazy danych
or
die('Nie udalo sie wybrac bazy danych...');mysql_query ("SET collation_connection = utf8_polish_ci"); // nagłówek
echo '<h2>Logowanie</h2>';
// sprawdzamy czy user jest już zalogowany
if($_SESSION['logged']) echo 'Już jestes zalogowany!'; else
{
// tworzymy prosty formularz
echo '<form action="login.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>';
// jeśli zostanie naciśnięty przycisk "Zaloguj"
{
$nick = $_POST['nick'];
$pass = $_POST['pass'];
// sprawdzamy czy wszystkie dane zostały podane
// jeśli tak...
else
{
// filtrujemy dane
// kodujemy hasło
// sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
$result = mysql_query("SELECT * FROM users WHERE user_name='$nick' AND user_password='$pass'");
// jeśli nie istnieje
// jeśli tak...
else
{
// dodajemy wynik zapytania do tablicy
// ustawianie sesji że użytkownik jest zalogowany
$_SESSION['logged'] = true;
// dodawanie do sesji id użytkownika, login oraz datę rejestracji
$_SESSION['id'] = $row['id'];
$_SESSION['nick'] = $row['nick'];
//$_SESSION['data_rejestracji'] = $row['data_rejestracji'];
// 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
// koniec buforowania
?>
Prosze o pomoc w odnalezieniu bledu.