加入收藏 | 设为首页 | 会员中心 | 我要投稿 520站长网 (https://www.520shu.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php表单 菜鸟,php菜鸟学习之路——表单验证

发布时间:2022-10-15 22:01:04 所属栏目:PHP教程 来源:网络
导读: 1.form 中Enctype=multipart/form-data 的作用
表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能

1.form 中Enctype=multipart/form-data 的作用

表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整 的传递文件数据,进行下面的操作.enctype=”multipart/form-data”是上传二进制数据; form里面的input的值以2进制的方式传过去。

2.include和require的区别

require 的英文意思是 需要,依赖于。如果使用了这条语句,也就是告诉PHP内核,我这个程序需要这个文件,依赖于这个文件。所以,PHP如果发现require参数中的文件不 存在的话,就会报fatal error,并且停止执行下面的语句。include 的英文意思是 包括,包含。如果使用了这条语句PHP表单验证,也就是告诉PHP内核,程序执行时,把这个文件包含进来。所以,PHP如果找不到的话,仅仅会提示找不到它。而不会停止 下面脚本的执行。

3.$_FILES的用法

$_FILES超级全局变量很特殊,他是预定义超级全局数组中唯一的二维数组。其作用是存储各种与上传文件有关的信息。此函数中总共有5项:

1.$_FILES[“userfile”][“error”]$_FILES[“userfile”][“error”]数组值提供了与上传尝试结果有关的重要信息。总共有5个不同的返回值,其中一个表示成功的结果,另外4个表示在尝试中出现的特殊错误。

值:0; 没有错误发生,文件上传成功。

UPLOAD_ERR_INI_SIZE

值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

UPLOAD_ERR_FORM_SIZE

值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

UPLOAD_ERR_PARTIAL

值:3; 文件只有部分被上传。

UPLOAD_ERR_NO_FILE

值:4; 没有文件被上传。

值:5; 上传文件大小为0.

2.$_FILES[“userfile”][“name”]

$_FILES[“userfile”][“name”]变量指定客户端机器上声明的文件最初的名字,包括扩展名。

3.$_FILES[“userfile”][“size”]

$_FILES[“userfile”][“size”]变量指定从客户端上传的文件的大小,以字节为单位。

4. $_FILES[“userfile”][“tmp_name”]

$_FILES[“userfile”][“tmp_name”]变量指定上传到服务器后为文件赋予的临时名。这是存储在临时目录(由PHP指令upload_tmp_dir指定)中时所指定的文件名。

5. $_FILES[“userfile”][“type”]

$_FILES[“userfile”][“type”]变量指定从客户端上传的文件的mime类型。因此,在example.jpg文件 的例子中,此变量会赋值为image/jpeg。如果上传的是PDF,则赋值为application/pdf。因为这个变量有时会得到意外的结果,所以 应当在脚本中显示地进行验证。

protected function uploadfile($attachment, $path = 'web/uploadfile/')

{

$myData = array('flag'=>0);

//允许上传的文件格式

$tp = array("image/gif","image/jpeg","image/jpg","image/png");

//检查上传文件是否在允许上传的类型

if(!in_array($attachment["type"],$tp)){

$myData['msg'] = '请上传图片jpg, jpeg, png格式的文件';

return $myData;

// $this->showMessage($myData['msg'], HTTP_REFERER);

// return $myData;

}

$filetype = $attachment['type'];

if($filetype == 'image/jpeg'){

$type = '.jpeg';

}

if ($filetype == 'image/jpg') {

$type = '.jpg';

}

if ($filetype == 'image/png') {

$type = '.png';

}

if($filetype == 'image/gif'){

$type = '.gif';

}

$today= date("YmdHis"). '_'.uniqid(); //获取时间并赋值给变量

$file2 = $path . $today . $type; //图片的完整路径

$img = $today . $type; //图片名称

$result = move_uploaded_file($attachment["tmp_name"], $file2);

if( $result ) {

$myData['flag'] = 1;

$myData['filename'] = $img;

// $filename = $img;

} else {

$myData['msg'] = '上传失败';

}

return $myData;

}

4.同名name的传值

前台html代码:

后台取值

$data = $_POST['id'];

var_dump($data);

这样就可以取出input的3个值。

(编辑:520站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!