Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Logowanie
Forum PHP.pl > Forum > Przedszkole
potreb
Witam, mam tu prościutki skrypt logowania na sesjach i cookie:

  1. <?php
  2. function logins(){
  3. if(isset($_POST['password']) && isset($_POST['user'])) {
  4. $user = addslashes(strtolower($_POST['user']));
  5. $password = addslashes(md5(strtolower($_POST['password'])));
  6. } else if(isset($_SESSION['user_login']) && isset($_SESSION['user_pass'])) {
  7. $user = $_SESSION['user_login'];
  8. $password = $_SESSION['user_pass'];
  9. } else if(isset($_COOKIE['login'])) {
  10. $r = explode("::", $_COOKIE['login']);
  11. $user = $r[1];
  12. $password = $r[0];
  13. } else {
  14. return false;
  15. }
  16. $query = "SELECT * FROM users WHERE password = '$password' AND user='$user'";
  17. $sql = mysql_query($query);
  18. $row = mysql_fetch_row($sql);
  19. if(!mysql_num_rows($sql)) {
  20. echo 'Niepoprawne Login lub Hasło';
  21. return false;
  22. }else{
  23. $err = 'Zalogowany';
  24. setcookie("login", "$password::$user", time()+24*360);
  25. $_SESSION['user_login'] = $user;
  26. $_SESSION['user_pass'] = $password;
  27. return true;
  28. }
  29. }
  30.  
  31.  
  32.  
  33. if(logins()){
  34. echo "<a href='?logout=yes'>wyloguj</a>";
  35. } else {
  36. echo '<form method="POST" action="">
  37. <div>Podaj hasło</div>
  38. <div><input type="text" name="user" /></div>
  39. <div><input type="password" name="password" /></div>
  40. <div><input type="checkbox" name="zapamietaj" /> - Zapamiętaj hasło</div>
  41. <div><input type="submit" name="login" value="Zaloguj"/></div>
  42. </form>';
  43. }
  44.  
  45. if(isset($_GET['logout']) && $_GET['logout']=="yes") {
  46. setcookie("login", '', time()-36);
  47. header('location: '.$_SERVER['PHP_SELF'].'');
  48. }
  49. ?>


Pytanie, czy warto wszystkie dane zapisać w sesji czy podtrzymywać logowania a dane wyciągać przez mysql_fetch_row a następnie je wyświetlać. Ogólnie skrypt to błazenada, ale na szybkiego jest. Nie wiem co tu jeszcze zmienić, oczywiście filtrowanie danych plus dodatkowe zabezpieczenia.
.radex
addslashes? użyj mysql_real_escape_string

I popracuj nad tabami, bo kompletnie nie można się rozczytać (tym bardziej, że klamerki trzymasz na końcu linijki, a nie jako osobna).

No a logowanie przecież musisz jakoś podtrzymać. Sesje się kłaniają. Chyba, że nie zrozumiałem pytania.
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.