当前位置: 首页 > article >正文

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

最终效果:

必填项为空报错提示:

代码:
<!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>



http://www.kler.cn/a/313770.html

相关文章:

  • 时序数据库TimescaleDB安装部署以及常见使用
  • 使用pytest+openpyxl做接口自动化遇到的问题
  • 【MySQL】数据库表连接简明解释
  • group_concat配置影响程序出bug
  • vue项目npm run serve出现【- Network: unavailable】(从排查到放弃)
  • 回归分析学习
  • 3、等保1.0 与 2.0 的区别
  • 大健康裂变分销小程序开发
  • MATLAB系列05:自定义函数
  • Java 线程之间如何通信?
  • 代码随想录算法训练营第三八天| 279.完全平方数 139.单词拆分
  • Selenium如何通过js注入避免被检测
  • 数字IC设计\FPGA 职位经典笔试面试整理--基础篇1
  • C++之深拷贝和浅拷贝*
  • Linux —— 多线程
  • 三分钟 ChatGPT 接入钉钉机器人
  • 云服务器和物理服务器的区别在哪
  • 第一次安装Pytorch
  • python爬虫初体验(二)
  • Android横竖屏 mdpi hdpi xhdpi xxhdpi xxxhdpi
  • .ideavimrc在idea打不开
  • 基于NLP的对话系统开发:从零构建智能客服机器人
  • Android 如何使用jdk命令给应用/APK重新签名。
  • 云栖大会Day1:云应用开发平台 CAP 来了
  • pythonnet python图像 C# .NET图像 互转
  • FLUX.1+ComfyUI部署与使用:图像合成技术的新高度