Thông báo tên người dùng hoặc mật khẩu sai PHP

Tôi đã viết mã để đăng nhập và nó chuyển hướng đến các trang khác nhau tùy theo vai trò của người dùng nhưng vấn đề là nếu tên người dùng hoặc mật khẩu sai thì nó không hiển thị lỗi mà chỉ hiển thị trang trống. Vui lòng giúp tôi hiển thị thông báo lỗi cho mật khẩu hoặc tên người dùng sai

biểu mẫu đăng nhập. php(mã html)

	<form method="post" action="login.php">
		<label>User Name:</label>
		<input type="text" id="username" name="username" />
		<label>Password:</label>
		<input type="password" id="password" name="password" />
		<label></label><br/>
		<input type="submit" id="login" value="Login" />
		<input type="button" id="cancel_hide" value="Cancel" />

	</form>
 </div>
<div id="shadow" class="popup"></div>

jquery.
(tài liệu). sẵn sàng(function(e) { (" #shadow "). fadeIn(“bình thường”);
("#login_form"). fadeIn("bình thường"); . tiêu điểm();("#user_name").focus();

$("#cancel_hide").click(function(){
    $("#username").val()="";
	$("#password").val()="";

});
$(" #tên người dùng "). thay đổi(hàm(e) {

});
$(" #login "). nhấp chuột (hàm(){

    if($("#username").val().length==0 && $("#password").val().length==0)
        {
           // $(this).next().html("Field needs filling");
		   $("#username").after('<span class="errorkeyup">Field cannot be empty</span>');
		   $("#password").after('<span class="errorkeyup">Field cannot be empty</span>');
	        //return false;
            success = false;
        }
		
}); 

});

đăng nhập. php

session_start();include(‘kết nối. php’);
session_start();
include(‘connection.php’);

tên người dùng = _REQUEST['tên người dùng'];
mật khẩu = _REQUEST['mật khẩu'];

