前言:试想一下如果PHP没有了表单传值,那么就相当于一个没有表达能力的人,因此表单传值在php中是相当重要的,但是不难,接下来我们一起来探讨一下吧------>

(一)什么是表单传值  

  概念:表单传值指的是通过表单(如果还不知道表单的小伙伴要看看html的知识)构建数据,传递给服务器。

(二)表单传值的方式(有且只有两种)

  

get方式
  
  <form method="get"> xxxx </form>
get方式
  
  <form method="post"> xxxx </form>

(三)PHP接收表单传值数据的方法

接收post传值的方式:

    var_dump($_POST);
接收get传值的方式:

    var_dump($_GET);
接收get/post传值的方式:

    var_dump($_REQUEST);

小结:

  1.要想能够成功接收传递的参数,那么input属性里面必须要加name,

  2.服务器接收到的值是以name为关联数组索引的一个数组

  3.如果想要接收复选框值,那么name=xxx[],需要加上中括号

  4.单选框时候需要有相同的name值

(四)POST方式与GET方式的区别

- GET方式具有可见性,而POST方式不具有可见性;
- 基于第一点,POST方式在安全性上比GET方式要高一些;
- 在传输的数据量上,POST方式可能比GET方式要大;
- 在支持的数据类型上,GET方式仅支持ASCII码数据类型,POST方式无限制;

(五)文件上传

  概念:文件上传指的是将文件从本地传输到指定的服务器。

构造表单上传的三要素

    1.必须是post方式

    2.必须要在form表单属性里面加 enctype="multipart/form-data"

    3.必须加<input type="file">
接收表单上传文件的参数

    1.  $_FILES  接收用户上传文件的数组变量

    参数包含6部分参数: name type tmp_name error size 为索引的索引数组
      
      其中error包含了6个码值(0-7除了5)的错误提示
      tmp_name 临时存放的文件(会过期,因此转移这个文件就达到了文件上传的效果)   2. move_uploaded_file(文件临时的路径,转移到的路径)
同名文件的上传:   思路(把name=xxx[])

不同名文件上传:   思路(构造name不同名字就可以了)

(六)封装文件上传的方法

<?php

function upFile($file){ 

    #检查系统错误
switch ( $file['error'] ){
case 1:
echo '文件上传的大小超出了系统配置文件的限制大小~';
return false;
case 2:
echo '文件上传的大小超过了浏览器的限制!';
return false;
case 3:
echo '文件没有完全上传完!';
return false;
case 4:
echo '用户没有选择需要上传的文件哟~';
return false;
case 6:
case 7:
echo '服务器繁忙,请客官稍候再试~';
return false;
} #检查逻辑错误
//检查格式类型是否符合要求
$limitType = ['image/jpeg', 'image/png'];//定义出允许的格式类型
if( !in_array($file['type'], $limitType) ){//如果上传的文件格式类型不在允许的范围内,则给出提示信息,并且中止函数的执行
echo '您上传的文件格式类型不符合要求,只能上传' . implode('或', $limitType) . '格式的文件';
return false;
} //检查文件的大小是否符合逻辑要求
$limitSize = 250 * 1024;//限定的大小为250KB
if( $file['size']>$limitSize ){//如果上传的文件大小超过了限定的大小,则给出提示,并且中止函数的执行
echo '您上传的文件超过' . ($limitSize/1024) . 'KB的大小,请重新选择上传的文件!';
return false;
} #构建绝对不重复的文件名
$fileName = uniqid('img_') . date('YmdHis') . '_' . mt_rand(0, 10000) . strstr($file['name'], '.');
$path = 'F:/home/class/day11/code/upload/';
$wholeFileName = $path . $fileName; #转移文件到指定目录
$re = move_uploaded_file($file['tmp_name'], $wholeFileName); if( $re ){//上传成功
echo '恭喜你,文件上传成功';
return true;
}else{//上传失败
echo '系统繁忙,请稍候再试!';
return false;
}
}

