请选择 进入手机版 | 继续访问电脑版

乐心屋资源分享论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 357|回复: 0

PHP 表单验证实例

[复制链接]

264

主题

264

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10948
发表于 2022-9-7 20:38:13 | 显示全部楼层 |阅读模式
  1. <?php
  2. // 定义变量并默认设置为空值
  3. $nameErr = $emailErr = $genderErr = $websiteErr = "";
  4. $name = $email = $gender = $comment = $website = "";

  5. if ($_SERVER["REQUEST_METHOD"] == "POST")
  6. {
  7.     if (empty($_POST["name"]))
  8.     {
  9.         $nameErr = "名字是必需的";
  10.     }
  11.     else
  12.     {
  13.         $name = test_input($_POST["name"]);
  14.         // 检测名字是否只包含字母跟空格
  15.         if (!preg_match("/^[a-zA-Z ]*$/",$name))
  16.         {
  17.             $nameErr = "只允许字母和空格";
  18.         }
  19.     }
  20.    
  21.     if (empty($_POST["email"]))
  22.     {
  23.       $emailErr = "邮箱是必需的";
  24.     }
  25.     else
  26.     {
  27.         $email = test_input($_POST["email"]);
  28.         // 检测邮箱是否合法
  29.         if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
  30.         {
  31.             $emailErr = "非法邮箱格式";
  32.         }
  33.     }
  34.    
  35.     if (empty($_POST["website"]))
  36.     {
  37.         $website = "";
  38.     }
  39.     else
  40.     {
  41.         $website = test_input($_POST["website"]);
  42.         // 检测 URL 地址是否合法
  43.         if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
  44.         {
  45.             $websiteErr = "非法的 URL 的地址";
  46.         }
  47.     }
  48.    
  49.     if (empty($_POST["comment"]))
  50.     {
  51.         $comment = "";
  52.     }
  53.     else
  54.     {
  55.         $comment = test_input($_POST["comment"]);
  56.     }
  57.    
  58.     if (empty($_POST["gender"]))
  59.     {
  60.         $genderErr = "性别是必需的";
  61.     }
  62.     else
  63.     {
  64.         $gender = test_input($_POST["gender"]);
  65.     }
  66. }

  67. function test_input($data)
  68. {
  69.     $data = trim($data);
  70.     $data = stripslashes($data);
  71.     $data = htmlspecialchars($data);
  72.     return $data;
  73. }
  74. ?>

  75. <h2>PHP 表单验证实例</h2>
  76. <p><span class="error">* 必需字段。</span></p>
  77. <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
  78.    名字: <input type="text" name="name" value="<?php echo $name;?>">
  79.    <span class="error">* <?php echo $nameErr;?></span>
  80.    <br><br>
  81.    E-mail: <input type="text" name="email" value="<?php echo $email;?>">
  82.    <span class="error">* <?php echo $emailErr;?></span>
  83.    <br><br>
  84.    网址: <input type="text" name="website" value="<?php echo $website;?>">
  85.    <span class="error"><?php echo $websiteErr;?></span>
  86.    <br><br>
  87.    备注: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
  88.    <br><br>
  89.    性别:
  90.    <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?>  value="female">女
  91.    <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?>  value="male">男
  92.    <span class="error">* <?php echo $genderErr;?></span>
  93.    <br><br>
  94.    <input type="submit" name="submit" value="Submit">
  95. </form>

  96. <?php
  97. echo "<h2>您输入的内容是:</h2>";
  98. echo $name;
  99. echo "<br>";
  100. echo $email;
  101. echo "<br>";
  102. echo $website;
  103. echo "<br>";
  104. echo $comment;
  105. echo "<br>";
  106. echo $gender;
  107. ?>

  108. </body>
  109. </html>
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑子|栀子舒资源博客|乐心屋资源分享论坛 ( 皖ICP备2021007551号 )

GMT+8, 2023-6-3 13:09 , Processed in 0.052154 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表