Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Strona Logowania, ...po mojemu...
ze4lot
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 1
Dołączył: 29.03.2007
Skąd: Kraków

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


Witam. Jestem raczkującym przedszkolakiem w PHP i dzisiejszego wieczoru spłodziłem mały ekran logowania. Byłbym bardzo wdzięczny za znalezienie jego wad dot. funkcjonalności i bezpieczenstwa oraz bardzo szczegółowe objaśnienie ich.

Oto mój kodzik:
  1. <?php
  2.  
  3. $body = "<head>
  4. <meta http-equiv=\"Content-type\" content=\"text/html; charset=iso-8859-2\">
  5. <meta http-equiv=\"Reply-to\" content=\"xxx\">
  6. <meta http-equiv=\"Content-Language\" content=\"pl\">
  7. <meta name=\"Author\" content=\"xxx\">
  8. <link rel=\"Stylesheet\" type=\"text/css\" href=\"style.css\">
  9. <title>xxx</title>
  10. </head>
  11. <br><br><br>
  12.  <center>";
  13.  
  14. if (isset($_POST["user"]) && isset($_POST["pass"]) && $_GET['do'] === "yes")
  15. {
  16. $user=trim($_POST['user']);
  17. $pass=md5(trim($_POST['pass']));
  18. $db = @mysql_connect("xxx", "xxx", "xxx") or die(mysql_error());
  19. @mysql_select_db("xxx");
  20. $login_info = mysql_query("SELECT * FROM user_list WHERE user = '$user'")
  21. or die(mysql_error());
  22. if (mysql_num_rows($login_info) != 1)
  23. {
  24. header("Refresh: 2; url=login.php");
  25. echo $body."<br><b>
  26. Nie ma takiego użytkownika!<br>
  27. ...Przeładowywanie formularza...</b>";
  28. }
  29. else
  30. {
  31. $login_info = mysql_fetch_array($login_info);
  32. unset($_POST['user']);
  33. unset($_POST['pass']);
  34. $new_sid = md5($_SERVER['REMOTE_ADDR']."".date(YmdHis));
  35.  
  36. if (($login_info['user'] == $user && $login_info['pass'] == $pass) || !$_COOKIE['sid'] || $_COOKIE['user'])
  37. {
  38. setcookie ("sid", $new_sid,time()+86400);
  39. setcookie ("user", $user,time()+86400);
  40. $_SESSION['sid'] = $new_sid;
  41. $log_update = mysql_query("UPDATE user_list SET sid = '".$new_sid."', ip = '".$_SERVER['REMOTE_ADDR']."' WHERE user = '".$user."'") or die(mysql_error());
  42. header("Refresh: 2; url=admin.php");
  43. echo $body."<br><b>
  44. Logowanie użytkownika <u>".$user."</u><br>
  45. ...Ładowanie panelu...</b>";
  46. }
  47. }
  48. }
  49. else if (isset($_COOKIE['sid']) || isset($_SESSION['sid']) || isset($_COOKIE['user']))
  50. {
  51. header("Refresh: 2; url=login.php");
  52. if (isset($_COOKIE['user']))
  53. {
  54. echo $body."<br>
  55.  <b>Czekaj, trwa czyszczenie niezakończonej sesji użytkownika <u>".$_COOKIE['user']."</u>...</b>";
  56. }
  57. else
  58. {
  59. echo $body."<br>
  60.  <b>...Czekaj, trwa przygotowywanie formularza...</b>";
  61. }
  62. setcookie ("user", "unknow",time()+(1*0.01));
  63. setcookie ("sid", "unknow",time()+(1*0.01));
  64. }
  65.  
  66. echo $body."
  67. <form action=\"login.php?do=yes\" method=\"POST\">
  68. <table>
  69. <tr>
  70. <td><b>Użytkownik:</b></td>
  71. <td><input type=\"text\" name=\"user\"></td>
  72. </tr>
  73. <tr>
  74. <td><b>Hasło:</b></td>
  75. <td><input type=\"password\" name=\"pass\"></td>
  76. </tr>
  77. <tr>
  78. <td colspan=\"2\"><center>
  79. <input type=\"submit\" value=\"loguj\">
  80. </center></td>
  81. </tr>
  82. </table>
  83. </center>
  84. </form>";
  85. ?>


Ten post edytował ze4lot 22.10.2007, 20:22:10


--------------------
ze4lot.pl
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 18:02