亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP フォーム - 確認(rèn)メールと URL

検証と言えば、正規(guī)表現(xiàn)について知る必要があります。

正規(guī)表現(xiàn)

正規(guī)表現(xiàn)は、テキストの一部のルールを記述する方法です。完全一致ではありませんが、完全に一致します。あいまい一致する特定の記號(hào)

PHP では、preg_match 関數(shù)を使用して正規(guī)表現(xiàn)マッチングを?qū)g行します。1 つのパラメーターは正規(guī)表現(xiàn)ルールで、2 番目のパラメーターはチェックする必要があるテキストです

preg_match ( string $normal, string $string[, array &$result])

関數(shù): $register 変數(shù)に基づいて $string 変數(shù)を照合します。存在する場(chǎng)合は、一致の數(shù)を返し、一致した結(jié)果を $result 変數(shù)に入れます。結(jié)果が見(jiàn)つからない場(chǎng)合は 0 が返されます。

^ は始まりを意味します; $ は終わりを意味します

コードを見(jiàn)てみましょう:

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 $str = 'date20150121';
 if (preg_match('/^date/', $str)) {
     echo '匹配成功';
 } else {
     echo '匹配失敗';
 }
 ?>

上記のコードは、日付で始まる番號(hào)を照合するものです。マッチング結(jié)果は次のとおりです。

マッチング成功


preg_matchede マッチング後は、アドレスによる呼び出しであるため、通常は空の配列を渡します。完了すると、配列 特定の一致するコンテンツが得られます

インスタンス

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 $str = 'date20150121';
 if (preg_match('/^date/', $str,$mat)) {
     print_r($mat);
 } else {
     echo '匹配失敗';
 }
 ?>

プログラムの実行結(jié)果:

Array ( [0] => 日付 )


正規(guī)表現(xiàn)では、文字は w で表され、數(shù)字は d で表されます (D は數(shù)字以外を表します)

? + は 1 つ以上を表します

? * は 0 つ以上を表します

? ? は「はい」または「いいえ」を意味します

? {n} は特定の數(shù)値を意味します

? {m, n} は m より大きい、n より小さいことを意味します

次のように:

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

プログラムの実行結(jié)果:

配列 ( [0] => )


単一の文字または文字だけの場(chǎng)合は、or 條件を使用して範(fàn)囲表現(xiàn)を使用できます

文字の値の範(fàn)囲を表すには [] を使用します

'/[a0 . ]/' は、a または 0 を含む任意の文字列と一致します

さらに、正規(guī)表現(xiàn)では - を使用して一連の範(fàn)囲を表すこともできます

? [a-z] は 26 個(gè)の小文字のいずれかを表します

? [A-Z] ] は大文字を表します

? [0-9] は 10 進(jìn)數(shù)を表します

ここまで理解できたので、正規(guī)表現(xiàn)を使用してフォームの內(nèi)容を照合する方法を見(jiàn)てみましょう。


PHP - 名前の確認(rèn)

次のコードは、名前フィールドに文字とスペースが含まれているかどうかを簡(jiǎn)単な方法で検出します。名前フィールドの値が不正な場(chǎng)合は、エラー メッセージが出力されます。

$name = test_input($_POST[ "name"] );
if (!preg_match("/^[a-zA-Z]*$/",$name)) {
$nameErr = "文字とスペースのみが許可されます";
}


PHP - 確認(rèn)メール

ルール: メール名には文字、數(shù)字、アンダースコア、ドットで構(gòu)成される任意の文字を使用できます。メールには @ 記號(hào)が含まれている必要があり、次のテキストは次のとおりに処理されます。ドメイン名ルール

に次のコードが渡されます。電子メールアドレスが正當(dāng)かどうかを確認(rèn)する簡(jiǎn)単な方法です。電子メール アドレスが不正な場(chǎng)合、エラー メッセージが出力されます:

$email = test_input($_POST["email"]);
if (!preg_match("/^[a-zA-Z0- 9_-] +@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/",$email)) {
$emailErr = "メール形式が無(wú)効です!" ;
}


PHP - URL の検証

次のコードは、URL アドレスが正當(dāng)であるかどうかを確認(rèn)します (次の正規(guī)表現(xiàn)は、ダッシュを含む URL で実行されます: URL アドレスの場(chǎng)合)。が不正な場(chǎng)合、エラーメッセージが出力されます。 :

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

ここで、上で學(xué)んだ知識(shí)を組み合わせて、フォームのデータを検証します。

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文網(wǎng)</title>
 </head>
 
 <style>
     .error {color: #FF0000;}
 </style>
 <body>
 <?php
 // 定義變量并設(shè)置為空值
 $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"]);
         // 檢查電子郵件地址語(yǔ)法是否有效
         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {
             $emailErr = "無(wú)效的 email 格式";
         }
     }
 
     if (empty($_POST["website"])) {
         $website = "";
     } else {
         $website = test_input($_POST["website"]);
         // 檢查 URL 地址語(yǔ)法是否有效(正則表達(dá)式也允許 URL 中的斜杠)
         if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
             $websiteErr = "無(wú)效的 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 驗(yàn)證實(shí)例</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>
     網(wǎng)址:<input type="text" name="website">
     <span class="error"><?php echo $websiteErr;?></span>
     <br><br>
     評(píng)論:<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>

上で書(shū)いたルールに従って入力しない場(chǎng)合、次のプロンプトが表示されます:

0.png

入力した情報(bào)が正しければ、検証に合格します

また、正規(guī)表現(xiàn)を使用して攜帯電話番號(hào)を照合します。攜帯電話番號(hào)の規(guī)則についても考えてください。


學(xué)び続ける
||
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文網(wǎng)</title> </head> <style> .error {color: #FF0000;} </style> <body> <?php // 定義變量并設(shè)置為空值 $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"]); // 檢查電子郵件地址語(yǔ)法是否有效 if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) { $emailErr = "無(wú)效的 email 格式"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // 檢查 URL 地址語(yǔ)法是否有效(正則表達(dá)式也允許 URL 中的斜杠) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "無(wú)效的 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 驗(yàn)證實(shí)例</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> 網(wǎng)址:<input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 評(píng)論:<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>
提出するリセットコード
  • おすすめコース
  • コースウェアのダウンロード
現(xiàn)時(shí)點(diǎn)ではコースウェアはダウンロードできません?,F(xiàn)在スタッフが整理中です。今後もこのコースにもっと注目してください?