Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]System logowania
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


1. Skrypt z jakiegos powodu gdy dodalem hash przestal dzialac?
2. Co mozna dodac jeszcze aby logowanie bylo bezpieczniejsze
3. Komunikat o zlym hasle nigdy nie wystepuje?
Nawet jak login jest ok a haslo bledne wywala ze odrazu konta nie ma w bazie czyli komunikat =1
  1. echo "Złe hasło, proszę spróbować ponownie";
  2. header("location: index.php?komunikat=2");


Jak rozwiazac kwestie tego zeby wgl zaczelo logowac, rejestracja uzywa tego samego hasha, no i punkt drugi tu juz inwencja i pomysly.

  1. ...
  2. <?php
  3. if(isset($_POST['loguj']) && ($_POST['loguj'])==1) {
  4.  
  5. //filtrowanie
  6. $_POST['login']=mysql_real_escape_string(addslashes(htmlspecialchars(trim($_POST['login']))));
  7. $_POST['haslo']=mysql_real_escape_string(addslashes(htmlspecialchars(trim($_POST['haslo']))));
  8.  
  9.  
  10. $sol = md5("abc"); //sól użytkownika pobierana z bazy
  11. $sol2 = sha1("def"); //sól dodatkowa
  12. $hash = hash('sha512', $_POST['haslo'] . $sol . $sol2);
  13.  
  14.  
  15. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '".$_POST['login']."' AND pass = '$hash'"));
  16.  
  17. if ($userExists[0] == 0) {
  18. // Użytkownik nie istnieje w bazie
  19. header("location: index.php?komunikat=1");
  20. }
  21. else {
  22. // Użytkownik istnieje
  23. $_SESSION['zalogowany'] = true;
  24. $_SESSION['login'] = $_POST['login'];
  25.  
  26. $user = $_SESSION['login'];
  27. mysql_query("UPDATE `users` SET `logowanie`=NOW(),`online`='1' WHERE login='$user'") or die(mysql_error());
  28.  
  29. header('Location: index.php');
  30.  
  31. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  32. }
  33. }
  34. else{
  35.  
  36. ?>
  37. <form class="form-signin" action="s_logowanie.php" method="POST">
  38. <div class="form-group">
  39. <label>Login</label><input class="form-control" name="login" type="text" required />
  40. </div>
  41. <div class="form-group">
  42. <label>Haslo</label><input class="form-control" name="haslo" type="password" required />
  43. </div>
  44. <div class="row">
  45. <div class="col-xs-6 col-md-6"><input type="reset" value="Wyczyść" class="btn btn-warning btn-block btn-sm" ></div>
  46. <div class="col-xs-6 col-md-6">
  47. <input type="hidden" name="loguj" value="1" />
  48. <input type="submit" value="Zaloguj" class="btn btn-success btn-block btn-sm">
  49. </div>
  50. </div>
  51. </form>
  52.  
  53.  
  54.  
  55.  
  56.  
  57. <?php
  58. }
  59. ...
  60. ?>


Ten post edytował viamarimar 29.11.2014, 15:48:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viamarimar
post
Post #2





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


Wyglada to tak w tej chwili ale teraz przepuszcza wszystko oO.. mamsakra:<

  1. if(isset($_POST['loguj']) && ($_POST['loguj'])==1) {
  2.  
  3. //filtrowanie
  4. $_POST['login']=mysql_real_escape_string(addslashes(trim($_POST['login'])));
  5. $_POST['haslo']=mysql_real_escape_string(addslashes(trim($_POST['haslo'])));
  6.  
  7.  
  8. //solenie hasla na podstawie bazy i soli ze skryptu
  9. $zap1 = mysql_query("SELECT token FROM users WHERE login = '".$_POST['login']."' AND aktywny='1' ") or die(mysql_error());
  10. $wiersz=mysql_fetch_array($zap1);
  11.  
  12. $sol = $wiersz['token']; //sól użytkownika pobierana z bazy
  13. $sol2 = sha1("abcdef"); //sól dodatkowa
  14. $hash = hash('sha512', $_POST['haslo'] . $sol . $sol2);
  15.  
  16.  
  17. $zap2 = mysql_query("SELECT login, haslo FROM users WHERE login = '".$_POST['login']."' AND haslo = '$hash' AND aktywny='1' ") or die(mysql_error());
  18.  
  19. if(mysql_fetch_array($zap2)>0) {
  20. // Użytkownik nie istnieje w bazie
  21. header("location: index.php?komunikat=1");
  22. }
  23. else {
  24. // Użytkownik istnieje
  25. $_SESSION['zalogowany'] = true;
  26. $_SESSION['login'] = $_POST['login'];
  27.  
  28. $user = $_SESSION['login'];
  29. mysql_query("UPDATE `users` SET `logowanie`=NOW(),`online`='1' WHERE login='$user'") or die(mysql_error());
  30.  
  31. header("location: index.php?komunikat=2");
  32.  
  33. }
  34. }



O komunikatach nie zapomnialem sa one tez:

  1. //1
  2. if (isset($_GET['komunikat']) && mysql_escape_string($_GET['komunikat'] == '1') && (int)($_GET['komunikat'])) {
  3. echo '<div class="alert alert-danger" alert-dismissible" role="alert">
  4. <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
  5. <strong>Błąd!</strong> Podałeś błędne dane, spróbuj ponownie!
  6. </div>';
  7. }
  8. //2
  9. if (isset($_GET['komunikat']) && mysql_escape_string($_GET['komunikat'] == '2') && (int)($_GET['komunikat'])) {
  10. echo '<div class="alert alert-success" alert-dismissible" role="alert">
  11. <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
  12. <strong>Sukces!</strong> Zostałeś zalogowany!
  13. </div>';
  14. }
  15. //3
  16. if (isset($_GET['komunikat']) && mysql_escape_string($_GET['komunikat'] == '3') && (int)($_GET['komunikat'])) {
  17. echo '<div class="alert alert-success" alert-dismissible" role="alert">
  18. <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
  19. <strong>Sukces!</strong> Konto zostało utworzone!
  20. </div>';
  21. }


pomoze ktos zrobic "cos" z tym tak zeby dzialalo to jak normalne logowanie a nie "otwarte drzwi" z napisem wejdz i bierdz co chcesz..

Ten post edytował viamarimar 29.11.2014, 23:17:27
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: 8.10.2025 - 10:22