Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z uzyskiwaniem id
Forum PHP.pl > Forum > Przedszkole
Bueno
Witam, chciałbym aby zapisywało mi ostatnie logowanie i zapisuje lecz zapisuje mi do wszystkich użytkowników z "user" a chciałbym aby tylko temu co się zaloguje zapisywało czas logowania.
  1. mysql_query('UPDATE `users` SET `lastlogin` = now() WHERE id = ;


Błagam o pomoc
Kshyhoo
No to po WHERE id = musisz podać $id zalogowanego usera...
Bueno
Tylko właśnie nie wiem jak to zrobić aby sprawdzało kto się zalogował
Kshyhoo
No nie wiemy, jak się loguje user w Twoim skrypcie logowania smile.gif
Bueno
Cały skrypt logowania
  1. <center><?php
  2. /**
  3.  * Formularz oraz skrypt logowania
  4.  * @author Sobak
  5.  * @package User System
  6.  */
  7.  
  8. require 'header.php'; // Dołącz początkowy kod HTML
  9. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  10.  
  11. /**
  12.  * SKRYPT LOGOWANIA
  13.  */
  14. require_once 'user.class.php'; // Dołączamy rdzeń systemu użytkowników
  15.  
  16. // Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection
  17. $login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
  18. $pass = mysql_real_escape_string($_POST['pass']);
  19.  
  20. if ($_POST['send'] == 1) {
  21. // Sprawdź, czy wszystkie pola zostały uzupełnione
  22. if (!$login or empty($login)) {
  23. die ('<p class="error">Wypełnij pole z loginem!</p>');
  24. }
  25.  
  26. if (!$pass or empty($pass)) {
  27. die ('<p class="error">Wypełnij pole z hasłem!</p>');
  28. }
  29.  
  30. $pass = user::passSalter($pass); // Posól i zahashuj hasło
  31.  
  32. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  33. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  34.  
  35. if ($userExists[0] == 0) {
  36. // Użytkownik nie istnieje w bazie
  37. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
  38. }
  39.  
  40. else {
  41. // Użytkownik istnieje
  42. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
  43.  
  44. // Przypisz pobrane dane do sesji
  45. $_SESSION['login'] = $login;
  46. $_SESSION['pass'] = $pass;
  47.  
  48. mysql_query('UPDATE `users` SET `lastlogin` = now() WHERE id = ;
  49.  
  50. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  51. }
  52. }
  53.  
  54. else {
  55. /**
  56. * FORMULARZ LOGOWANIA
  57. */
  58. ?>
  59.  
  60. <form method="post" action="">
  61. <label for="login">Login:</label>
  62. <input type="text" name="login" maxlength="32" id="login" />
  63.  
  64. <label for="pass">Hasło:</label>
  65. <input type="password" name="pass" maxlength="32" id="pass" /><br />
  66.  
  67. <input type="hidden" name="send" value="1" />
  68. <input type="submit" value="Zaloguj" />
  69. </form>
  70.  
  71. <?php
  72. }
  73.  
  74. require 'footer.php'; // Dołącz końcowy kod HTML
  75. ?></center>
Kshyhoo
Twój skrypt pobiera tylko zmienną $login, musisz dodatkowo pobrać dane o $id, czyli linia:
  1. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user

PS. Błędem jest przechowywanie hasła w sesji...
Bueno
  1. $user = user::getData($login, $pass, $id); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user

  1. mysql_query('UPDATE `users` SET `lastlogin` = now() WHERE id = $id');

Nadal nie działa
Kshyhoo
A jak wygląda Twoja baza?
Bueno
Po lekkiej zmianie działa. Dziękuję bardzo smile.gif Daję pomógł
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.