前端 / 后端

PHP表单处理与文件保存

csxiaoyao · 2月9日 · 2017年本文共2289个字 · 预计阅读8分钟384次已读

PHP表单处理与文件保存

Write By CS逍遥剑仙
我的主页: csxiaoyao.com
GitHub: github.com/csxiaoyaojianxian
Email: sunjianfeng@csxiaoyao.com
QQ: 1724338257

$_GET 数据获取

PHP中,如果想要获取通过get方法提交的数据,可以通过$_GET对象来获取

  • HTML代码:
    下面就是一个简单的表单代码,将数据提交到01.php,使用get的方式

    <form action="01.php" method="get" >
    <label for="">姓名:
        <input type="text" name= "userName"></label>
        <br/>
    <label for="">邮箱:
     csxiaoyao.com   <input type="text" name= "userEmail"></label>
        <br/>
        <input type="submit" name="">
    </form>
  • PHP代码:

    <?php 
    echo "<h1>GET_PAGE</h1>";
    echo 'userName:'.$_GET['userName'];
    echo '<br/>';
    echo 'userEmail:'.$_GET['userEmail'];
    ?>

$_POST 数据获取

PHP中,如果想要获取通过post方法提交的数据,可以通过$_POST对象来获取

  • HTML代码:
    下面就是一个简单的表单代码,将数据提交到02.php,使用post的方式(注意:代码中的method改为post)

    <form action="02.php" method="post" >
    <label for="">姓名:
        <input type="text" name= "userName"></label>
        <br/>
    <label for="">邮箱:
        <input type="text" name= "userEmail"></label>
        <br/>
        <input type="sucsxiaoyao.combmit" name="">
    </form>
  • PHP代码:

    <?php 
    echo "<h1>POST_PAGE</h1>";
    echo 'userName:'.$_POST['userName'];
    echo '<br/>';
    echo 'userEmail:'.$_POST['userEmail'];
    ?>

POST&GET错误处理

当直接访问POST&GET页面时由于并没有传递任何数据,会因为$_GET$_POST不存在对应的key而报错.

  • 处理方式1:
    • 使用array_key_exists(key, 数组)函数来进行判断
    • 参数1: 要检测的key字符串
    • 参数2: 检验的数组
    if(array_key_exists('name', $_GET)){
        //如果有数据 再去读取
    }else{
        // 反之 可以执行一些 其他的逻辑
    }

$_FILE 文件上传处理

在php中 能够通过$_FILE 获取上传的文件

  • 浏览器端部分代码()
    • 假定浏览器在form表单中如下标签
    • 注1form提交数据需使用post提交
    • 注2form提交数据时,需在form表单中添加enctype=multipart/form-data属性
<form action='xx.php' method='post' enctype='multipart/form-data'>
    <input type='file' name='icon'>
    <input type='submit'>
</form>
  • 服务端代码
    • $_FILES用法跟$_GET,$_POST类似,都是关系型数组
    • #_FILE['key']:可以获取对应上传的文件,这里的key跟提交时的name相对应
    • #_FILE['key']['name'] 可以获取上传的文件名
    • #_FILE['key']['tmp_name']可以获取上传的文件保存的临时目录
<?php
    // 可以打印 $_FILES的所有信息
    print_r($_FILES);
?>

move_uploaded_file 移动文件

  • 上传的临时文件,一会就会被自动删除,我们需要将其移动到保存的位置
  • move_uploaded_file参数:
    • 参数1:移动的文件
    • 参数2:目标路径
move_uploaded_file($_FILES['photo']['tmp_name'], './images/test.jpg');

设置上传文件大小限制

修改php.ini
使用文本编辑工具的搜索功能找到下列选项进行修改

  • 设置文件最大上传限制(值的大小可以根据需求修改)
file_uploads = On            ; 是否允许上传文件 On/Off 默认是On
upload_max_filesize = 32M       ; 上传文件的最大限制
post_max_size = 32M             ; 通过Post提交的最多数据
  • 考虑网络传输快慢,这里修改一些参数
max_execution_time = 30000      ; 脚本最长的执行时间 单位为秒
max_input_time = 600            ; 接收提交的数据的时间限制 单位为秒
memory_limit = 1024M            ; 最大的内存消耗

PHP表单处理与文件保存

0 条回应