HTML 中有一个专门用于提交数据的标签: <form> ,经过这个标签能够很容易的搜集用户输出.
form 标签有两个须要属性:
action:表单提交地点(填完了,交给谁)
method:表单以甚么形式提交
例如,咱们需求正在登录界面上搜集用户输出的用户名以及明码:
<!DOCTYPE html> <html> <head> <meta charset="UTF‐8"> <title>登录</title> </head> <body> <form action="login.php" 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 type="submit">登录</button> </form> </body> </html>
依照今朝的状况,用户第一次申请失去这个表单页面,填写完表单内容,点击登录,表单会主动发送到login.php ,剩下的成绩就是要思考若何正在 login.php 中猎取到用户提交过去的内容.
PHP 中有三个超全局变量专门用来猎取表单提交内容:
$_GET :用于猎取以 GET 形式提交的内容
$_POST :用于猎取以 POST 形式提交的内容
$_REQUEST :用于猎取 GET 或 POST 形式提交的内容
借助 $_POST 或许 $_REQUEST 就能够猎取到表单提交的内容:
<?php // 猎取表单提交的用户名以及明码 echo '用户名:' . $_REQUEST['username']; echo '明码:' . $_REQUEST['password'];
1.一、提交地点
action 提交地点指的是这个表单填写实现当时点击提交,发送申请的申请地点是甚么。
从便于保护的角度思考,普通咱们最多见的都是提交给以后文件,而后正在以后文件中判别能否是表单提交申请:
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 表单提交申请 }
另外,倡议应用 $_SERVER['PHP_SELF']
静态猎取以后页面拜访门路,这样就不必由于文件重定名或许网站目次构造调整而修正代码了:
<!‐‐ 这样写死 action 地点,当文件重定名就需求修正代码 ‐‐> <form action="/foo/login.php"> <!‐‐ ... ‐‐> </form> <!‐‐ 经过 `$_SERVER['PHP_SELF']` 猎取门路,能够轻松防止这个成绩 ‐‐> <form action="<?php echo $_SERVER['PHP_SELF']; ?>"> <!‐‐ ... ‐‐> </form>
1.二、提交形式
method 能够用于设置表单提交的形式,今朝咱们所意识的就是最多见两种表单提交形式: GET 以及 POST 。
从成果下去看,二者均可以将数据提交到效劳端,然而从完成提交的原理上二者有很年夜的没有同:
GET
表复数据是经过 URL 中的 ? 参数通报到效劳真个
能够正在地点栏中看到提交的内容
数据长度无限制,由于 URL 地点长度无限(2000个字符)
POST
表复数据是经过申请体通报到效劳真个,咱们正在界面上看没有到
能够提交任何类型的数据,包罗文件
因为界面上看没有见,阅读器也没有贮存,以是更平安
至于甚么状况下应该选用哪一种形式,这个需求连系营业场景以及这两种形式各自的特性来决议,不相对的谜底,只能给出一些准则:
毫不能应用 GET 来发送明码或其余敏感信息!!!
应该想分明此次申请到底次要是去拿货色,仍是去送货色
二、常见表单位素解决
至于表单位素中的文本框文本域一类的元素,都是间接将元素的 name 属性值作为键,用户填写的信息作为值,发送到效劳端。然而表单位素中另有一些比拟非凡的表单位素需求独自思考:
2.1单选按钮
<!‐‐ 终极只会提交选中的那一项的 value ‐‐> <input type="radio" name="gender" value="male"> <input type="radio" name="gender" value="female">
2.二、复选按钮
<!‐‐ 不设置 value 的 checkbox 选中提交的 value 是 on ‐‐> <input type="checkbox" name="agree"> <!‐‐ 设置了 value 的 checkbox 选中提交的是 value 值 ‐‐> <input type="checkbox" name="agree" value="true">
假如需求同时提交多个选中项,能够正在 name 属性前面 跟上 [] :
https://www.php.net/manual/zh/faq.html.php#faq.html.arrays
<input type="checkbox" name="funs[]" id="" value="football"> <input type="checkbox" name="funs[]" id="" value="basketball"> <input type="checkbox" name="funs[]" id="" value="world peace">
终极提交到效劳端,经过 $_POST 接纳到的是一个索引数组.
2.三、抉择框
<select name="subject"> <!‐‐ 设置 value 提交 value ‐‐> <option value="1">语文</option> <!‐‐ 不设置 value 提交 innerText ‐‐> <option>数学</option> </select>
2.4文件上传
type 属性为 file 的 input 元素能够经过表单提交文件(上传文件),效劳端 PHP 能够经过 $_FILES 猎取上传的文件信息。
<?php // 假如抉择了文件 $_FILES['file']['error'] => 0 // 具体的谬误码阐明:http://php.net/manual/zh/features.file‐upload.errors.php if ($_FILES['file']['error'] === 0) { // PHP 正在会主动接纳客户端上传的文件到一个暂时的目次 $temp_file = $_FILES['file']['tmp_name']; // 咱们只要要把文件保留到咱们指定上传目次 $target_file = '../static/uploads/' . $_FILES['file']['name']; if (move_uploaded_file($temp_file, $target_file)) { $image_file = '/static/uploads/' . $_FILES['file']['name']; } }
$_FILES 一样也是一个联系关系数组,键为表单的 name ,内容以下:
array(1) { ["avatar"]=> array(5) { ["name"]=> string(17) "demo.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(27) "C:\Windows\Temp\php786C.tmp" ["error"]=> int(0) ["size"]=> int(29501) } }
更多相干成绩请拜访PHP中文网:PHP视频教程
以上就是form表单正在PHP中的完成形式的具体内容,更多请存眷资源魔其它相干文章!
标签: php开发教程 php开发资料 php开发自学 form
抱歉,评论功能暂时关闭!