1,关于表单提交地址问题
demo.php
<?php if($_SERVER['REQUEST_METHOD']==='POST') { var_dump($_POST); //请求的方式是 POST,当前是点击按钮产生的请求 } ?> //表单的处理逻辑
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登陆</title> </head> <body> //<form action="demo.php" method="post">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> //由于文件重命名会导致代码修改,鲁棒性不强 <div> <label for="userName">用户名</label> <input type="text" id="userName" name="userName"> </div> <div> <label for="password">密码</label> <input type="password" id="password" name="password"> </div> <button>登陆</button> </form> </body> </html>
①将表单的处理逻辑放在HTML之前,为了更灵活的控制HTML的输出
②因为对于表单的处理逻辑不是每一次都需要执行,所以一般会判断请求的方式,从而决定是否执行对数据的处理
③一般为了便于维护,我们将表单提交给当前页面本身
2,关于表单提交方式问题
①请求的方式不同
②传参方式不同, get 用 url 传参数 , post 用请求体传参数
③GET:
表单数据是通过URL中的 ? 参数传递到服务端的
可以在地址栏中看到提交的内容
数据长度有限制, 因为URL 地址长度有限(2000个字符)
④POST:
表单数据是通过请求体传递到服务端的,我们在界面上看不到
可以提交任何类型的数据, 包括文件
由于界面上看不到, 浏览器也不储存 , 所以更安全
注意, 绝不能使用GET来发送密码或其他敏感信息 , 要用 POST
应该想清楚这次请求主要是去拿东西 , 还是去送东西