Witam, jestem laikiem i poczatkuje dopiero... wiec prosze mnie nie odsylac gdzie raki zimuja czyli "ten temat juz byl - poszukaj"...
OK przechodzac do sedna sprawy... napisalem sobie skrypt logowania, ktory coprawda loguje do odpowiedniej strony czyli w moim przypadku member.php z wyswietleniem danych. Z tym ze loguje blednie bo loguje na ostaniego zarejestrowanego lub recznie dodanego do bazy danych usera...
Czyli przyklad: logujac sie na dane:
Login: demo | Haslo: demo123
Nie loguje na powyzsze dane tylko loguje na ostaniego usera w bazie danych czyli w tym przypadku na konto:
Login: test | Haslo: zazaza
Dodam takze ze wyswietlajac sobie
otrzymuje po zalogowaniu na dane konto prawidlowy wynik sesji zapisanej w postaci tablicy
Array ( [username
] => demo
[logged
] => 1 )
oto pliki:
Wyeksportowana tabela "users"
--
-- Struktura tabeli dla `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(25) DEFAULT NULL,
`password` varchar(40) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`access_lvl` tinyint(1) DEFAULT NULL,
`user_active` tinyint(4) DEFAULT NULL,
`first_name` varchar(50) DEFAULT NULL,
`last_name` varchar(50) DEFAULT NULL,
`create_date` datetime DEFAULT NULL,
`modified_date` datetime DEFAULT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
--
-- Zrzut danych tabeli `users`
--
INSERT INTO `users` (`user_id`, `username`, `password`, `email`, `access_lvl`, `user_active`, `first_name`, `last_name`, `create_date`, `modified_date`) VALUES
(1, 'admin', '5f4dcc3b5aa765d61d8327deb882cf99', 'admin@demo.pl', 5, 1, 'admin', 'admin', '2009-12-10 12:30:57', '2009-12-11 12:31:00'),
(4, 'demo', '62cc2d8b4bf2d8728120d052163a77df', 'demo@demo.pl', 1, 1, 'demo', 'demo', '2009-12-10 12:31:38', '2009-12-11 12:31:40'),
(5, 'test', 'bbe7ff82787d6e9fd99ea296a4a76f44', 'test@demo.pl', 1, 1, 'test', 'test', '2009-12-12 00:19:25', NULL);
login.php <?php
/*---------------------------------------------------------*/
require_once('./system/config_system.php');
include_once("./languages/$site_lang/lang.php");
$smarty = new Smarty();
// $smarty->compile_check = true;
// $smarty->debugging = true;
if(isset($_SESSION["logged"])) { header("Location: member.php"); }
// sprawdzamy czy user jest juz zalogowany
if(!isset($_SESSION["logged"])) {
// jesli zostanie nacisniety przycisk "Zaloguj"
if(isset($_POST["submit"])) { $username = $_POST["username"];
$password = $_POST["password"];
// sprawdzamy czy wszystkie dane zostaly podane
$smarty->assign("error", ERROR_WYPELNIJ_POLA);
// jezeli wszystkie dane wprowadzone...
} else {
// filtrujemy dane
// kodujemy haslo
$password = md5($password);
// sprawdzamy czy istnieje uzytkownik z takim loginem i haslem
$result = mysql_query("SELECT * FROM users WHERE username = '" . $username . "' AND password = '" . $password . "'");
// jesli user nie istnieje lub bledne dane
$smarty->assign("error", ERROR_BRAK_USERA_LUB_ZLE_DANE);
// jesli tak...
} else {
// ustawianie sesji - uzytkownik jest zalogowany
$_SESSION["logged"] = true;
$smarty->assign("logged", 1);
// przekierowanie oznaczajacego poprawne logowanie
header("Location: member.php"); // wyswietlenie komunikatu oznaczajacego poprawne logowanie
//$smarty->assign("success", SUCCESS_LOGOWANIE_OK);
}
}
}
}
$smarty->display('login.tpl');
/*-----------------------------------------------------------*/
?>
member.php
<?php
/*---------------------------------------------------------*/
require_once('./system/config_system.php');
include_once("./languages/$site_lang/lang.php");
$smarty = new Smarty();
// $smarty->compile_check = true;
// $smarty->debugging = true;
if(!isset($_SESSION["logged"])) { header("Location: ./login.php"); } else {
//Istniejaca sesja user
if(isset($_SESSION["logged"])== 1
) { $smarty->assign("logged", 1);
// zapytanie do bazy
// Pętla wyswitlajaca wyniki pobane z bazy z limitem okreslonym
$users["user_id"] = $row["user_id"];
$users["username"] = $row["username"];
$users["email"] = $row["email"];
$users["first_name"] = $row["first_name"];
$users["last_name"] = $row["last_name"];
$users["create_date"] = $row["create_date"];
}
$smarty->assign("user", $users);
}
}
$smarty->display('member.tpl'); // Wyswietl wynik w TPL
/*---------------------------------------------------------*/
?>
login.tpl
<p>Wypełnij poprawnie wszystkie pola formularza aby poprawnie zalogować się na swoje konto w serwisie.
</p> {if $error}
<p style="color: red;">{$error}
</p> {/if}
<form action="login.php" method="post" id="signupForm" class="contactform"> <input type="text" id="username" name="username" class="text" /> <input type="password" id="password" name="password" class="text" /> <input name="submit" type="submit" value="Zaloguj" />
member.tpl
{if $logged}
<h2>Strefa użytkownika: {$user.username}
</h2>
<p>Użytkownik: {$user.username} | ID: {$user.user_id}
</p> <p>Adres Email: {$user.email}
</p>
<p>Imię: {$user.first_name}
</p> <p>Nazwisko: {$user.last_name}
</p>
<p>Zarejestrowany: {$user.create_date}
</p>
{/if}
Czy wogole ogolnie waszym zdaniem dobrze zrozumialem to co wyczytalem...(IMG:
style_emoticons/default/questionmark.gif)
Co zle robie nie mam juz doslownie pomyslu... A jestem taka osoba ze nie poddaje sie wiec udaje sie tutaj... (IMG:
style_emoticons/default/smile.gif)
Z gory dziekuje za pomoc (IMG:
style_emoticons/default/smile.gif) ...