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] => )
Vous. peut utiliser [] Représente la plage de valeurs d'un caractèreLa 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
'/[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 validationLe 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) ) { 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é : if (!preg_match( "/^ [a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/",$email)) { PHP - Vérifier l'URL if (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a- z0-9+&@# /%?=~_|!:,.;]*[-a-z0-9+&@#/% Nous allons maintenant combiner ce que nous avons appris ci-dessus pour valider les données dans notre formulaire.
$nameErr = "Seuls les lettres et les espaces autorisés";
}$email = test_input($_POST["email"]);
$emailErr = "Format d'e-mail invalide!";
}$website = test_input ($_POST["website"]);
=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}<!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 :
Si les informations que vous saisissez sont correctes, elles passeront la vérificationVous 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.