Borang PHP - E-mel Pengesahan dan URL

Apabila bercakap tentang pengesahan, kita perlu mengetahui ungkapan biasa:

Ungkapan biasa

Ungkapan biasa ialah kaedah untuk menerangkan peraturan teks Ia bukan padanan tepat, tetapi padanan kabur melalui beberapa simbol tertentu

Dalam PHP, kami menggunakan fungsi preg_match untuk Melaksanakan tetap. padanan ungkapan. Satu parameter ialah peraturan ungkapan biasa kami dan parameter kedua ialah teks yang akan disemak

preg_match ( rentetan $biasa, rentetan $rentetan aksara[, tatasusunan & $result] )

Fungsi: Padankan $string pembolehubah berdasarkan $regular variable. Jika wujud, kembalikan bilangan padanan dan letakkan hasil yang sepadan ke dalam pembolehubah $result. Jika tiada keputusan ditemui, 0 dikembalikan.

^ bermaksud mula; $ bermaksud tamat

Mari kita lihat kod:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $str = 'date20150121';
 if (preg_match('/^date/', $str)) {
     echo '匹配成功';
 } else {
     echo '匹配失败';
 }
 ?>

Kod di atas sepadan dengan nombor bermula dengan tarikh. Keputusan padanan adalah seperti berikut:

Matching berjaya


Parameter ketiga preg_matched dipadankan Kandungan, biasanya kami akan memasukkan tatasusunan kosong, kerana ia adalah panggilan mengikut alamat Selepas pemadanan selesai, kandungan padanan khusus

contoh . akan diperolehi dalam tatasusunan

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $str = 'date20150121';
 if (preg_match('/^date/', $str,$mat)) {
     print_r($mat);
 } else {
     echo '匹配失败';
 }
 ?>

Hasil larian program:

Array ( [0] => tarikh )


Dalam ungkapan biasa, huruf diwakili oleh w dan nombor diwakili oleh d (D mewakili bukan digit

+). mewakili satu Atau berbilang

* bermaksud 0 atau lebih

? bermaksud ada atau tiada

{n} mewakili nombor tertentu

{m, n} mewakili lebih besar daripada m dan kurang daripada n

Seperti berikut:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $name = "zhang"; // wang zhu hu ma tan
 
 if (preg_match('/an|hu/', $name, $arr)) {
     print_r($arr);
 } else {
     echo '匹配失败';
 }
 ?>

Hasil larian program:

Array ( [0] => )


Keadaan atau boleh digunakan untuk memadankan rentetan Jika ia hanya satu huruf atau aksara, anda boleh menggunakan perwakilan julat

Anda. boleh menggunakan [] Mewakili julat nilai aksara

'/[a0.]/' boleh memadankan mana-mana rentetan yang mengandungi a atau 0 atau .

Selain itu, ungkapan biasa juga boleh menggunakan -. untuk Mewakili set julat

• [a-z] Mewakili mana-mana satu daripada 26 huruf kecil

• [A-Z] Mewakili huruf besar

• [0-9] Mewakili nombor perpuluhan

Sekarang kita tahu begitu banyak, mari kita lihat menggunakan ungkapan biasa untuk memadankan kandungan borang.


PHP - Nama Pengesahan

Kod berikut akan mengesan sama ada medan nama mengandungi huruf dan ruang dengan cara yang mudah Jika nilai medan nama tidak sah, mesej ralat akan dikeluarkan:

$nama = test_input($_POST["nama"]);
jika (!preg_match("/^[a-zA-Z]*$/",$name) ) {
$nameErr = "Hanya huruf dan ruang dibenarkan";
}


PHP - E-mel Pengesahan

Peraturan: Nama e-mel boleh menjadi sebarang aksara yang terdiri daripada huruf, nombor, garis bawah dan titik e-mel mesti mengandungi simbol @ dan teks berikut diproses mengikut peraturan nama domain

Kod berikut akan menyemak sama ada alamat e-mel itu sah dengan cara yang mudah. Jika alamat e-mel itu menyalahi undang-undang, mesej ralat akan dikeluarkan:

$email = test_input($_POST["email"]);
if (!preg_match( "/^ [a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/",$e-mel)) {
$emailErr = "Format e-mel tidak sah!";
}


PHP - Sahkan URL

