百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> form表单在PHP中的实现方式
分享文章到:

form表单在PHP中的实现方式

发布时间:09/01 来源:未知 浏览: 关键词:
1、表单的根本使用

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.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.2、提交方式

method 可以用于设定表单提交的方式,当前我们所认识的就是最常见两种表单提交方式: GET 和 POST 。
  从结果上来看,两者都可以将数据提交到效劳端,但是从实现提交的道理上两者有很大的不一样:
GET
  表单数据是通过 URL 中的 ? 参数传递到效劳端的
  可以在地址栏中看到提交的内容
  数据长度有限制,由于 URL 地址长度有限(2000个字符)
POST
  表单数据是通过恳求体传递到效劳端的,我们在界面上看不到
  可以提交任何类型的数据,包罗文件
  由于界面上看不见,阅读器也不贮存,所以更平安
  至于什么状况下应当选用哪种方式,这个需要结合业务场景和这两种方式各自的特点来决议,没有绝对的答案,只能给出一些原则:
  绝不克不及使用 GET 来发送密码或其他敏锐信息!!!
  应当想分明这次恳求到底主如果去拿东西,还是去送东西

2、常见表单元素处置

至于表单元素中的文本框文本域一类的元素,都是直接将元素的 name 属性值作为键,会员填写的信息作为值,发送到效劳端。但是表单元素中还有一些比力非凡的表单元素需要独自思考:

2.1单选按钮

<!‐‐ 终究只会提交选中的那一项的 value ‐‐>
<input type="radio" name="gender" value="male">
<input type="radio" name="gender" value="female">

2.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.3、选中框

<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中的实现方式的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板