Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]I znów o logowaniu
andrzejlechniak
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


Hej. Mam proste pytanie, jak wyświetlić dane z tabeli o użytkowniku, który właśnie się zalogował, w stylu:
login: xxx --- password: xxx --- data rejestracji ----
Chodzi mi o sam kod SQL

  1. if($_SESSION["logged"] != "tak")
  2. {
  3. if (empty($_POST))
  4. {
  5. echo '<form name="form1" action="logowanie.php?id=konto" method="Post" >
  6. <div class="log_main">
  7. <div class="log_dane">
  8. <div class="log_form">Login [podaj e-mail]: <input name="myusername" type="text" id="myusername"></div>
  9. <div class="log_form">Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  10. <div class="log_form">&nbsp;
  11. <input type="submit" name="Submit" value="Zaloguj" title="zaloguj się">
  12. </div>
  13. </div>
  14. <div class="log_form2">
  15. &sdot;
  16. <a href="java script:history.go(-1);" title="cofnij do poprzedniej strony"> Wstecz</a> -
  17. <a href="logowanie.php?id=rejestracja" title="zarejestruj się w bazie">Rejestarcja</a> -
  18. <a href="" title="przypomnij hasło">Przypomnienie hasła</a> -
  19. <a href="" title="wymuś zmianę hasła">Zmiana hasła</a> &sdot;
  20. </div>
  21. </div>
  22. </form>';
  23. }
  24.  
  25. // username and password sent from form
  26. $myusername=$_POST['myusername'];
  27. $mypassword=$_POST['mypassword'];
  28.  
  29. // To protect MySQL injection
  30. $myusername = stripslashes($myusername);
  31. $mypassword = stripslashes($mypassword);
  32. $myusername = mysql_real_escape_string($myusername);
  33. $mypassword = mysql_real_escape_string($mypassword);
  34.  
  35. $sql="SELECT * FROM uzytkownicy WHERE login='$myusername' and password='$mypassword' and banowanie=0";
  36. $result=mysql_query($sql);
  37.  
  38. $count=mysql_num_rows($result);
  39.  
  40. if($count==1){
  41. $_SESSION["logged"] = "tak";
  42. $_SESSION["username"] = $myusername;
  43. }
  44. else
  45. {
  46. return "Błędny login lub hasło";
  47. }
  48. }


Mam taki kod logowania. Działa z wyjątkiem tego, że jak źle wpiszę hasło to nie widzę 'return' a... a właśnie nic nie widzę, też czemu? To też jest zagwozdka? I jak z tego wyciągnąć dane o użytkowniku, który właśnie jest zalogowany?

Ten post edytował andrzejlechniak 12.12.2010, 23:19:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
andrzejlechniak
post
Post #2





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 7.11.2008

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


OK, zastosowałem error_all. Piszę zatem cały kod samego logowania. Wyskakuje mi jeden błąd: Notice: Undefined index: wyloguj in, ale szczerze to wątpie aby to blokowało samego returna. Może się mylę.

  1. if($_GET["wyloguj"] == '1')
  2. {
  3. unset($_SESSION["logged"]);
  4. }
  5.  
  6. if($_SESSION["logged"] != "tak")
  7. {
  8. if (empty($_POST))
  9. {
  10. echo '<form name="form1" action="logowanie.php?id=konto" method="Post" >
  11. <div class="log_main">
  12. <div class="log_dane">
  13. <div class="log_form">Login [podaj e-mail]: <input name="myusername" type="text" id="myusername"></div>
  14. <div class="log_form">Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  15. <div class="log_form">&nbsp;
  16. <input type="submit" name="Submit" value="Zaloguj" title="zaloguj się">
  17. </div>
  18. </div>
  19. <div class="log_form2">
  20. &sdot;
  21. <a href="java script:history.go(-1);" title="cofnij do poprzedniej strony"> Wstecz</a> -
  22. <a href="logowanie.php?id=rejestracja" title="zarejestruj się w bazie">Rejestarcja</a> -
  23. <a href="" title="przypomnij hasło">Przypomnienie hasła</a> -
  24. <a href="" title="wymuś zmianę hasła">Zmiana hasła</a> &sdot;
  25. </div>
  26. </div>
  27. </form>';
  28. }
  29.  
  30. // username and password sent from form
  31. $myusername=$_POST['myusername'];
  32. $mypassword=$_POST['mypassword'];
  33.  
  34. // To protect MySQL injection
  35. $myusername = stripslashes($myusername);
  36. $mypassword = stripslashes($mypassword);
  37. $myusername = mysql_real_escape_string($myusername);
  38. $mypassword = mysql_real_escape_string($mypassword);
  39.  
  40. $sql="SELECT * FROM uzytkownicy WHERE login='$myusername' and password='$mypassword' and banowanie=0";
  41. $result=mysql_query($sql);
  42.  
  43. $count=mysql_num_rows($result);
  44.  
  45. if($count==1){
  46. $_SESSION["logged"] = "tak";
  47. $_SESSION["username"] = $myusername;
  48. $_SESSION["password"] = $mypassword;
  49. }
  50. else
  51. {
  52. return "Błędny login lub hasło";
  53. }
  54. }
  55.  
  56. if($_SESSION["logged"] == "tak")
  57. {
  58. echo '<div class="panel_admin_main">';
  59. echo '<img src="obrazki/kontrolka.png">
  60. Panel użytkownika | Jesteś zalogowany jako: <strong>' .$_SESSION['username']. '</strong>
  61. echo '</div>';
  62. }
  63.  


Co do sprawdzania samego użytkownika, to napisałem coś takiego:
  1. $sql = "SELECT * FROM uzytkownicy ".
  2. "WHERE login = '".$_SESSION['username']."'" .
  3. "AND password = '".$_SESSION['mypassword']."'";
  4. $result = mysql_query($sql) or die(mysql_error());
  5. while ($row = mysql_fetch_array($result))
  6. {
  7. extract($row);
  8. echo $_SESSION['username'];
  9. }


i też mi pisze, że mam niezdefiniowany index 'password'. A przecież go deklaruję w samej funkcji logowania. Poza tym nie wyświetla mi żadnych wyników.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 21:04