Hướng dẫn php email and password validation - xác thực email và mật khẩu php


Chương này cho thấy cách xác nhận tên, e-mail và URL.


PHP - Tên xác thực

Mã dưới đây cho thấy một cách đơn giản để kiểm tra xem trường Tên chỉ chứa các chữ cái, dấu gạch ngang, dấu nháy đơn và khoảng trắng. Nếu giá trị của trường Tên không hợp lệ, thì hãy lưu trữ thông báo lỗi:

$ name = test_input ($ _ post ["name"]); if (! preg_match ("/^[a-za-z- ']*$/", $ name)) {& nbsp; $ nameerr = "Chỉ các chữ cái và không gian trắng cho phép"; }
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
  $nameErr = "Only letters and white space allowed";
}

Hàm preg_match () tìm kiếm một chuỗi cho mẫu, trả về true nếu mẫu tồn tại và sai.


PHP - Xác thực e -mail

Cách dễ nhất và an toàn nhất để kiểm tra xem một địa chỉ email được hình thành tốt là sử dụng chức năng Filter_var () của PHP.

Trong mã bên dưới, nếu địa chỉ e-mail không được hình thành tốt, thì hãy lưu trữ thông báo lỗi:

$ email = test_input ($ _ post ["email"]); if (! filter_var ($ email, filter_validate_email)) {& nbsp; $ emailerr = "Định dạng email không hợp lệ"; }
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "Invalid email format";
}


PHP - Xác thực URL

Mã bên dưới cho thấy một cách để kiểm tra xem cú pháp địa chỉ URL có hợp lệ không (biểu thức chính quy này cũng cho phép các dấu gạch ngang trong URL). Nếu cú ​​pháp địa chỉ URL không hợp lệ, thì hãy lưu trữ thông báo lỗi:

$ trang web = test_input ($ _ post ["trang web"]); if (! preg_match ("/\ b (? :( ?: https? | ftp): \/\/| www \.) [ 9+&@#\/%? = ~ _ |!:,.;]*[-a-z0-9+&@#\/%= ~ _ |] & nbsp; $ trang weberr = "URL không hợp lệ"; }
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
  $websiteErr = "Invalid URL";
}



PHP - Tên xác thực, e -mail và URL

Bây giờ, kịch bản trông như thế này:

Thí dụ

// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($ _server ["request_method"] == "post") {& nbsp; if (trống ($ _ post ["name"])) {& nbsp; & nbsp; & nbsp; $ nameerr = "Tên là bắt buộc"; & nbsp; } other {& nbsp; & nbsp; & nbsp; $ name = test_input ($ _ post ["name"]); & nbsp; & nbsp; & nbsp; // Kiểm tra nếu tên chỉ chứa các chữ cái và khoảng trắng & nbsp; & nbsp; & nbsp; if (! preg_match ("/^[a-za-z- ']*$/", $ name)) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ nameerr = "Chỉ các chữ cái và không gian trắng cho phép"; & nbsp; & nbsp; & nbsp; } & nbsp; }
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
      $nameErr = "Only letters and white space allowed";
    }
  }

& nbsp; if (trống ($ _ post ["email"])) {& nbsp; & nbsp; & nbsp; $ emailerr = "Email là bắt buộc"; & nbsp; } other {& nbsp; & nbsp; & nbsp; $ email = test_input ($ _ post ["email"]); & nbsp; & nbsp; & nbsp; // Kiểm tra xem địa chỉ e-mail có được hình thành tốt & nbsp; & nbsp; & nbsp; if (! filter_var ($ email, filter_validate_email)) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ emailerr = "Định dạng email không hợp lệ"; & nbsp; & nbsp; & nbsp; } & nbsp; }
    $emailErr = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Invalid email format";
    }
  }

& nbsp; if (trống ($ _ post ["trang web"])) {& nbsp; & nbsp; & nbsp; $ trang web = ""; & nbsp; } other {& nbsp; & nbsp; & nbsp; $ trang web = test_input ($ _ post ["trang web"]); & nbsp; & nbsp; & nbsp; // Kiểm tra xem cú pháp địa chỉ URL có hợp lệ không (biểu thức chính quy này cũng cho phép các dấu gạch ngang trong URL) & nbsp; & nbsp; & nbsp; if (! preg_match ("/\ b (? :( ?: https? | ftp): \/\/| www \.) [-a-z0-9+&@#\/%? = ~ _ |! :,.;]*[-a-z0-9+&@#\/%= ~ _ |]/i ", $ trang web)) {& nbsp; & nbsp; & nbsp; $ trang weberr = "URL không hợp lệ"; & nbsp; & nbsp; & nbsp; } & nbsp; }
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
    // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
      $websiteErr = "Invalid URL";
    }
  }

