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

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

发布时间:2022-10-31 12:44:53 所属栏目: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个值。
 

(编辑:我爱制作网_池州站长网)

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