TECH I.S.

PHPフォーム - 電子メールとURLの検証


この章では、名前、電子メール、およびURLを検証する方法を示します。


PHP - 名前の検証

以下のコードは、名前フィールドに文字、ダッシュ、アポストロフィ、および空白が含まれているかどうかを確認する簡単な方法を示しています。 nameフィールドの値が有効でない場合は、エラー メッセージを保存します。

<div>$name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {   $nameErr = "Only letters and white space allowed"; }</div>

preg_match()関数は文字列でパターンを検索し、パターンが存在する場合はtrueを返し、そうでない場合はfalseを返します。


PHP - 電子メールの検証

電子メールアドレスが整形式かどうかを確認する最も簡単で安全な方法は、PHPのfilter_var()関数を使用することです。

以下のコードでは、電子メールアドレスの形式が正しくない場合、エラー メッセージを保存します。

<div>$email = test_input($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {   $emailErr = "Invalid email format"; }</div>

PHP - URLの検証

以下のコードは、URLアドレスの構文が有効かどうかを確認する方法を示しています (この正規表現では、URLにダッシュも使用できます)。 URLアドレスの構文が無効な場合は、エラーメッセージを保存します。

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


PHP - 名前、電子メール、およびURLの検証

これで、スクリプトは次のようになります。

:::example {.techis-example}
### 例

:::code {.techis-code .language-xml .notranslate}
&lt;?php<br/>// define variables and set to empty values<br/>$nameErr = $emailErr = $genderErr = $websiteErr = &quot;&quot;;<br/>$name = $email = $gender = $comment = $website = &quot;&quot;;<br/> <br/>if ($_SERVER[&quot;REQUEST_METHOD&quot;] == &quot;POST&quot;) {<br/>&nbsp; if (empty($_POST[&quot;name&quot;])) {<br/>&nbsp;&nbsp;&nbsp; $nameErr = &quot;Name is required&quot;;<br/>&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp; $name = test_input($_POST[&quot;name&quot;]);<br/>&nbsp;&nbsp;&nbsp; // check if name only contains letters and whitespace<br/>&nbsp;&nbsp;&nbsp; if (!preg_match(&quot;/^[a-zA-Z-&#039; ]*$/&quot;,$name)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $nameErr = &quot;Only letters and white space allowed&quot;; <br/>&nbsp;&nbsp;&nbsp; }<br/>&nbsp; }<br/> <br/>&nbsp; if (empty($_POST[&quot;email&quot;])) {<br/>&nbsp;&nbsp;&nbsp; $emailErr = &quot;Email is required&quot;;<br/>&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp; $email = test_input($_POST[&quot;email&quot;]);<br/>&nbsp;&nbsp;&nbsp; // check if e-mail address is well-formed<br/>&nbsp;&nbsp;&nbsp; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $emailErr = &quot;Invalid email format&quot;; <br/>&nbsp;&nbsp;&nbsp; }<br/>&nbsp; }<br/> <br/>&nbsp; if (empty($_POST[&quot;website&quot;])) {<br/>&nbsp;&nbsp;&nbsp; $website = &quot;&quot;;<br/>&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp; $website = test_input($_POST[&quot;website&quot;]);<br/>&nbsp;&nbsp;&nbsp; // check if URL address syntax is valid (this regular expression also allows dashes in the URL)<br/>&nbsp;&nbsp;&nbsp; if (!preg_match(&quot;/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&amp;@#\/%?=~_|!:,.;]*[-a-z0-9+&amp;@#\/%=~_|]/i&quot;,$website)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $websiteErr = &quot;Invalid URL&quot;; <br/>&nbsp;&nbsp;&nbsp; }<br/>&nbsp; }<br/> <br/>&nbsp; if (empty($_POST[&quot;comment&quot;])) {<br/>&nbsp;&nbsp;&nbsp; $comment = &quot;&quot;;<br/>&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp; $comment = test_input($_POST[&quot;comment&quot;]);<br/>&nbsp; }<br/> <br/>&nbsp; if (empty($_POST[&quot;gender&quot;])) {<br/>&nbsp;&nbsp;&nbsp; $genderErr = &quot;Gender is required&quot;;<br/>&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp; $gender = test_input($_POST[&quot;gender&quot;]);<br/>&nbsp; }<br/>}<br/>?&gt;
:::code

:::example

次のステップは、ユーザーがフォームを送信するときに、フォームがすべての入力フィールドを空にしないようにする方法を示すことです。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細