Xác thực mẫu trong PHP với ví dụ là gì?

Ví dụ: chúng tôi có thể yêu cầu mật khẩu của người dùng dài hơn 7 chữ cái và chứa chữ hoa, chữ thường và các ký tự đặc biệt cũng như một số

lưu ý Không có giải pháp một kích cỡ phù hợp với tất cả để xác thực mẫu. Tất cả phụ thuộc vào loại trường bạn sử dụng, những gì bạn muốn đánh giá và mức độ kỹ lưỡng mà bạn muốn xác nhận của mình.

Trong bài học này, chúng tôi sẽ giữ mọi thứ đơn giản và chỉ xác thực các trường văn bản, email và mật khẩu. Tuy nhiên, các khái niệm tương tự cũng sẽ áp dụng trên các phần tử biểu mẫu khác

Nếu bạn đã theo dõi khóa học, hãy tạo một tệp mới có tên xác thực biểu mẫu. php trong thư mục /xampp/htdocs/PHPProjects/ của bạn. Nếu không, bất kỳ sản phẩm nào. tập tin php sẽ làm

Bên trong, tạo một biểu mẫu đơn giản gửi đến chính nó như chúng ta đã học trong bài học




Mặc dù bạn có thể làm cho các trường mật khẩu trở nên cố định, chúng tôi thực sự khuyên bạn không nên làm như vậy




">

    

Name*

Email*

Password*

Submit

Hầu hết các trang web và ứng dụng đều có dữ liệu dạng dính. Nếu một biểu mẫu ngắn và không phức tạp, người dùng có thể không bận tâm lắm khi nó không dính. Nếu một biểu mẫu dài hơn hoặc phức tạp hơn, hầu hết người dùng sẽ rời khỏi trang web thay vì điền lại biểu mẫu

Bạn sẽ thấy cách xác thực các trường khác nhau được sử dụng chung, như văn bản, danh sách, hộp kiểm, nút radio và chúng tôi cũng sẽ xem cách giữ lại dữ liệu POST để sau khi người dùng gửi biểu mẫu, ngay cả khi dữ liệu được cung cấp không hợp lệ,

Bản thử trực tiếp

Sau đây là bản demo trực tiếp của biểu mẫu PHP mà chúng tôi sẽ tạo vào cuối hướng dẫn này


trình bày bằng hình ảnh

Hình ảnh sau đây cho thấy những gì chúng ta cần làm trong khi xác thực biểu mẫu

Xác thực mẫu trong PHP với ví dụ là gì?

 

