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:
  1. Login: demo | Haslo: demo123


Nie loguje na powyzsze dane tylko loguje na ostaniego usera w bazie danych czyli w tym przypadku na konto:
  1. Login: test | Haslo: zazaza


Dodam takze ze wyswietlajac sobie
  1. print_r($_SESSION);

otrzymuje po zalogowaniu na dane konto prawidlowy wynik sesji zapisanej w postaci tablicy
  1. Array ( [username] => demo [logged] => 1 )


oto pliki:
Wyeksportowana tabela "users"
  1. --
  2. -- Struktura tabeli dla `users`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `users` (
  6. `user_id` int(10) NOT NULL AUTO_INCREMENT,
  7. `username` varchar(25) DEFAULT NULL,
  8. `password` varchar(40) DEFAULT NULL,
  9. `email` varchar(255) DEFAULT NULL,
  10. `access_lvl` tinyint(1) DEFAULT NULL,
  11. `user_active` tinyint(4) DEFAULT NULL,
  12. `first_name` varchar(50) DEFAULT NULL,
  13. `last_name` varchar(50) DEFAULT NULL,
  14. `create_date` datetime DEFAULT NULL,
  15. `modified_date` datetime DEFAULT NULL,
  16. PRIMARY KEY (`user_id`)
  17. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
  18.  
  19. --
  20. -- Zrzut danych tabeli `users`
  21. --
  22.  
  23. INSERT INTO `users` (`user_id`, `username`, `password`, `email`, `access_lvl`, `user_active`, `first_name`, `last_name`, `create_date`, `modified_date`) VALUES
  24. (1, 'admin', '5f4dcc3b5aa765d61d8327deb882cf99', 'admin@demo.pl', 5, 1, 'admin', 'admin', '2009-12-10 12:30:57', '2009-12-11 12:31:00'),
  25. (4, 'demo', '62cc2d8b4bf2d8728120d052163a77df', 'demo@demo.pl', 1, 1, 'demo', 'demo', '2009-12-10 12:31:38', '2009-12-11 12:31:40'),
  26. (5, 'test', 'bbe7ff82787d6e9fd99ea296a4a76f44', 'test@demo.pl', 1, 1, 'test', 'test', '2009-12-12 00:19:25', NULL);



login.php
  1. <?php
  2. /*---------------------------------------------------------*/
  3.  
  4. require_once('./system/config_system.php');
  5. include_once("./languages/$site_lang/lang.php");
  6.  
  7. $smarty = new Smarty();
  8. // $smarty->compile_check = true;
  9. // $smarty->debugging = true;
  10.  
  11. session_start(); // inicjowanie sesji
  12.  
  13. if(isset($_SESSION["logged"])) {
  14. header("Location: member.php");
  15. }
  16.  
  17. // sprawdzamy czy user jest juz zalogowany
  18. if(!isset($_SESSION["logged"])) {
  19.  
  20. // jesli zostanie nacisniety przycisk "Zaloguj"
  21. if(isset($_POST["submit"])) {
  22. $username = $_POST["username"];
  23. $password = $_POST["password"];
  24.  
  25. // sprawdzamy czy wszystkie dane zostaly podane
  26. if(empty($username) || empty($password)) {
  27. $smarty->assign("error", ERROR_WYPELNIJ_POLA);
  28. // jezeli wszystkie dane wprowadzone...
  29. } else {
  30.  
  31. // filtrujemy dane
  32.  
  33. // kodujemy haslo
  34. $password = md5($password);
  35.  
  36. // sprawdzamy czy istnieje uzytkownik z takim loginem i haslem
  37. $result = mysql_query("SELECT * FROM users WHERE username = '" . $username . "' AND password = '" . $password . "'");
  38.  
  39. // jesli user nie istnieje lub bledne dane
  40. if(mysql_num_rows($result) == 0) {
  41. $smarty->assign("error", ERROR_BRAK_USERA_LUB_ZLE_DANE);
  42. // jesli tak...
  43. } else {
  44. // ustawianie sesji - uzytkownik jest zalogowany
  45. session_register("username");
  46. $_SESSION["logged"] = true;
  47. $smarty->assign("logged", 1);
  48.  
  49. // przekierowanie oznaczajacego poprawne logowanie
  50. header("Location: member.php");
  51. // wyswietlenie komunikatu oznaczajacego poprawne logowanie
  52. //$smarty->assign("success", SUCCESS_LOGOWANIE_OK);
  53. }
  54. }
  55. }
  56. }
  57.  
  58. $smarty->display('login.tpl');
  59.  
  60. print_r($_SESSION);
  61. /*-----------------------------------------------------------*/
  62. ?>


member.php
  1. <?php
  2. /*---------------------------------------------------------*/
  3.  
  4.  
  5. require_once('./system/config_system.php');
  6. include_once("./languages/$site_lang/lang.php");
  7.  
  8. $smarty = new Smarty();
  9. // $smarty->compile_check = true;
  10. // $smarty->debugging = true;
  11.  
  12. session_start(); // inicjowanie sesji
  13.  
  14. if(!isset($_SESSION["logged"])) {
  15. header("Location: ./login.php");
  16. } else {
  17. //Istniejaca sesja user
  18. if(isset($_SESSION["logged"])== 1) {
  19. $smarty->assign("logged", 1);
  20.  
  21. // zapytanie do bazy
  22. $sql = mysql_query("SELECT * FROM users");
  23.  
  24. $users = array();
  25. // Pętla wyswitlajaca wyniki pobane z bazy z limitem okreslonym
  26. while ($row = mysql_fetch_assoc($sql)) {
  27. $users["user_id"] = $row["user_id"];
  28. $users["username"] = $row["username"];
  29. $users["email"] = $row["email"];
  30. $users["first_name"] = $row["first_name"];
  31. $users["last_name"] = $row["last_name"];
  32. $users["create_date"] = $row["create_date"];
  33. }
  34. $smarty->assign("user", $users);
  35. }
  36. }
  37. $smarty->display('member.tpl'); // Wyswietl wynik w TPL
  38.  
  39. print_r($_SESSION);
  40. /*---------------------------------------------------------*/
  41. ?>


login.tpl
  1. <h2>Logowanie</h2>
  2. <p>Wypełnij poprawnie wszystkie pola formularza aby poprawnie zalogować się na swoje konto w serwisie.</p>
  3. {if $error}
  4. <p style="color: red;">{$error}</p>
  5. {/if}
  6.  
  7. <form action="login.php" method="post" id="signupForm" class="contactform">
  8. <ol>
  9. <li>
  10. <label for="username">Nazwa użytkownika:</label>
  11. <input type="text" id="username" name="username" class="text" />
  12. </li>
  13. <li>
  14. <label for="password">Poprawne hasło:</label>
  15. <input type="password" id="password" name="password" class="text" />
  16. </li>
  17. <li class="buttons">
  18. <input name="submit" type="submit" value="Zaloguj" />
  19. </li>
  20. </ol>
  21. </form>


member.tpl
  1. {if $logged}
  2.  
  3. <h2>Strefa użytkownika: {$user.username}</h2>
  4.  
  5. <p>Użytkownik: {$user.username} | ID: {$user.user_id}</p>
  6. <p>Adres Email: {$user.email}</p>
  7.  
  8. <p>Imię: {$user.first_name}</p>
  9. <p>Nazwisko: {$user.last_name}</p>
  10.  
  11. <p>Zarejestrowany: {$user.create_date}</p>
  12.  
  13. {/if}


Czy wogole ogolnie waszym zdaniem dobrze zrozumialem to co wyczytalem...questionmark.gif
Co zle robie nie mam juz doslownie pomyslu... A jestem taka osoba ze nie poddaje sie wiec udaje sie tutaj... smile.gif
Z gory dziekuje za pomoc smile.gif...