Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP] Problem z logowaniem na sesjach
Forum PHP.pl > Forum > Przedszkole
Michalo1994
Proszę o pomoc. Chcę stworzyć logowanie na sesjach. Skrypt rejstracji działa ok, natomiast logowania niestety nie. Skrypt nie działa tak jak powinien. Dlaczego?
  1. <?php session_start();require_once('dbc.php');
  2. ?>
  3.  
  4.  
  5. <!doctype html>
  6. <html>
  7. <head>
  8. <meta charset="utf-8">
  9. <title>Logowanie do serwisu:</title>
  10. </head>
  11.  
  12. <body>
  13.  
  14. </body>
  15. <?php
  16.  
  17. if (isset($_SESSION['id'])){
  18.  
  19. if (isset($_POST['submit'])){
  20. $dbc=mysqli_connect(HOST,USER,PASSWORD,DB_NAME)
  21. or die ('Błąd połączenia z bazą danych');
  22.  
  23. if (!empty($_POST['username']) && !empty($_POST['password'])){
  24.  
  25. $username=$_POST['username'];
  26. $password=$_POST['password'];
  27.  
  28. $query="SELECT * FROM users WHERE username='$username' AND password=SHA('$password')";
  29.  
  30. $data=mysqli_query($dbc,$query);
  31. if(mysqli_num_rows($data) == 1){
  32.  
  33.  
  34. $row=mysqli_fetch_array($data);
  35. $_SESSION['id']=$row['id'];
  36. $_SESSION['username']=$row['username'];
  37.  
  38. echo 'Zalogowany jako:' . $_SESSION['username'];
  39.  
  40. }}
  41. else { echo 'Wypełnij pola!';}
  42. }
  43. }
  44.  
  45. ?>
  46.  
  47. <?php
  48. <form action="login.php" method="post">
  49. Nazwa użytkownika:<br>
  50. <input type="text" name="username" id="username"/><br>
  51. Hasło:<br>
  52. <input type="password" id="password" name="password"/><br>
  53. <input type="submit" name="submit" value="Zaloguj"/>';
  54. ?>
  55.  
  56.  
  57. </body>
  58. </html>
nospor
Logowanie robisz dopiero gdy jest $_SESSION['id'] a $_SESSION['id'] ustawiasz dopiero po poprawnym zalogowaniu.... Naprawde nie widzisz tu pewnej niescislosci??
Michalo1994
ok, widzę, zamiast isset powinno być !isset?
JEżeli nie istnieje $_session['id'] łączy z bazą, pobiera nazwę i hasło z bazy takie jak zostały wprowadzone w post,
potem ustawia sesję. Niestety skrypt nic nie wyświetla. W czym tkwi problem?

  1. <?php
  2.  
  3. if (!isset($_SESSION['id'])){
  4.  
  5. if (isset($_POST['submit'])){
  6. $dbc=mysqli_connect(HOST,USER,PASSWORD,DB_NAME)
  7. or die ('Błąd połączenia z bazą danych');
  8.  
  9. if (!empty($_POST['username']) && !empty($_POST['password'])){
  10.  
  11. $username=$_POST['username'];
  12. $password=$_POST['password'];
  13.  
  14. $query="SELECT * FROM users WHERE username='$username' AND password=SHA('$password')";
  15.  
  16. $data=mysqli_query($dbc,$query);
  17. if(mysqli_num_rows($data) == 1){
  18.  
  19.  
  20. $row=mysqli_fetch_array($data);
  21. $_SESSION['id']=$row['id'];
  22. $_SESSION['username']=$row['username'];
  23.  
  24. echo 'Zalogowany jako:' . $_SESSION['username'];
  25.  
  26. }}
  27. else { echo 'Wypełnij pola!';}
  28. }
  29. }
  30.  
  31. ?>
nospor
Temat: Jak poprawnie zada pytanie
Moze zrobi sie jasniej, jak zastosujesz sie do paru porad
Michalo1994
wielkie dzięki za precyzyjną, pomocną odpowiedź
nospor
Wyczuwam sarkazm, wiec:
ogarnij sie chlopie... Mam ci pisac po kolei posta za postem dokladnie to samo co masz napisane w tamtym temacie?? Po to powstal tamten temat, by nie pisac kazdemu z osobna: zrob to, a teraz zrob tamto.... dostajesz hurtem co masz zrobic i zrob to, wtedy bedziemy mogli przejsc dalej majac wiecej informacji do analizy.

Jak wyrazisz chec wspolpracy zapraszam na PW
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.