核心编程笔记、前后台数据传递与文件上传

这篇博客详细讲解了前后台数据的传递,包括GET和POST方式,以及如何模拟GET提交。还深入探讨了文件上传的原理和实现,涵盖文件的接收、错误处理、随机文件名生成、文件类型及大小控制,以及封装文件上传函数和相关PHP配置。
摘要由CSDN通过智能技术生成

前后台数据的传递

1.前台数据的提交

(1). get

==图片1==
get方式是将表单元素的name属性值与用户输入的数据,组织成对形式,放在URL传递到所请求的文件

(2). post

==图片2==
post方式是将用户输入的数据,与表单元素的name属性值,组织成对的形式,放在http协议内部传递到后台

(3). 模拟get方式提交数据

主要应用在没有表单的情况下,向后台提交数据

如何模拟:只要是HTML文档中能够输入URL的地方,在所请求的文件名后加如:? 名=值&名=值方式,在没有表单的情况下向后台传递数

==图片3==

(4). get vs post

get post
数据不安全 相对安全
提交的数据量小 提交的数据量大
数据类型单一,只能传递文本数据 数据类型多样
一般用于从服务器端获取数据 向服务器端传递数据

2.后台数据的接收

(1). $_GET

用于接收前台使用get方式提交的数据

==图片4==
将前台传递过来的各个名值对应的名作为关键数组的键名,名值对应的值,作为关键数组元素的键值。

(2). $_POST

用于接收前台使用post方式提交的数据

==图片5==
将前台传递过来的各个值对中的名作为关联数组的键值,名值对中的值,作为关联数组元素的键值

(3). $_REQUEST

同时能接收前台使用get或post方式提交的数据

3.特殊表单的接收

对于复选框,在设置HTML时,需要再name属性值后加‘[]’符号,这个符号一旦被PHP接收后,会自动转换为数组

==图片6==


文件上传

1.前台部分

form表单:

    action属性应该指向一个PHP文件

    method属性应该设置为post

    enctype属性:

                取值:

                      application/x-www-url-encode    (默认)只能上文本数据

                      multiple/form-data                       可以上传多种类型数据(上传文件)

示例:

==图片7==

2.后台处理

上传的文件的相关信息,被保存在PHP中$_FILES这个预定义变量中

==图片8==

- 说明
myfile 键名是表单上传域的name属性值,对应一个数组
name 所上传的文件的原文件名
type 文件的mime(文件类型)
size 文件大小(单位字节)
tmp_name 文件上传到服务器后的临时文件名
error 文件上传过程中的错误信息

error常见错误代码:

==图片9==

3.文件上传的原理

更改临时文件夹

==图片10==
重新启动Apache

临时文件夹中的文件,在php脚本执行结束后会被自动删除。所以文件上传的原理就是将位于临时文件夹中的临时文件,移动到其他位置。

语法:

move_uploaded_file(tmp,dest);

- 说明
tmp 用户上传的临时文件
dest 目标文件

==图片11==

4.完善文件上传

控制文件的保存的文件名

控制文件的大小

控制文件的格式

(1).生成随机文件名

- 说明
mt_rand(m,n) 生成m与n之间的随机整数
chr(code) 所表示的整数转换为相应的字符

常用ASCII码

==图片12==

//随机文件名的格式
function getRandomName(){
   
    $string='';
    for($i=0;$i<10;$i++){
   
        //$code=mt_rand(97,122);
        switch (mt_rand(0,2)) {
   
            case 0:
                $string.=chr(mt_rand(97,122));
                break;
            case 1:
                $string .=chr(mt_rand(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值