渗透测试入门学习——php表单form与POST、GET请求练习

最终效果:
必填项为空报错提示:
代码:
php 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>php表单练习</title>
</head>
<body>
<?php
  //php中的htmlspecialchars()可以将用户输入的 "<" ">" 等与html解析有关的特殊字符转换为字符处理
  //可以从一定程度上防止XSS
  $name = htmlspecialchars($_REQUEST['name']);
  $email = htmlspecialchars($_REQUEST['email']);
  $hobby = $_REQUEST['hobby'];
  $note = htmlspecialchars($_REQUEST['note']);
  $gender = htmlspecialchars($_REQUEST['gender']);
  if ($_SERVER["REQUEST_METHOD"] == "POST") {//只接收处理POST请求
    if (empty($name)){//校验并提示报错信息
      $namErr = "姓名不能为空";
    } 
    if (empty($email)){
      $emailErr = "邮箱不能为空";
    } 
    if (empty($gender)){
      $genderErr =  "性别不能为空";
    } 
}
?>
<!-- 表单 -->
<form action="#" method="post">
    名字(*必填):<input type="text" name="name">    <?php echo $namErr; ?><br><!-- 错误提示的输出 -->
    邮件(*必填):<input type="text" name="email">   <?php echo $emailErr; ?><br>
    爱好:
    <input type="checkbox" name="hobby[]" value="绘画">绘画
    <input type="checkbox" name="hobby[]" value="音游">音游
    <input type="checkbox" name="hobby[]" value="FPS">FPS
    <input type="checkbox" name="hobby[]" value="MMORPG">MMORPG
    <input type="checkbox" name="hobby[]" value="学习">学习
    <br>
    性别(*必填):
    <input type="radio" name="gender" value="男">男
    <input type="radio" name="gender" value="女">女   <?php echo $genderErr; ?><br>
    <br>
    备注:
    <textarea name="note"></textarea><br>
    <input type="submit" value="提交">
</form>


<?php
  //打印输出提交的表单信息
  echo "姓名是:",$name,'<br>';
  echo "邮箱是:",$email,'<br>';
  echo "爱好是:";
  if (!(empty($hobby))){
    foreach($hobby as $ah){
      echo  htmlspecialchars($ah)," ";
   }
  }
  echo '<br>';
  echo "性别是:",$gender,'<br>';
  echo "备注是:",$note,'<br>';
?>
</body>
</html>
相关推荐
HappyAcmen10 分钟前
线代第二章矩阵第八节逆矩阵、解矩阵方程
笔记·学习·线性代数·矩阵
杨德兴21 分钟前
3.3 阶数的作用
人工智能·学习
chilling heart26 分钟前
API的学习总结(上)
学习
charlie1145141911 小时前
内核深入学习3——分析ARM32和ARM64体系架构下的Linux内存区域示意图与页表的建立流程
linux·学习·架构·内存管理
mooyuan天天1 小时前
upload-labs通关笔记-第3关 文件上传之黑名单绕过
web安全·文件上传·文件上传漏洞·upload-labs靶场
threelab1 小时前
03.three官方示例+编辑器+AI快速学习webgl_animation_multiple
人工智能·学习·编辑器
threelab2 小时前
18.three官方示例+编辑器+AI快速学习webgl_buffergeometry_points_interleaved
学习·编辑器·webgl
电子云与长程纠缠2 小时前
UE5中制作动态数字Decal
学习·ue5·编辑器·贴图
h汉堡2 小时前
C/C++内存管理
java·c语言·开发语言·c++·学习
小诸葛的博客2 小时前
Flannel UDP 模式的优缺点
网络协议·udp·php