$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$login = mysql_query(“chọn * từ đăng nhập người dùng trong đó tên người dùng = '$tên người dùng' và mật khẩu = '$mật khẩu'”);
$num_row = mysql_num_rows($login); . Trang chính. php”);
$row=mysql_fetch_array($login);
if(num_row == 1) { echo "Login Successfull"; _SESSION[‘username’]=row['username']; _SESSION[‘userrole’]=$row[‘usertype’];
if($row[‘usertype’]==‘admin’)
{
header(“Location:mainpage.php”);
//header(“Vị trí. u2. php”);
exit();
}
else if($row['usertype']=='user . hồ sơ. php”);
{
header(“Location:profilepg.php”);
exit();
}
}
else {

 // exit();
  /*echo '<script type="text/javascript"> 
  document.getElementById("add_err").innerHTML= "Error";
   window.history.back();
  </script>';*/
 //header("Location:loginform.php");

}

?>

  • Thông báo tên người dùng hoặc mật khẩu sai PHP
    firas
    Thành viên mới
  • Thông báo tên người dùng hoặc mật khẩu sai PHP

  • Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP

  • Bài viết. 13
    Chủ đề. 4
    Đã tham gia. Tháng 1 năm 2019

    Danh tiếng. 0

#1

28-03-2019, 07. 43 PM
(Bài đăng này đã được sửa đổi lần cuối. 28-03-2019, 07. 53 PM bởi firas. )


Xin chào, tôi mới nhận thấy rằng khi tôi đăng nhập vào hệ thống của mình bằng mật khẩu sai, tôi vẫn có thể đăng nhập vào hệ thống, nhưng khi tôi nhập sai tên người dùng, tôi không thể đăng nhập vào hệ thống. Ai giúp mình xem mình làm sai chỗ nào T_T. Cảm ơn trước.

Bộ điều khiển.

Mã.

    //login user
    public function login(){

        $data['title'] = 'Sign In';

        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');
        
        if($this->form_validation->run() === FALSE)
        {
            $this->load->view('templates/header');
            $this->load->view('users/login', $data);
            $this->load->view('templates/footer');
        } else {

            //Get username
            $username = $this->input->post('username');
            //Get and encrypt the password
            $password = $this->bcrypt->verify('password');



            // Login user
            $user_id = $this->user_model->login($username, $password);

            if($user_id){
                // Create Session
                $user_data = array(
                    'user_id' => $user_id,
                    'username' => $username,
                    'logged_in' => true
                );

                $this->session->set_userdata($user_data);

                // set message
            $this->session->set_flashdata('user_loggedin','You are now log in');

            redirect('home');

            }else {
                // set message
            $this->session->set_flashdata('login_failed','Login is invalid');

            redirect('users/login');

            }
        }
    }


Người mẫu.

Mã.

    //Login user in
    public function login($username, $password){
        $this->db->where('username', $username);
        $this->db->where('password', $password);

        $result = $this->db->get('omg_user');

        if($result->num_rows() == 1){
            return $result->row(0)->user_id;
        } else {
            return false;
        }

    }


thư viện bcrypt tùy chỉnh.

Mã.


class Bcrypt {
 private $rounds;

 public function __construct($rounds = 12) {
   if(CRYPT_BLOWFISH != 1) {
     throw new Exception("bcrypt not supported in this installation. See http://php.net/crypt");
   }

   $this->rounds = $rounds;
 }

 public function hash($input) {
   $hash = crypt($input, $this->getSalt());

   if(strlen($hash) > 13)
     return $hash;

   return false;
 }

 public function verify($input, $existingHash) {
   $hash = crypt($input, $existingHash);
   
   return $hash === $existingHash;
 }

 private function getSalt() {
   $salt = sprintf('$2a$%02d$', $this->rounds);

   $bytes = $this->getRandomBytes(16);

   $salt .= $this->encodeBytes($bytes);

   return $salt;
 }

 private $randomState;
 private function getRandomBytes($count) {
   $bytes = '';

   if(function_exists('openssl_random_pseudo_bytes') &&
       (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) { // OpenSSL slow on Win
     $bytes = openssl_random_pseudo_bytes($count);
   }

   if($bytes === '' && is_readable('/dev/urandom') &&
      ($hRand = @fopen('/dev/urandom', 'rb')) !== FALSE) {
     $bytes = fread($hRand, $count);
     fclose($hRand);
   }

   if(strlen($bytes) < $count) {
     $bytes = '';

     if($this->randomState === null) {
       $this->randomState = microtime();
       if(function_exists('getmypid')) {
         $this->randomState .= getmypid();
       }
     }

     for($i = 0; $i < $count; $i += 16) {
       $this->randomState = md5(microtime() . $this->randomState);

       if (PHP_VERSION >= '5') {
         $bytes .= md5($this->randomState, true);
       } else {
         $bytes .= pack('H*', md5($this->randomState));
       }
     }

     $bytes = substr($bytes, 0, $count);
   }

   return $bytes;
 }

 private function encodeBytes($input) {
   // The following is code from the PHP Password Hashing Framework
   $itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

   $output = '';
   $i = 0;
   do {
     $c1 = ord($input[$i++]);
     $output .= $itoa64[$c1 >> 2];
     $c1 = ($c1 & 0x03) << 4;
     if ($i >= 16) {
       $output .= $itoa64[$c1];
       break;
     }

     $c2 = ord($input[$i++]);
     $c1 |= $c2 >> 4;
     $output .= $itoa64[$c1];
     $c1 = ($c2 & 0x0f) << 2;

     $c2 = ord($input[$i++]);
     $c1 |= $c2 >> 6;
     $output .= $itoa64[$c1];
     $output .= $itoa64[$c2 & 0x3f];
   } while (1);

   return $output;
 }
}

  • Thông báo tên người dùng hoặc mật khẩu sai PHP
    jreklund
    Quản trị viên
  • Thông báo tên người dùng hoặc mật khẩu sai PHP

  • Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP

  • Bài viết. 1.410
    Chủ đề. 3
    Đã tham gia. Tháng 8 năm 2017

    Danh tiếng. 42

#2

29-03-2019, 11. 02 giờ chiều


Trong bộ điều khiển của bạn.

Mã.

$password = $this->bcrypt->verify('password');


Trong thư viện bcrypt của bạn.

Mã.

________số 8


Bạn không chuyển một hàm băm hiện có vào hàm xác minh của mình.

Bạn cần làm.
1. Nhận và lưu trữ tên người dùng và mật khẩu từ người dùng trong một biến
2. Tìm nạp người dùng dựa trên tên người dùng
3. Xác minh mật khẩu người dùng đã nhập với mật khẩu được lưu trữ trong cơ sở dữ liệu

Mẹo.
Xóa thư viện của bạn và thay vào đó sử dụng các chức năng tiêu chuẩn
https. //www. php. net/thủ công/vi/chức năng. p. d-băm. php
https. //www. php. net/thủ công/vi/chức năng. p. thẩm tra. php

Trong trường hợp bạn chưa nâng cấp PHP7 ngay bây giờ. hoặc không.
https. //github. com/ircmaxell/password_compat

  • Thông báo tên người dùng hoặc mật khẩu sai PHP
    InsiteFX
    Người điều hành cấp cao
  • Thông báo tên người dùng hoặc mật khẩu sai PHP

  • Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP
    Thông báo tên người dùng hoặc mật khẩu sai PHP

  • Bài đăng. 5,653
    Chủ đề. 182
    Đã tham gia. Tháng 10 năm 2014

    Danh tiếng. 178

#3

31-03-2019, 03. 11 giờ sáng


Bạn nên sử dụng các phương thức PHP password_hash() và password_verify() mới

Bạn đã thử những gì? What did you Get? What did you Expect?


Đã tham gia cộng đồng CodeIgniter 2009. ( Ứng dụng trò chuyện. insitfx )

Làm cách nào để hiển thị thông báo lỗi đăng nhập trong php?

Ghi các lỗi PHP vào tệp bằng cách sử dụng hàm error_log() . Loại, đích và tiêu đề đều là các tham số tùy chọn cho chức năng này. error_log("Có gì đó không ổn. ", 0);

Làm cách nào để hiển thị thông báo lỗi đăng nhập trên cùng một trang trong hệ thống dựa trên php?

php session_start(); . trang chủ. php"); // gửi người dùng đến trang chủ chẳng hạn. } other{ $_SESSION["error"] = $error; . đăng nhập

Làm cách nào tôi có thể biết tên người dùng và mật khẩu php của mình mà không cần cơ sở dữ liệu?

Bước 1. Đầu tiên, chúng ta cần thiết kế một biểu mẫu HTML
Bước 2. Tiếp theo, chúng ta cần viết một đoạn script PHP để kiểm tra xác thực đăng nhập
Bước 3. Nếu đăng nhập đúng, thì chúng ta cần chuyển hướng trang đến khu vực được bảo vệ

Làm cách nào để thay đổi tên người dùng và mật khẩu trong php?

Thay đổi mật khẩu người dùng trong PHP và MYSQL – .
Mật khẩu hiện tại – Mật khẩu hiện tại là mật khẩu hiện tại được người dùng sử dụng để đăng nhập tài khoản. Trước hết, chúng tôi sẽ xác minh mật khẩu hiện tại. .
Mật khẩu mới – Nhập mật khẩu mới
Xác nhận mật khẩu mới – Nhập lại mật khẩu mới để xác nhận