【PHP】关于验证 – 3

首先

这篇文章是关于学习php验证的内容并输出的文章。

如果有任何错误,请指出。这篇文章只是我个人学习内容的总结。

以下是之前的文章:
https://qiita.com/redrabbit1104/items/a6e57aa1fd1771ef90ff
https://qiita.com/redrabbit1104/items/a3eaf2bba51fac0b3c51
https://qiita.com/redrabbit1104/items/6e9c85c7503ed9043f38

追加一个电子邮件和url输入表单

我們將新增電子郵件地址和網頁的輸入欄。

メールアドレス
<input type="email" name="email" 
 value="<?php if (!empty($_POST['email'])) 
        {echo sp_chars($_POST['email']);} ?>">
<br>
ホームページ
<input type="url" name="url" 
  value="<?php if (!empty($_POST['url'])) 
         {echo sp_chars($_POST['email']);} ?>">

另外,我们还会让确认页面上能够看到输入的电子邮件地址和网站链接。

メールアドレス
<?php echo sp_chars($_POST["email"]); ?>
ホームページ
<?php echo sp_chars($_POST["url"]); ?>

然后将隐藏类型的输入值传递。

<input type="hidden" name="email" 
       value="<?php echo sp_chars($_POST['email']); ?>">
<input type="hidden" name="url" 
       value="<?php echo sp_chars($_POST['url']); ?>">

准备工作已经完成了。

过滤器_var()函数

检查给定的值是否符合预先设置的过滤器(输入规则),如电子邮件地址或email。函数的返回值为true或false。

filter_var("対象の値", "適用するフィルタ", "オプション")

在很多种过滤器中,当验证电子邮件和网址时,我们可以使用FILTER_VALIDATE_EMAIL和FILTER_VALIDATE_URL过滤器。
我们将确保在电子邮件地址未输入或输入内容不正确时显示相应的消息。

if (empty($filter_value['email']) || 
    !filter_var($filter_value['email'], FILTER_VALIDATE_EMAIL)) {
    $messages[] = '正しい形式のメールアドレスを入力してください。';
    }

如果主页没有输入,我们想要检查是否正确输入了,所以在if语句中添加if语句进行验证。

if (!empty($filter_value['url'])) {
   if (!filter_var($filter_value['url'], FILTER_VALIDATE_URL)) {
      $messages[] = '正しい形式のホームページを入力してください。';
   }
}

为了确认 PHP 端的验证,需要将输入页面的输入框类型更改为文本(type=”text”),因为电子邮件和 URL 已经在 HTML 端进行了独立的验证。

メールアドレス
<input type="text" name="email"        //typeをemailからtextに変更
       value="<?php if (!empty($_POST['email'])) 
       {echo sp_chars($_POST['email']);} ?>">
<br>
ホームページ
<input type="text" name="url"          //typeをurlからtextに変更
       value="<?php if (!empty($_POST['url'])) 
       {echo sp_chars($_POST['email']);} ?>">

请参考以下网站

https://www.php.net/manual/ja/function.filter-var.php:
请访问此链接以查看函数 filter_var 的详细信息。

https://www.php.net/manual/ja/filter.filters.validate.php:
请访问此链接以了解 filter.filters.validate 的相关内容。

广告
将在 10 秒后关闭
bannerAds