PHP中的表单传值的更多相关文章

  1. laravel中form表单,ajax传值没反应

    laravel中form表单,ajax传值没反应时,可能是令牌有问题. form中添加: {{csrf_token()}} ajax中添加: data: {'page': page, '_token' ...

  2. select标签 禁止选择但又能通过序列化form表单传值到后台

    前言 项目开发中,我们可能会碰到这样的需求:select标签,禁止选择但又能通过序列化form表单传值到后台,但是当我们使用disabled="disabled"时发现,无法序列化 ...

  3. AngularJS中的表单验证

    AngularJS中的表单验证 AngularJS自带了很多验证,什么必填,最大长度,最小长度...,这里记录几个有用的正则式验证 1.使用angularjs的表单验证 正则式验证 只需要配置一个正则 ...

  4. MVC中处理表单提交的方式(Ajax+Jquery)

    MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t&q ...

  5. angular中的表单验证

    angular中的表单验证很强大, 一共有5中验证信息,$valid,$invalid,$pristine,$dirty,$error. $valid-----当验证通过的时候,为true,不通过的时 ...

  6. MVC中Form表单的提交

    概述 Web页面进行Form表单提交是数据提交的一种,在MVC中Form表单提交到服务器.服务端接受Form表单的方式有多种,如果一个Form有2个submit按钮,那后台如何判断是哪个按钮提交的数据 ...

  7. Excel中的表单控件和active控件

    EXCEL中有两种控件:表单控件和active控件 表单控件是excel5和excel95开始使用的,从excel97开始,active控件开始出现 关于表单控件和active控件的区别和使用范围,网 ...

  8. YII中的表单挂件

    利用助手(widget)在页面实现表单 控制器中 <?php class YiiFormController extends Controller { public function actio ...

  9. django中form表单的提交:

    一,关于表单: 表单在百度百科的解释:   表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...

随机推荐

  1. BZOJ3230 相似子串 【后缀数组】

    题目分析: 容易想到sa排好序之后,子串排名就是前面的子串减去height数组.所以正着做一遍,倒着做一遍就行了. 代码: #include<bits/stdc++.h> using na ...

  2. Destroying the bus stations HDU - 2485(最小割点)

    题意: 就是求最小割点 解析: 正向一遍spfa 反向一遍spfa  然后遍历每一条边,对于当前边 如果dis1[u] + dis2[v] + 1 <= k 那么就把这条边加入到网络流图中, 每 ...

  3. 如何使用JPQL写纯SQL语句

    使用JPQL,需要把SQL语句修改成类似HQL 语句.SQL 查询的是数据库,而JPQL 查询的是对象和属性,在语法上是有些不同的.对于有些用JPQL 无法写出来的查询,还是使用原生SQL写出来方便 ...

  4. module_loader.py

    # few functions that make it possible to import functions # from jupyter notebooks as from modules; ...

  5. IP地址等价类测试用例

    下面是一个比较完善的设计方案,这个方案中,首先把IP地址分成有效可用的IP地址和有效但不可用的IP地址两个等价类:其中有效可用的IP地址中包括IP地址的A,B,C三类地址,有效但不可用的IP地址包括D ...

  6. centos7安装较高版本python3.5/3.6

    应用环境: Centos7或者RHEL7下默认安装的python版本为2.7.x,更新不够及时,现在很多时候需要额外安装较高版本的python环境, 网上搜罗一圈总结记录一下常用两种方式: ① 源码编 ...

  7. kvm虚拟化管理

    虚拟化 KVM (kernel-based virtual machine) 常见的一些虚拟化的软件xen kvm vmware esx openVZ Oracle VM VirtualBox vsp ...

  8. 牛客寒假算法基础集训营3B 处女座的比赛资格(用拓扑排序解决DAG中的最短路)

    链接:https://ac.nowcoder.com/acm/contest/329/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  9. mysql json 使用 类型 查询 函数

    一,对记录的操作 1.创建有json字段的表 -- 创建表 ) , info JSON); 2.插入记录 -- 插入含有json数组的记录 , , "abc", NULL, TRU ...

  10. 洛谷P4206 聪聪与可可

    无向简单图上给定s,t.每秒s先向t按照最短路走两步(优先节点编号较小的),然后t随机行动一步. 问期望多少秒相遇.n <= 1000 解: 这个s太蛇皮了...所以预处理一波. 然后不会,看题 ...