Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie nie działa
Forum PHP.pl > Forum > PHP
Domin
Może ktoś mi pomóc, bo nie wiem dlaczego mi to nie działa...

function.php
  1. #definicje stalych
  2. define("SESID", SESSION_NAME() . "=" . SESSION_ID());
  3.  
  4.  
  5. function login($login, $passwd)
  6. {
  7. $query = mysql_query('SELECT id_user FROM users WHERE username="'.$login.'" && password="'.$passwd.'"');
  8. $result = mysql_query($query);
  9. $row = mysql_fetch_array($result);
  10. if ( $row = 1 )
  11. {
  12. $_SESSION["USER_AUTH"] = True;
  13. $_SESSION["USER_LOGIN"] = $_POST["login"];
  14. return True;
  15. }
  16. $login = htmlentities($login);
  17. return False;
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  echo '<table width="350" align="center"><tr><td>
  24.  <div class="login">
  25. <div class="login-form">
  26. <img src="images/login/login.gif" alt="Login" />
  27. <form name="login" action="index.php" method="post">
  28. <input type="hidden" name="option" value="login" />
  29. <input type="hidden" name="<?=SESSION_NAME()?>" value="<?=SESSION_ID()?>">
  30. <div class="form-block">
  31. <div class="inputlabel">Użytkownik</div>
  32. <div><input type="text" name="login" class="loginbox" value="<?=$_POST["login"]?>" /></div>
  33. <div class="inputlabel">Hasło</div>
  34. <div><input type="password" name="passwd" class="loginbox" /></div>
  35. <div align="left"><input type="submit" name="loguj" value="Zaloguj" class="button"/></div>
  36. </div>
  37. </form>
  38. </div>
  39. <div class="login-text">
  40. <div class="ctr"><img src="images/login/security.png" width="64" height="64" alt="security" /></div>
  41. Witaj w Intranecie!<br><br>
  42. Wpisz uważnie swój login i hasło, aby <br>uzyskać dostęp do panelu administracyjnego.
  43. </div>
  44. <div class="clr">&nbsp;</div>
  45. </div></td></tr></table>';
  46. }
  47.  
  48. # sprawdz czy zalogowany
  49. function auth()
  50. {
  51. return ($_SESSION["USER_AUTH"] == True);
  52. }
  53.  
  54. # wyloguj user-a
  55. function logout()
  56. {
  57. $_SESSION["USER_AUTH"] = False;
  58. $_SESSION["USER_LOGIN"] = Null;
  59. }





session.php
  1. <?php
  2.  
  3. # logowanie, wylogowanie itp
  4. switch ($option)
  5. {
  6. case "login" :
  7. $login = htmlentities(substr($_POST["login"], 0, 255));
  8. $passwd = htmlentities(substr($_POST["passwd"], 0, 255));
  9. login($login, md5($password));
  10. break;
  11.  
  12. case "logout" : logout();
  13. break;
  14. }
  15. ?>
mike
Cytat(Domin @ 2.02.2007, 14:38:45 ) *
Może ktoś mi pomóc, bo nie wiem dlaczego mi to nie działa...
Tak szczegółowy opis błędu pozwala mi powiedzieć tylko ... naucz się zadawać pytania: Jak mądrze zadawać pytania. Proszę uzupełnić posta o niezbędne informacje. Co nie działa dokładnie, jakie są błędy, czy są błędy, ...
KCG
W session.php zdaje się, że po /case "login"/ masz dwukropek, a tam musi być średnik, to samo po /case "logout"/
PiratNowegoPokolenia
hmmm...
http://pl.php.net/manual/pl/control-structures.switch.php
nie wprowadzaj chłopaka w błąd ...

1.
  1. <?php
  2. if ( $row = 1 )
  3. ?>
To nie jest operator porównania ... prawidłowy to ==
2.
  1. <?php
  2. $row = mysql_fetch_array($result);
  3. ?>
mysql_fetch_array zwraca array a nie int ... Zdaje się że chodziło ci o mysql_num_rows

Więcej nie sprawdzam ... jak by nadal nie działało to mów
PS: używaj na forum tagów [ php ] ... lepiej się czyta ....mi tongue.gif

---- UPDATE ----
  1. <?php
  2. $login = htmlentities(substr($_POST["login"], 0, 255));
  3. $passwd = htmlentities(substr($_POST["passwd"], 0, 255));
  4. ?>

Nie ma sensu tego skracać ... $password od razu przerzuć przez md5 a login przez addslashes
KCG
No, to przepraszam, chociaż ja zawsze piszę średnik i działa tongue.gif . Przy okazji sam się dowiedziałem, jak pisać biggrin.gif
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.