PHP表单

简介: PHP表单

表单

表单提交

form.html

<html>
<head>
  <meta charset="utf-8">
  <title>表单提交测试</title>
</head>
<body>
<form action="form_action.php" method="post">
  名字: <input type="text" name="fname">
  年龄: <input type="text" name="age">
  <input type="submit" value="提交">
</form>
</body>
</html>

form_action.php

姓名: <?php echo $_POST["fname"]; ?>!<br>
年龄: <?php echo $_POST["age"]; ?>

下拉框&选择狂

<?php
//获取get请求方式的参数,不能获取多选框的数组
//$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
//获取post请求方式的参数,多选只能用这种
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {  //多选
  $sites = array(
    'apple' => '苹果',
    'banana' => '香蕉',
    'orange' => '橘子',
  );
  foreach ($q as $val) {
    // PHP_EOL 为常量,用于换行
    echo $sites[$val] . PHP_EOL;
  }
}
elseif ($q) {  //单选
  if($q =='apple') {
    echo '选择了苹果<br>';
  } else if($q =='banana') {
    echo '选择了香蕉<br>';
  } else if($q =='orange') {
    echo '选择了橘子<br>';
  }
} else {
  ?>
  <!--下拉单选-->
  <form action="" method="post">
    <select name="q">
      <option value="">请选择:</option>
      <option value="apple">苹果</option>
      <option value="banana">香蕉</option>
      <option value="orange">橘子</option>
    </select>
    <input type="submit" value="提交">
  </form>
  <!--下拉多选-->
  <form action="" method="post">
    <select multiple="multiple" name="q[]>
      <option value="">请选择:</option>
      <option value="apple">苹果</option>
      <option value="banana">香蕉</option>
      <option value="orange">橘子</option>
    </select>
    <input type="submit" value="提交">
  </form>
  <!--radio单选-->
  <form action="" method="post">
      请选择:
      <input  type="radio" name="q" value="apple"/>苹果
      <input  type="radio" name="q" value="banana"/>香蕉
      <input  type="radio" name="q" value="orange"/>橘子
    <input type="submit" value="提交">
  </form>
  <!--checkbox单选-->
  <form action="" method="post">
    请选择:
    <input  type="checkbox" name="q[]" value="apple"/>苹果
    <input  type="checkbox" name="q[]" value="banana"/>香蕉
    <input  type="checkbox" name="q[]" value="orange"/>橘子
    <input type="submit" value="提交">
  </form>
<?php
}
?>

表单数据验证

必填验证、数据格式验证、

<?php
// 定义变量并默认设置为空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
    // 检测名字是否只包含字母跟空格
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "只允许字母和空格";
    }
  }
  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
    // 检测邮箱是否合法
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
      $emailErr = "非法邮箱格式";
    }
  }
  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
    // 检测 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>
<!--$_SERVER["PHP_SELF"]为本身路径,htmlspecialchars为了防止跨域攻击-->
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
  名字: <input type="text" name="name">
  <span class="error" style="color: #FF0000;">* <?php echo $nameErr;?></span>
  <br><br>
  E-mail: <input type="text" name="email">
  <span class="error" style="color: #FF0000;">* <?php echo $emailErr;?></span>
  <br><br>
  网址: <input type="text" name="website">
  <span class="error" style="color: #FF0000;"><?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" style="color: #FF0000;">* <?php echo $genderErr;?></span>
  <br><br>
  <input type="submit" name="submit" value="Submit">
</form>
<?php
echo "<h2>您输入的内容是:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>

$_REQUEST 变量

预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。

$_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据,如果不确定是get还是post请求可以用$_REQUEST获取参数。

相关文章
|
2月前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
2月前
|
XML 前端开发 JavaScript
php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示
本文介绍了在PHP中如何使用Ajax进行登录表单的数据提交,并利用jQuery的$.post()方法与后端通信,以及使用layer.msg进行前端提示。
php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示
|
3月前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
47 0
|
4月前
|
API PHP UED
​一个PHP文件实现联系表单自动发送邮件
使用PHP和AOKSend服务,可以创建一个联系表单,收集用户信息并自动发送邮件。HTML表单包含姓名、邮箱和消息字段。PHP文件`send_mail.php`处理表单提交,通过AOKSend的SMTP设置(如主机、端口、API密钥)使用PHPMailer发送邮件到指定地址。代码中还包括安全措施,如使用`htmlspecialchars`防止XSS攻击。这种方法增强了网站的用户沟通体验,并依赖AOKSend的稳定性和API进行高效邮件发送。
|
4月前
|
存储 PHP 数据库
|
6月前
|
存储 安全 PHP
【PHP 开发专栏】PHP 表单处理与数据验证
【4月更文挑战第30天】本文探讨PHP中的表单处理和数据验证技术,包括使用`$_POST`和`$_GET`接收数据,文件上传处理,数据存储及验证的重要性。常见的验证类型如必填、格式、数值范围和字符串长度。建议结合客户端和服务器端验证,注重安全性,防止XSS攻击。文中通过用户注册案例分析,讨论表单安全存储、传输优化及性能提升,强调其在PHP开发中的关键作用。
53 1
|
6月前
|
PHP
php 正则匹配 常用的 规则(一) 匹配form表单
php 正则匹配 常用的 规则(一) 匹配form表单
28 0
|
6月前
|
PHP
php 正则匹配 规则(二)匹配form表单 示例
php 正则匹配 规则(二)匹配form表单 示例
33 0
原生php实现自定义表单(基础类型)(特色:防止重复提交 防止输出空数据等等功能)
原生php实现自定义表单(基础类型)(特色:防止重复提交 防止输出空数据等等功能)
原生php实现自定义表单(基础类型)(特色:防止重复提交 防止输出空数据等等功能)
|
6月前
|
PHP 数据格式
PHP 中的CURL 模拟表单的post提交
PHP 中的CURL 模拟表单的post提交
104 0