渗透测试入门学习——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>
相关推荐
Whoami!2 小时前
2-3〔O҉S҉C҉P҉ ◈ 研记〕❘ 漏洞扫描▸AppScan(WEB扫描)
网络安全·信息安全·appscan·oscp
hotlinhao2 小时前
php版的FormCreate使用注意事项
php·crmeb
_Kayo_4 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC13101637 小时前
嵌入式学习(day 28)线程
jvm·学习
sinat_286945197 小时前
AI应用安全 - Prompt注入攻击
人工智能·安全·prompt
星星火柴9368 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头8 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
鱼鱼说测试8 小时前
Jenkins+Python自动化持续集成详细教程
开发语言·servlet·php
艾莉丝努力练剑9 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA10 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习