Kod berikut akan menyemak sama ada alamat URL itu sah (URL operasi ungkapan biasa berikut mengandungi sempang: "-" Jika alamat URL tidak sah, mesej ralat akan dikeluarkan:

$laman web = test_input ($_POST["laman web"]);
jika (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a- z0-9+&@# /%?=~_|!:,.;]*[-a-z0-9+&@#/%
=~_|]/i",$laman web)) {
$websiteErr = "URL Tidak Sah";
}

Kami kini akan menggabungkan apa yang kami pelajari di atas untuk mengesahkan data dalam borang kami.

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文网</title>
 </head>
 
 <style>
     .error {color: #FF0000;}
 </style>
 <body>
 <?php
 // 定义变量并设置为空值
 $nameErr = $emailErr = $genderErr = $websiteErr = "";
 $name = $email = $gender = $comment = $website = "";
 
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
     if (empty($_POST["name"])) {
         $nameErr = "姓名是必填的";
     } else {
         $name = test_input($_POST["name"]);
         // 检查姓名是否包含字母和空白字符
         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
             $nameErr = "只允许字母和空格";
         }
     }
 
     if (empty($_POST["email"])) {
         $emailErr = "电邮是必填的";
     } else {
         $email = test_input($_POST["email"]);
         // 检查电子邮件地址语法是否有效
         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {
             $emailErr = "无效的 email 格式";
         }
     }
 
     if (empty($_POST["website"])) {
         $website = "";
     } else {
         $website = test_input($_POST["website"]);
         // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠)
         if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
             $websiteErr = "无效的 URL";
         }
     }
 
     if (empty($_POST["comment"])) {
         $comment = "";
     } else {
         $comment = test_input($_POST["comment"]);
     }
 
     if (empty($_POST["gender"])) {
         $genderErr = "性别是必选的";
     } else {
         $gender = test_input($_POST["gender"]);
     }
 }
 
 function test_input($data) {
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
 }
 ?>
 
 <h2>PHP 验证实例</h2>
 <p><span class="error">* 必需的字段</span></p>
 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
     姓名:<input type="text" name="name">
     <span class="error">* <?php echo $nameErr;?></span>
     <br><br>
     邮箱:<input type="text" name="email">
     <span class="error">* <?php echo $emailErr;?></span>
     <br><br>
     网址:<input type="text" name="website">
     <span class="error"><?php echo $websiteErr;?></span>
     <br><br>
     评论:<textarea name="comment" rows="5" cols="40"></textarea>
     <br><br>
     性别:
     <input type="radio" name="gender" value="female">女性
     <input type="radio" name="gender" value="male">男性
     <span class="error">* <?php echo $genderErr;?></span>
     <br><br>
     <input type="submit" name="submit" value="提交">
 </form>
 
 <?php
 echo "<h2>您的输入:</h2>";
 echo $name;
 echo "<br>";
 echo $email;
 echo "<br>";
 echo $website;
 echo "<br>";
 echo $comment;
 echo "<br>";
 echo $gender;
 ?>
 
 </body>
 </html>

Jika kami tidak mengisinya mengikut peraturan yang kami tulis di atas, gesaan berikut akan muncul:

0.png

Jika maklumat yang anda masukkan betul, ia akan lulus pengesahan

Anda juga boleh menggunakan ungkapan biasa untuk memadankan nombor telefon mudah alih nombor.


Meneruskan pembelajaran
||
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网</title> </head> <style> .error {color: #FF0000;} </style> <body> <?php // 定义变量并设置为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "姓名是必填的"; } else { $name = test_input($_POST["name"]); // 检查姓名是否包含字母和空白字符 if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只允许字母和空格"; } } if (empty($_POST["email"])) { $emailErr = "电邮是必填的"; } else { $email = test_input($_POST["email"]); // 检查电子邮件地址语法是否有效 if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) { $emailErr = "无效的 email 格式"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "无效的 URL"; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "性别是必选的"; } else { $gender = test_input($_POST["gender"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP 验证实例</h2> <p><span class="error">* 必需的字段</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 姓名:<input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> 邮箱:<input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> 网址:<input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 评论:<textarea name="comment" rows="5" cols="40"></textarea> <br><br> 性别: <input type="radio" name="gender" value="female">女性 <input type="radio" name="gender" value="male">男性 <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="提交"> </form> <?php echo "<h2>您的输入:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?> </body> </html>
  • Cadangan kursus
  • Muat turun perisian kursus