& nbsp; if (trống ($ _ post ["bình luận"])) {& nbsp; & nbsp; & nbsp; $ bình luận = ""; & nbsp; } other {& nbsp; & nbsp; & nbsp; $ bình luận = test_input ($ _ post ["bình luận"]); & nbsp; }
    $comment = "";
  } else {
    $comment = test_input($_POST["comment"]);
  }

& nbsp; if (trống ($ _ post ["giới tính"])) {& nbsp; & nbsp; & nbsp; $ giới tính = "Giới tính là bắt buộc"; & nbsp; } other {& nbsp; & nbsp; & nbsp; $ giới tính = test_input ($ _ post ["Giới tính"]); & nbsp; }}?>
    $genderErr = "Gender is required";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

Chạy ví dụ »

Bước tiếp theo là chỉ ra cách ngăn biểu mẫu làm trống tất cả các trường đầu vào khi người dùng gửi biểu mẫu.



Khóa học cho thấy cách xây dựng chức năng đăng ký với PHP và MySQL. Trong khóa học, chúng tôi sẽ học và thực hành xây dựng chức năng này và cách gửi email xác nhận để đăng ký thành công người dùng trong ứng dụng PHP.

Trong bài học này, chúng ta sẽ học cách xác nhận dữ liệu đến từ mẫu đăng ký người dùng. Tập lệnh mới mà chúng tôi sẽ tạo trong bài học này chịu trách nhiệm xác thực dữ liệu và logic xử lý lỗi.

Đảm bảo kiểm tra bài học trước để có mẫu đăng ký người dùng tại chỗ cho bài học này.

Tổng quan về bài học

Trong bài học này, chúng ta sẽ học:

  • Làm thế nào để đảm bảo tất cả các trường cần thiết có mặt
  • Cách xác thực và kiểm tra mật khẩu và xác nhận mật khẩu

Đăng ký biểu mẫu

Mẫu thanh ghi mà chúng tôi đã tạo trong bài học trước thực hiện hai hành động:

  • Nó chuyển hướng người dùng từ trang register.php đến trang signup.php
  • Nó gửi dữ liệu đã gửi qua biến mảng $ _POST đến một tập lệnh với tên signup.php

Hướng dẫn php email and password validation - xác thực email và mật khẩu php

Biến



$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
0 chứa dữ liệu được gửi từ biểu mẫu và được chuyển đến tập lệnh signup.php.

Rất dễ dàng truy cập dữ liệu biểu mẫu từ biến



$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
0. Để thực hiện việc này, biến


$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
0 nên được sử dụng như một biến mảng với khóa, được sử dụng làm tên của trường Mẫu đầu vào.

Vui lòng tham khảo biểu mẫu để có được đối số tên đúng của các trường đầu vào.

<form action="signup.php" method="POST">
  Username: <input type="text" name="username" /><br />
  Email: <input type="text" name="email" /><br />
  Password: <input type="text" name="password" /><br />
  Confirm password: <input type="text" name="password_confirm" /><br />
  <input type="submit" value="Register" />
form>

Tên của các trường đầu vào biểu mẫu là:

  • tên tài khoản
  • e-mail
  • mật khẩu mở khóa
  • password_confirm

Để truy cập dữ liệu đã được gửi và có sẵn trong mảng biến



$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
0, chúng tôi phải sử dụng các khóa ở trên và gán kết quả thành các biến.



$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];

Điều này sẽ hoạt động, tuy nhiên nếu không có dữ liệu với khóa sử dụng PHP sẽ hiển thị như một cảnh báo, nói rằng chìa khóa không tồn tại.

Thẩm định

