Formulaire PHP - E-mail et URL de vérification

En matière de vérification, nous devons connaître les expressions régulières :

Expressions régulières

L'expression régulière est une méthode de description d'une règle de texte. Il ne s'agit pas d'une correspondance exacte, mais d'une correspondance floue via certains symboles spécifiques

En PHP, nous utilisons la fonction preg_match pour effectuer des opérations régulières. correspondance d'expression. Un paramètre est notre règle d'expression régulière, et le deuxième paramètre est le texte à vérifier

preg_match ( string $regular, string $character string[, array & $result] )

Fonction : faire correspondre la variable $string basée sur la variable $regular. S'il existe, renvoyez le nombre de correspondances et placez les résultats correspondants dans la variable $result. Si aucun résultat n'est trouvé, 0 est renvoyé.

^ signifie début ; $ signifie fin

Jetons un coup d'œil au code :

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

Le code ci-dessus correspond aux nombres commençant par la date. Les résultats de correspondance sont les suivants :

Correspondance réussie


Le troisième paramètre de preg_matchede correspond au contenu, nous transmettons généralement un tableau vide, car il s'agit d'un appel par adresse. Une fois la correspondance terminée, le contenu correspondant spécifique

instance . sera obtenu dans le tableau

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

Résultat de l'exécution du programme :

Array ( [0] => date )


Dans les expressions régulières, les lettres sont représentées par w et les nombres sont représentés par d (D représente les non-chiffres). représente un Ou multiple

* signifie 0 ou plus

? signifie là ou aucun

{n} représente des nombres spécifiques

{m, n} représente supérieur à m et inférieur à n

Comme ce qui suit :

<?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 '匹配失败';
 }
 ?>
Résultat de l'exécution du programme :

Array ( [0] => )

La condition ou peut être utilisée pour faire correspondre une chaîne. S'il ne s'agit que d'une seule lettre ou d'un seul caractère, vous pouvez utiliser la représentation de plage

Vous. peut utiliser [] Représente la plage de valeurs d'un caractère

'/[a0.]/' peut correspondre à n'importe quelle chaîne contenant un ou 0 ou

De plus, les expressions régulières peuvent également utiliser -. to Représente un ensemble de plages

• [a-z] Représente l'une des 26 lettres minuscules

• [A-Z] Représente une lettre majuscule

• [0-9] Représenter un nombre décimal

Maintenant que nous en savons beaucoup, voyons comment utiliser des expressions régulières pour faire correspondre le contenu du formulaire.

PHP - Nom de validation

Le code suivant détectera si le champ de nom contient des lettres et des espaces de manière simple. Si la valeur du champ de nom est illégale, un message d'erreur sera affiché : <🎜. >

$name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z]*$/",$name) ) {
$nameErr = "Seuls les lettres et les espaces autorisés";
}


PHP - E-mail de vérification

Règles : Le nom de l'e-mail peut être n'importe quel caractère composé de lettres, de chiffres, de traits de soulignement et de points. L'e-mail doit contenir le symbole @ et le texte suivant ; est traité selon les règles du nom de domaine

Le code suivant vérifiera si l'adresse e-mail est légale de manière simple. Si l'adresse e-mail est illégale, un message d'erreur sera affiché :

$email = test_input($_POST["email"]);

if (!preg_match( "/^ [a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/",$email)) {
$emailErr = "Format d'e-mail invalide!";
}


PHP - Vérifier l'URL

Le code suivant vérifiera si l'adresse URL est légale (l'URL d'opération d'expression régulière suivante contient des tirets : "-") Si l'adresse URL est illégale, un message d'erreur sera affiché :

.
$website = test_input ($_POST["website"]);

if (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a- z0-9+&@# /%?=~_|!:,.;]*[-a-z0-9+&@#/%
=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}

Nous allons maintenant combiner ce que nous avons appris ci-dessus pour valider les données dans notre formulaire.

<!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>

Si nous ne le remplissons pas selon les règles que nous avons écrites ci-dessus, l'invite suivante apparaîtra :

0.png

Si les informations que vous saisissez sont correctes, elles passeront la vérification

Vous pouvez également utiliser des expressions régulières pour faire correspondre les numéros de téléphone mobile. Pensez aux règles du téléphone mobile. Nombres.


Formation continue
||
<!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>
soumettreRéinitialiser le code
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!