Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Logowanie
potreb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Witam, zrobiłem proste logowanie:
  1. <?php
  2. function alpha_numeric($str)
  3. {
  4. return ( ! preg_match("/^([-a-z0-9])+$/i", $str)) ? FALSE : TRUE;
  5. }
  6.  
  7. function login(){
  8. if(isset($_POST['user']) && isset($_POST['password'])) {
  9. if (!$_POST['user'] || alpha_numeric($_POST['user'])==FALSE)
  10. {
  11. echo 'Login może zawierać jedynie liczby i litery';
  12. } else {
  13. $user = mysql_real_escape_string(strtolower($_POST['user']));
  14. $password = md5(mysql_real_escape_string(strtolower($_POST['password'])));
  15. $sql = mysql_query("SELECT * FROM users WHERE password = '$password' AND user = '$user' LIMIT 1");
  16. $row = mysql_fetch_row($sql);
  17. $rights = $row[4]; 
  18. if(!mysql_num_rows($sql)) {
  19. echo 'Niepoprawne Login lub Hasło';
  20. return FALSE;
  21. } else {
  22. setcookie("login", $password, time()+24*360);
  23. $_SESSION['rights'] = $rights;
  24. $_SESSION['user_login'] = $user;
  25. $_SESSION['user_pass'] = $password;
  26. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  27. return TRUE;
  28. }
  29. }
  30. }
  31.  
  32. if(isset($_COOKIE['login']) && !isset($_SESSION['rights'])){
  33. $password = $_COOKIE['login'];
  34. $sql = mysql_query("SELECT * FROM users WHERE password = '$password' LIMIT 1");
  35. $row = mysql_fetch_row($sql);
  36. $rights = $row[4];
  37. $user = $row[2];
  38. $password = $row[3]; 
  39. if(mysql_num_rows($sql)) {
  40. $_SESSION['rights'] = $rights;
  41. $_SESSION['user_login'] = $user;
  42. $_SESSION['user_pass'] = $password;
  43. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  44. return TRUE;
  45. }
  46. }
  47. }
  48.  
  49. login();
  50. print_r($_SESSION);
  51.  
  52. function loged (){
  53. if(isset($_SESSION['rights']) && $_SESSION['rights']=="1") {
  54. echo "admin<br/>";
  55. echo "<a href='?adminlogout=ok'>aaa</a>";
  56. return TRUE;
  57. } else if(isset($_SESSION['rights']) && $_SESSION['rights']=="2") {
  58. echo "uzytkownik<br>";
  59. echo "<a href='?adminlogout=ok'>aaa</a>";
  60. return TRUE;
  61. } else {
  62. return FALSE;
  63. }
  64. }
  65.  
  66. ?>
  67.  
  68.  
  69.  
  70. <?php
  71.  
  72. if($_GET['adminlogout']=="ok") {
  73. setcookie("login", '', time()-36);
  74. header('location: logowanie.php');
  75. }
  76.  
  77. if(!loged()){
  78. echo '<form method="POST" action="">
  79. <div>Podaj hasło</div>
  80. <div><input type="text" name="user" /></div>
  81. <div><input type="password" name="password" /></div>
  82. <div><input type="checkbox" name="zapamietaj" /> - Zapamiętaj hasło</div>
  83. <div><input type="submit" name="login" value="Zaloguj"/></div>
  84. </form>';
  85. }
  86.  
  87. ?>


Ogólnie trochę namieszane. Dziś jednak cięzko mi idzie myślenie, więc nie wiem czy to ma sens :/

Proszę o jakieś wskazówki lub uwagi.

Z góry dziękuje

Ten post edytował potreb 9.05.2008, 14:56:05


--------------------

Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Oprocz tego ze w sesji masz haslo i ze nie filtrujesz zmiennych w sql o tego ze polowa to sesje a druga polowa do cookie i na dodatek nie sprawdzasz czy dane z cookie sie zgadzaja z baza i sesje tez to jest ok...

P.S oczywiscie moge sie mylic ale ja mam calkiem inaczej to zrobione


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Xniver
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 26
Dołączył: 29.02.2008

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


Po co ci funkcja alpha_numeric? Lepiej skorzystać z http://pl.php.net/manual/en/function.ctype-alnum.php
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 Aktualny czas: 19.08.2025 - 06:32