Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Logowanie
kamilo818
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Witam,
czy taki system logowania jest bezpieczny?
Ewentualnie co jeszcze dodać/zmienić aby ulepszyć go?

login_form.php
  1. <form action="login.php" method="POST" class="form">
  2.  
  3. <input type="text" id="login"/><br>
  4. <input type="password" id="password"/><br>
  5. <input type="submit" value="Login"/>
  6.  
  7. </form>
  8.  
  9. <script>
  10. $('.form').on('submit', function(e) {
  11.  
  12. var login = $('#login').val();
  13. var password = $("#password").val();
  14. var dataString = 'login='+login+'&password='+ password;
  15.  
  16. $.ajax({
  17. type: 'post',
  18. url: ('login.php'),
  19. data: dataString,
  20.  
  21. beforeSend: function () {
  22. $('body').html('wait...');
  23. },
  24. success: function (obj) {
  25. $('body').html(obj);
  26. }
  27. });
  28.  
  29.  
  30. e.preventDefault();
  31. });
  32. </script>
  33. login.php
  34. [php]
  35. <?php
  36. $login = $_POST['login'];
  37. $password = $_POST['password'];
  38.  
  39. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  40. if(empty($login) || empty($password)){
  41. die ( 'Wypełnij wszystkie dane.' );
  42. }else{
  43. include('config.php');
  44.  
  45. connect($adres, $user, $pass, $baza);
  46.  
  47. $login = trim(strip_tags(mysqli_real_escape_string($link, $login)));
  48. $password = hash('sha1', trim(strip_tags(mysqli_real_escape_string($link, $password))));
  49.  
  50. $result = mysqli_query($link, "SELECT login,ip,mail FROM logowanie_users WHERE login='$login' AND password='$password'");
  51. $count = mysqli_num_rows($result);
  52. $row = mysqli_fetch_array($result);
  53.  
  54. $new_ip = $_SERVER['REMOTE_ADDR'];
  55.  
  56. if($count == 1){
  57.  
  58. $ip_array = explode(',',$row['ip']);
  59. if(!in_array($new_ip,$ip_array)){
  60.  
  61. $add_ip = $row['ip'].','.$new_ip;
  62. $mysql_update_ip = mysqli_query($link, "UPDATE logowanie_users SET ip='$add_ip' WHERE login='$login' AND password='$password'");
  63. echo "Logowanie z nieznanego adresu IP. W celu dodania adresu IP do zaufanych kliknij w link podany w e-mailu i zaloguj się ponownie!";
  64.  
  65. }else{
  66. $_SESSION['ip'] = $new_ip;
  67. $_SESSION['nick'] = $login;
  68. setcookie('islogged', 'islogged', time() + 3600);
  69. header('Location: userpanel.php');
  70. }
  71.  
  72. }else{
  73. echo 'Brak użytkownika w bazie';
  74. }
  75.  
  76. disconnect($adres, $user, $pass, $baza);
  77. }
  78. }
  79. ?>

register_form.php
  1. <form action="register.php" method="POST" class="form">
  2.  
  3. <input type="text" id="login"/><br>
  4. <input type="password" id="password"/><br>
  5. <input type="password" id="password_confirm"/><br>
  6. <input type="email" id="email"/><br>
  7. <input type="submit" value="Register"/>
  8.  
  9. </form>
  10.  
  11. <script>
  12. $('.form').on('submit', function(e) {
  13.  
  14. var login = $('#login').val();
  15. var email = $("#email").val();
  16. var password = $("#password").val();
  17. var password_confirm = $("#password_confirm").val();
  18. var dataString = 'login='+login+'&email=' + email + '&password=' + password + '&password_confirm=' + password_confirm;
  19.  
  20. $.ajax({
  21. type: 'post',
  22. url: ('register.php'),
  23. data: dataString,
  24.  
  25. beforeSend: function () {
  26. $('body').html('wait...');
  27. },
  28. success: function (obj) {
  29. $('body').html(obj);
  30. }
  31. });
  32.  
  33.  
  34. e.preventDefault();
  35. });
  36. </script>

register.php
  1. <?php
  2. include('config.php');
  3.  
  4. $login = $_POST['login'];
  5. $password = $_POST['password'];
  6. $password_confirm = $_POST['password_confirm'];
  7. $email = $_POST['email'];
  8.  
  9. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  10. if(empty($login) || empty($password) || empty($password_confirm) || empty($email)){
  11. die ( 'Wypełnij wszystkie dane.' );
  12. }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
  13. die ('Nie poprawny adres E-mail.' );
  14. }elseif($password!=$password_confirm){
  15. die('Hasła niezgodne!');
  16. }else{
  17. connect($adres, $user, $pass, $baza);
  18.  
  19. $login = trim(strip_tags(mysqli_real_escape_string($link,$login)));
  20. $password = hash('sha1', trim(strip_tags(mysqli_real_escape_string($link,$password))));
  21. $email = trim(strip_tags(mysqli_real_escape_string($link,$email)));
  22. $ip = $_SERVER['REMOTE_ADDR'];
  23. $now = date("Y-m-d H:i:s");
  24.  
  25. $sql = "SELECT login FROM logowanie_users WHERE login='$login'";
  26. $result = mysqli_query($link, $sql);
  27. $count = mysqli_num_rows($result);
  28. if($count!=0){
  29. die('Taki login już istnieje');
  30. }
  31.  
  32. $sql = "SELECT mail FROM logowanie_users WHERE mail='$email'";
  33. $result = mysqli_query($link, $sql);
  34. $count = mysqli_num_rows($result);
  35. if($count!=0){
  36. die('Taki e-mail już istnieje');
  37. }
  38.  
  39. mysqli_query($link,"INSERT INTO logowanie_users SET login='$login', password='$password', mail='$email',date='$now',ip='$ip'");
  40.  
  41. if(mysqli_affected_rows($link) == 1){
  42. echo 'Zostałeś pomyślnie zarejestrowany';
  43. }
  44.  
  45. disconnect($adres, $user, $pass, $baza);
  46. }
  47. }
  48. ?>

userpanel.php
  1. <?php
  2. if(empty($_COOKIE['islogged'])){
  3. header('Refresh: 2; url=login_form.php');
  4. die( 'Czas sesji wygasł. Proszę zalogować się ponownie.<br> Za chwilę nastąpi przepierowanie');
  5. }
  6.  
  7. if(isset($_SESSION['nick']) && isset($_SESSION['ip']) && $_SESSION['ip']==$_SERVER['REMOTE_ADDR']){
  8. echo '<p>Treść dla zalogowanych</p>';
  9. echo '<a href="logout.php">Wyloguj</a>';
  10. }else{
  11. echo 'Nie jesteś zalogowany. Przejdź do <a href="login_form.php">Formularza logowania</a>.';
  12. }
  13. ?>
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: 15.09.2025 - 08:45