Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][Pytanie] System logowania
Azonic
post 1.05.2014, 15:24:15
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.04.2014

Ostrzeżenie: (0%)
-----


Witam, wbudowałem w swój szablon system rejestracji i logowania według tego tutoriala: http://www.p-programowanie.pl/php/system-l...racji/#more-488


Rejestracja działa jak należy logowanie tez tylko tu jest problem.

Tutaj mam formularz logowania:
  1. <?php
  2. mysql_connect("localhost","admin","haslo");
  3. ?>
  4.  
  5. <form method="POST">
  6. <b>Login:</b> <input type="text" name="login"><br>
  7. <b>Hasło:</b> <input type="password" name="haslo"><br>
  8. <input type="submit" value="Zaloguj" name="loguj">
  9. </form>



Tutaj pod formularzem w tym samym pliku mam skrypt logowania:
  1. <?php
  2. function filtruj($zmienna)
  3. {
  4. $zmienna = stripslashes($zmienna); // usuwamy slashe
  5.  
  6. // usuwamy spacje, tagi html oraz niebezpieczne znaki
  7. }
  8.  
  9. if (isset($_POST['loguj']))
  10. {
  11. $login = filtruj($_POST['login']);
  12. $haslo = filtruj($_POST['haslo']);
  13. $ip = filtruj($_SERVER['REMOTE_ADDR']);
  14.  
  15. // sprawdzamy czy login i hasło są dobre
  16. if (mysql_num_rows(mysql_query("SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".md5($haslo)."';")) > 0)
  17. {
  18. // uaktualniamy date logowania oraz ip
  19. mysql_query("UPDATE `uzytkownicy` SET (`logowanie` = '".time().", `ip` = '".$ip."'') WHERE login = '".$login."';");
  20.  
  21. $_SESSION['zalogowany'] = true;
  22. $_SESSION['login'] = $login;
  23.  
  24. // zalogowany
  25.  
  26. }
  27. else echo "Wpisano złe dane.";
  28. }
  29. ?>




wyświetla mi się na stronie formularz logowania jak wpisze złe dane to wyświetla napis "Wpisano złe dane.";
Jak wpiszę poprawnie dane to nie dzieje się nic i miałbym prośbe o wskazówki jak zrobić tak aby po wpisaniu prawidłowych danych formlularz logowania zamieniał się w profil konta użytkownika i pobierał dane z bazy informacje o użytkowniku następnie je wyswietlal w profilu.


Z góry dziękuje i pozdrawiam

Go to the top of the page
+Quote Post
Turson
post 1.05.2014, 15:30:37
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


W sesji radzę trzymać id użytkownika a nie login.
Ok masz w sesji daną, po której możesz rozpoznać użytkownika i to, że jest zalogowany.
  1. if(isset($_SESSION['zalogowany'])){
  2. //profil użytkownika
  3. }
  4. else{
  5. //formularz logowania
  6. }

Mając więc login/id użytkownika możesz pobrać jego dane i wyświetlić profil
Go to the top of the page
+Quote Post
Azonic
post 2.05.2014, 14:59:41
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.04.2014

Ostrzeżenie: (0%)
-----


Niemoge się coś z tym uporać mam juz wszystko nowy skrypt wyświetla profil itp tylko że po kliknięciu założmy w link "profil" i wyświetla dane profilu po klikniecu w login wyświetla formułke logowania. a chciałbym aby na stronie głównej wyświetlało formlularz logowania a po zalogowaniu informacje o profilu.

mam tu kod:

login.php
  1. <?php
  2. /**
  3.  * Formularz oraz skrypt logowania
  4.  * @author Sobak
  5.  * @package User System
  6.  */
  7.  
  8. require 'template/header.php'; // Dołącz początkowy kod HTML
  9. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  10.  
  11.  
  12. /**
  13.  * SKRYPT LOGOWANIA
  14.  */
  15. require_once 'user.class.php'; // Dołączamy rdzeń systemu użytkowników
  16.  
  17. // Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection
  18. $login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
  19. $pass = mysql_real_escape_string($_POST['pass']);
  20.  
  21. if ($_POST['send'] == 1) {
  22. // Sprawdź, czy wszystkie pola zostały uzupełnione
  23. if (!$login or empty($login)) {
  24. die ('<p class="error">Wypełnij pole z loginem!</p>');
  25. }
  26.  
  27. if (!$pass or empty($pass)) {
  28. die ('<p class="error">Wypełnij pole z hasłem!</p>');
  29. }
  30.  
  31. $pass = user::passSalter($pass); // Posól i zahashuj hasło
  32.  
  33. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  34. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  35.  
  36. if ($userExists[0] == 0) {
  37. // Użytkownik nie istnieje w bazie
  38. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
  39. }
  40.  
  41. else {
  42. // Użytkownik istnieje
  43. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
  44.  
  45. // Przypisz pobrane dane do sesji
  46. $_SESSION['login'] = $login;
  47. $_SESSION['pass'] = $pass;
  48.  
  49. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  50. }
  51. }
  52.  
  53. else {
  54. /**
  55.   * FORMULARZ LOGOWANIA
  56.   */
  57. ?>


header.php
  1. <?php
  2.  
  3.  
  4. if(isset($_SESSION['zalogowany'])){
  5. //profil użytkownika
  6. }
  7. else{
  8. echo '<form method="post" action="login.php">
  9. <p>
  10. Login:<br>
  11. <input type="text" value="'.$_POST['name'].'" name="name">
  12. </p>
  13. <p>
  14. Hasło:<br>
  15. <input type="password" value="'.$_POST['password'].'" name="password">
  16. </p>
  17. <p>
  18. <input type="submit" value="Zaloguj">
  19. </p>
  20. </form>';
  21. }
  22.  
  23. ?>



a tutaj mam profil.php
  1. <?php
  2. /**
  3.  * Profil
  4.  * @author Sobak
  5.  * @package User System
  6.  */
  7.  
  8. require 'template/header.php'; // Dołącz początkowy kod HTML
  9. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  10. require_once 'user.class.php';
  11.  
  12. /**
  13.  * Tylko dla zalogowanych użytkowników
  14.  */
  15. if (!user::isLogged()) {
  16. echo '<p class="error">Przykro nam, ale ta strona jest dostępna tylko dla zalogowanych użytkowników.</p>';
  17. }
  18.  
  19. else {
  20. $id = $_GET['id'];
  21.  
  22. /**
  23.   * Sprawdź czy użytkownik o podanym ID istnieje
  24.   */
  25. $userExist = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE id = '$id'"));
  26.  
  27. // Użytkownik nie istnieje
  28. if ($userExist[0] == 0) {
  29. die ('<p>Przykro nam, ale użytkownik o podanym identyfikatorze nie istnieje.</p>');
  30. }
  31.  
  32. /**
  33.   * Użytkownik istnieje, tak więc pokaż jego profil
  34.   */
  35.  
  36. // Zapisz dane użytkownika o podanym ID, do zmiennej $profile
  37. $profile = user::getDataById ($id);
  38.  
  39. echo '<h1>Profil użytkownika '.$profile['login'].'</h1>';
  40.  
  41. echo '<b>Nick:</b> '.$profile['login'].'<br />';
  42. echo '<b>Email:</b> '.$profile['email'].'<br />';
  43.  
  44. }
  45.  
  46. require 'template/footer.php'; // Dołącz końcowy kod HTML
  47.  
  48. ?>


Ten post edytował Azonic 2.05.2014, 15:00:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 01:30