Tệp HTML cơ sở

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Form validation with parsely.js</title>
<link href="../../twitter-bootstrap/twitter-bootstrap-v2/docs/assets/css/bootstrap.css" rel="stylesheet">
<link href="parsely.css" rel="stylesheet">
<style type="text/css">
h1 {margin-bottom:20px}
input, label {margin-top:7px; margin-bottom:7px; color:#000066; font-size: 18px; padding-right: 7px}
input[type='checkbox'] {margin-left: 5px}
.note {color: #ff0000}
.success_msg{color:#006600}
</style>
</head>
<body>
<div class="container">
<h1>Travel reservation form</h1>
<h3><span class="note">*</span> denotes mandotory</h3>
<form id="registration_form" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">

</form>
</div>
</body>
</html>

Chúng tôi đã sử dụng bootstrap để tạo kiểu cho biểu mẫu, nhưng đối với một số kiểu, chúng tôi đã thêm một số kiểu tùy chỉnh

Chúng tôi đã sử dụng phương pháp

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
5 và
if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
6 nói rằng sau khi gửi dữ liệu biểu mẫu sẽ chỉ được xử lý bởi tập lệnh PHP có trong tệp này. Bạn có thể chọn gửi dữ liệu biểu mẫu đến một tệp khác

Chỉ xác thực cho không trống, bảng chữ cái và khoảng trắng

Đoạn mã sau được thêm vào trong biểu mẫu

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>

Mã xác thực

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}

xác thực email

Mã được thêm vào trong biểu mẫu

<label>Email address<span class="note">*</span>:</label>
  <input type="text" name="email_addr" value="<?php echo $_POST['email_addr']; ?>">
   <?php echo "<p class='note'>".$msg_email."</p>";?>
  <?php echo "<p class='note'>".$msg2_email."</p>";?>

Mã xác thực

________số 8_______

Danh sách lựa chọn Xác nhận

Mã được thêm vào trong biểu mẫu

<label>Select Tour Package<span class="note">*</span>:</label>	
   <select name="package">
	<option value="Goa" <?= ($_POST['package'] == "1")? "selected":"";?>>Goa</options>
	<option value="Kashmir" <?= ($_POST['package'] == "2")? "selected":"";?>>Kashmir</options>
	<option value="Rajasthan" <?= ($_POST['package'] == "3")? "selected":"";?>>Rajasthan</options>
   </select>

Mã xác thực

if (isset($_POST['submit'])) {
if(empty($_POST['package']))
$msg_package = "You must select a package";
}

Xác thực ngày

Mã được thêm vào trong biểu mẫu

<label>Arrival date<span class="note">*</span>:</label>
  <input type="text" name="arv_dt" value="<?php echo $_POST['arv_dt']; ?>">
  <?php echo "<p class='note'>".$msg_dt."</p>";?>
  <?php echo "<p class='note'>".$msg2_dt."</p>";?>
  <?php echo "<p class='note'>".$msg3_dt."</p>";?>

Mã xác thực

if (isset($_POST['submit'])) {
//date validation
if(empty($_POST['arv_dt']))
$msg_dt = "You must supply an arival date";
if(!empty($_POST['arv_dt']))
{
    $dt = $_POST['arv_dt'];
    $array = explode("/",$dt);

    $day = $array[1];
    $month = $array[0];
    $year = $array[2];

    if(!checkdate($month, $day, $year))
    {
    $msg2_dt = "Must be in m/d/y format";
    }
    else
    {
    $today = strtotime("now");
    if(strtotime($dt)<$today)
    $msg3_dt = "Date supplied is before present day";
    }
}
}

Xác thực cho số nguyên không trống và không âm

Mã được thêm vào trong biểu mẫu

<label>Number of persons<span class="note">*</span>:</label>
  <input type="text" name="persons" value="<?php echo $_POST['persons']; ?>"s>
  <?php echo "<p class='note'>".$msg_persons."</p>";?>
  <?php echo "<p class='note'>".$msg2_persons."</p>";?>

Mã xác thực

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
0

Xác thực hộp kiểm

Mã được thêm vào trong biểu mẫu

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
1

Mã xác thực

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
2

Chỉ xác thực cho các ký tự chữ và số với số lượng ký tự tối thiểu

Mã được thêm vào trong biểu mẫu

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
3

Mã xác thực

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
4

Lưu ý rằng tất cả các đoạn mã trong "Mã để xác thực" được bao bọc bởi

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
7 và
if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
8. Trong thực tế, bạn có thể giữ tất cả các mã trong một
if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
7 và
if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
8

Xác thực cho nút radio

Mã được thêm vào trong biểu mẫu

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
5_______5_______6

gửi nút

Mã được thêm vào trong biểu mẫu

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
7

Đoạn mã cuối cùng để cho người dùng biết rằng biểu mẫu đã được xác thực

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
8

Và bây giờ bạn cần hiển thị một thông báo thông báo cho người dùng rằng biểu mẫu đã được xác thực. Vì vậy, chúng tôi thêm một dòng mã PHP ngay trước khi biểu mẫu bắt đầu

<label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
9

Tải xuống mã nguồn

Cách gửi dữ liệu qua thư được thu thập sau khi xác thực

NẾU bạn muốn gửi dữ liệu được thu thập thông qua biểu mẫu này sau khi xác thực tới địa chỉ thư của ai đó, đoạn mã sau sẽ giúp bạn thực hiện điều đó

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
0

Vì vậy, bạn thử tìm hiểu cách viết code cho nó từng bước, bước 1 là khai báo địa chỉ mail mà bạn muốn gửi mail, bước 2 là viết chủ đề mail, bước 3 là thu thập dữ liệu từ . Bạn có thể in một số tin nhắn sau khi gửi thư tùy chọn

Xem thêm. tiêm SQL

Trước. Xử lý biểu mẫu PHP
Kế tiếp. Tham chiếu hàm PHP



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

PHP. Lời khuyên trong ngày

PHP - Lợi thế của việc sử dụng heredoc trong PHP là gì?

Đối với tôi, cú pháp heredoc rõ ràng hơn nhiều và nó thực sự hữu ích cho các chuỗi nhiều dòng và tránh các vấn đề về trích dẫn. Ngày trước, tôi thường sử dụng chúng để xây dựng các truy vấn SQL

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
1

Đối với tôi, điều này có xác suất đưa ra lỗi cú pháp thấp hơn so với sử dụng dấu ngoặc kép

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
2

Một điểm khác là tránh thoát dấu ngoặc kép trong chuỗi của bạn

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
3

Vấn đề ở trên là lỗi cú pháp (thiếu trích dẫn thoát) tôi vừa giới thiệu trái ngược với cú pháp tài liệu ở đây

if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
}
4

Đó là một chút phong cách, nhưng tôi sử dụng các quy tắc sau đây làm quy tắc cho các tài liệu đơn, đôi và ở đây để xác định chuỗi

Làm cách nào để sử dụng xác thực ở dạng PHP?

Mã bên dưới xác thực rằng người dùng nhấp vào nút gửi và gửi dữ liệu biểu mẫu đến máy chủ theo một trong các phương pháp sau - nhận hoặc đăng. .
if (isset ($_POST['submit']) {
echo "Nút Gửi được bấm. “;
nếu ($_SERVER["REQUEST_METHOD"] == "POST") {
echo "Dữ liệu được gửi bằng phương thức POST ";
} khác {

Xác thực mẫu có nghĩa là gì?

Xác thực biểu mẫu là một “ quy trình kỹ thuật trong đó biểu mẫu web kiểm tra xem thông tin do người dùng cung cấp có chính xác hay không . ” Biểu mẫu sẽ cảnh báo người dùng rằng họ đã nhầm lẫn và cần sửa một số thứ để tiếp tục hoặc biểu mẫu sẽ được xác thực và người dùng sẽ có thể tiếp tục quá trình đăng ký của họ.

Xác thực trong PHP nghĩa là gì?

Xác thực có nghĩa là kiểm tra thông tin đầu vào do người dùng gửi . Có hai loại xác thực có sẵn trong PHP. Chúng như sau - Xác thực phía máy khách - Xác thực được thực hiện trên các trình duyệt web của máy khách.

Ba loại xác thực biểu mẫu là gì?

Các kỹ thuật xác thực đầu vào được chia thành ba loại. .
Xác thực phía máy chủ. Với xác thực phía máy chủ, tất cả thông tin biểu mẫu do người dùng nhập sẽ được gửi đến máy chủ để được xác thực khi gửi biểu mẫu. .
Xác thực phía máy khách. .
Xác thực thời gian thực