Để xác thực, chúng tôi phải xác minh rằng dữ liệu được gửi từ mẫu đăng ký có sẵn trong mảng biến ____10 và không trống. Vì chúng tôi không muốn cho phép các giá trị trống khi tất cả các trường đầu vào biểu mẫu được yêu cầu cho quy trình đăng ký người dùng.

Chúng tôi sẽ sử dụng chức năng PHP



$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
6. Hàm cho phép kiểm tra xem khóa của tồn tại trong mảng và xác minh rằng giá trị có mặt và không trống.

Hãy gán biến



$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
0 vào biến


$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
8 cục bộ.



$data = $_POST;

if (empty($data['username']) ||
    empty($data['password']) ||
    empty($data['email']) ||
    empty($data['password_confirm'])) {
    
    //do something
}

Như bạn đã nhận thấy, chúng tôi đã sử dụng toán tử



$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST['username'];
9 (hoặc) để đảm bảo rằng tất cả các tham số được cung cấp. Nếu ít nhất một giá trị trống hoặc không tồn tại, chúng tôi sẽ hiển thị thông báo lỗi cho người dùng.

Hàm



$data = $_POST;

if (empty($data['username']) ||
    empty($data['password']) ||
    empty($data['email']) ||
    empty($data['password_confirm'])) {
    
    //do something
}
0 PHP cho phép in một tin nhắn trong trình duyệt và hoàn thành việc thực thi tập lệnh. Việc sử dụng hàm


$data = $_POST;

if (empty($data['username']) ||
    empty($data['password']) ||
    empty($data['email']) ||
    empty($data['password_confirm'])) {
    
    //do something
}
0 là một giải pháp tạm thời, chúng tôi sẽ xóa và sử dụng biến


$data = $_POST;

if (empty($data['username']) ||
    empty($data['password']) ||
    empty($data['email']) ||
    empty($data['password_confirm'])) {
    
    //do something
}
2 để đặt thông báo. Hiện tại, chúng ta hãy hiển thị thông báo trên cùng một trang.



die('Please fill all required fields!');

Hãy đặt thông điệp vào câu lệnh



$data = $_POST;

if (empty($data['username']) ||
    empty($data['password']) ||
    empty($data['email']) ||
    empty($data['password_confirm'])) {
    
    //do something
}
3.



$data = $_POST;

if (empty($data['username']) ||
    empty($data['password']) ||
    empty($data['email']) ||
    empty($data['password_confirm'])) {
    
    die('Please fill all required fields!');
}

Xác thực mật khẩu

Đối với các trường mật khẩu và mật khẩu_confirm, chúng tôi sẽ kiểm tra xem cả hai giá trị có giống nhau không. Chúng tôi sẽ hiển thị một thông báo lỗi nếu nó không.



if ($data['password'] !== $data['password_confirm']) {
   die('Password and Confirm password should match!');   
}

Do đó, dữ liệu được truyền từ mẫu đăng ký người dùng được kiểm tra cho sự hiện diện của nó và mật khẩu và mật khẩu xác nhận khớp.

Tập lệnh signup.php với cả hai xác nhận dưới đây:



$data = $_POST;

if (empty($data['username']) ||
    empty($data['password']) ||
    empty($data['email']) ||
    empty($data['password_confirm'])) {
    
    die('Please fill all required fields!');
}

if ($data['password'] !== $data['password_confirm']) {
   die('Password and Confirm password should match!');   
}

//other logic...

Trong bài học tiếp theo, chúng tôi sẽ bao gồm xác thực cơ sở dữ liệu.

Làm cách nào để xác thực một địa chỉ email trong PHP?

PHP-Xác thực e-mail Cách dễ nhất và an toàn nhất để kiểm tra xem địa chỉ email có được hình thành tốt không phải là sử dụng chức năng Filter_var () của PHP.use PHP's filter_var() function.

Làm cách nào để lấy mật khẩu và xác nhận mật khẩu trong PHP?

if (! trống ($ _ post ["password"]) && ($ _post ["password"] == $ _post ["cpassword"])) {$ password = test_input ($ _ post ["password"]);$ cpassword = test_input ($ _ post ["cpassword"]);if (strlen ($ _ post ["password"])

Làm thế nào xác thực email trong PHP giải thích với ví dụ?

Thí dụ.if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("$email is a valid email address"); } else{ echo("$email is not a valid email address"); } ?>