首页 > 编程语言 >PHP表单

PHP表单

时间:2024-02-22 20:22:25浏览次数:25  
标签:香蕉 表单 REQUEST echo 橘子 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获取参数。

标签:香蕉,表单,REQUEST,echo,橘子,PHP
From: https://www.cnblogs.com/aeolian/p/18025626

相关文章

  • 解决宝塔中php项目访问502 Bad Gateway问题
    原因访问网站是nginx转发不到PHP上,宝塔上PHP通常使用监听文件的方式,文件需要写入权限解决方法:进入站点点查看nginx转发地址,发现引入了一个enable-php-74.conf文件 进入到根目录搜索enable-php-74.conf文件然后打开打开后查看转发地址,这里用的是监听文件方式最后找到这个......
  • vue3+elment-plus项目,el-diglog的按钮,内部是el-form的子组件,那么保存时,如何触发子组件
    问题:el-diglog的按钮,如何触发内部的form表单提交el-dialog是父组件,cengji是子组件代码如下:<el-dialogv-model="dialogVisible"title="层级结构管理"width="1000"><cengji:tableId="tableId"/><template#footer>......
  • 解决mac下 php 提示dyld: Library not loaded: /opt/homebrew/opt/icu4c/lib/icui18n.
    产生原因是使用brewupdate后icu4c更新到了最新的版本导致php依赖的版本不一致,进入到/opt/homebrew/opt/icu4c/lib目录下查看没有icui18n.69.dylib文件 解决方法:网上下载icu4c69版本重新编译安装下载地址:https://github.com/unicode-org/icu/releases/tag/release-69-1只需......
  • 多个form表单同时校验
    1.新建mulitipleFormValid.js/***多个表单同时校验*@param{*}formRefs*@returns*/constvalidateForms=(formRefs)=>{letobjectList=[];letresults=formRefs.map(formRef=>newPromise((resolve,reject)=>{formRef.validate......
  • el-form表单使用pattern自定义校验规则
    //正则校验的正则表达式,这里注意正则表达式中的‘\’要使用‘\\’转义constpatterns={"name":"^[a-zA-Z_][0-9a-zA-Z_]{0,}$","tel":"^1[2-9]\\d{0,}$","email":"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-......
  • nginx与php pathinfo(TP5框架适用)
    最近在试用fastadmin这一个框架,是由tp5进行二开后的一款框架。fastadmin里面有个代码,要获取pathinfo否则会重定向到登录页,而默认的nginx配置获取的pathinfo一直为空,就导致无法正常进入后台。通过查找资料后,发现pathinfo是php的产物,与nginx无关。如果要让nginx把pathinfo环境变量......
  • phpstorm开启debug断点调试模式
    查看php版本查看自己php的版本,使用:phpinfo()函数<?phpechophpinfo();XdebugXdebug:Support—TailoredInstallationInstructions右击查看index.php源代码并复制到Xdebug中点击分析查看分析结果修改php配置文件vi/opt/homebrew/etc/php/7.4/conf.d/99-xdebug.......
  • PHP常用环境套件
    当你学习来了PHP之后,你就知道PHP套件的必要性,在学习php时,我们不能在php环境安装上花费很长时间,这是得不偿失的;也没必要花费几百购买php空间。这时我们需要在自己的电脑上安装php环境套件,那么php环境套件有哪些?1、php环境——XAMPP是一款比较强大的本地测试平台,它集成了必须......
  • 一文了解广州自定义表单开源的诸多优势特点
    广州自定义表单开源可以助力企业实现提质增效、降低人工成本的发展目的,因而在通信业、电力、高校、制造业、医疗等很多行业中获得了大家的点赞与支持。广州流辰信息是一家专业性强的低代码技术平台服务商,潜心研发广州自定义表单开源工具,与客户朋友一起创造更具价值的辉煌前程。那......
  • PHP 字符串拼接性能大比拼
    三种方式:直接用.来进行连接。用.=进行连接。先压入数组,再通过join函数连接。<?phpfunctionget_tm(){list($usec,$sec)=explode("",microtime());return((float)$usec+(float)$sec);}$temp="test";$num=100000;#define("num"......