PHP03

1、提交地址:

action。用户点击提交后,发送请求的地址。一般为了便于维护,最常见的是提交给当前文件,然后在当前文件判断是否为表单提交请求,表单的处理逻辑放在Html之前,为了避免写死提交地址而导致的代码修改,鲁棒性不强,使用SERVER超全局变量。



鲁棒性:指我们的程序应对变化的能力



2、提交方式:

get和post的方式差异:

请求方式不同

传参方式不同:

get——url传参

post——请求体传参

3、表单元素对的提交

所有表单的提交都必须有name属性

button:

默认value为on。表单中使用了radio,一定要为相同的raadio设置不同的value,让服务端可以辨别

checkbox:

如果没有选中则不会提交,选中提交后value值为on

也可以设置value。

同时提交多个选中项:

在name属性后加[]

下拉框:

默认提交的是option标签中的内容(innertext)

也可以设置value

4、案例:编写功能完整的用户注册页面

1)表单处理三部曲:

接收并校验、持久化、响应

2)表单状态保持:

include和require函数其实可以有返回值,可返回一个含配置代码的数组

return Array(

‘SYSTEM_NAME’=> ‘cc’

);

然后在引入时



5、文件域的基本使用

1)

如果表单内含有文件域,则提交方式必须为post

enctype必须为multipart-from-data,系统默认为urlencoded,是键值对的形式。

接收用户上传的文件时,用一个叫做$_FILES的超全局成员

2)文件上传服务端处理逻辑

判断服务端有没有收到上传的文件-判断文件上传是否发生错误-将文件从临时目录移动到网站范围内–判断指定目标目录是否存在-判断是否移动成功

<?php
function upload(){ if (!isset($_FILES['avatar'])){
$GLOBALS['message'] ='未上传';
return;
}
$avatar = $_FILES['avatar'];
if($avatar['error']!==UPLOAD_ERR_OK){
$GLOBALS['message'] ='上传失败';
return;
}
$source=$avatar['tmp_name'];
$target='./uploads/'.$avatar['name'];
$moved=move_uploaded_file($source, $target);
if(!$moved){
$GLOBALS['message'] ='上传失败';
return;
}
echo '上传成功';
}
if($_SERVER['REQUEST_METHOD']==='POST'){
upload();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="file" name="avatar"> <button>上传</button>
<?php if(isset($message)):?>
<p style="red">
<?php echo $message; ?>
</p>
<?php endif ?> </form>
</body>
</html>

3)上传大文件的问题



修改请求报文限制大小post_max_size

修改上传的文件限制大小upload_max_filesize

PHP03的更多相关文章

  1. PHP03 移动互联网和PHP

    学习要点 移动互联网 云计算 网络通信协议 Apache http服务器 PHP运行原理 学习目标 理解网络通信协议 掌握PHP运行原理 WAMP开发环境的搭建   移动互联网 定义 移动互联网,就是 ...

  2. sudo实例--企业生产环境用户权限集中管理方案实例

    根据角色的不同,给不同的用户分配不同的角色1.创建初级工程师3个,网络工程师1个,中级工程师1个,经理1个      #  批量创建用户 for user in chuji{01..03} net01 ...

  3. Linux 基础学习大考核

    0.关于Linux的简介 Linux(好又免费)的组成部分: Linux 是一种计算机操作系统: 一系列能让您与计算机进行交互操作并运行其它程序的程序. 操作系统由多种基础程序构成.它们使计算机可以与 ...

  4. php 03

    php03 一.判断类型 is_bool()   判断是否是布尔型 is_int(),is_integer() 和is_long()  判断是否是整型 is_float(),is_double()和i ...

随机推荐

  1. javascript 对象(四)

    一.对象概述 对象中包含一系列的属性,这些属性是无序的.每个属性都有一个字符串key和对应的value. var obj={x:1,y:2}; obj.x; obj.y; 1.为什么属性的key必须是 ...

  2. Python 命令模式和交互模式

    命令模式 在系统CMD命名模式下执行 命令执行到脚本所在目录 执行python Test.py 可直接一次执行完脚本里面所有的语句 交互模式下 一行一行执行

  3. Spring Boot配置文件放在jar外部

    Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢? 查询官网,可以得到下面的几种方案: 通过命令 ...

  4. JMeter执行压测输出HTML图形化报表(一)

    一.应用场景 1.无需交互界面或受环境限制(linux text model) 2.远程或分布式执行 3.持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于 ...

  5. 使用entitiy

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  6. API接口设计,rest,soap

    REST之前的重要协议SOAP rest(简单理解风格.约束.设计理念) rest之前是SOAP:SOAP Web API采用RPC风格,它采用面向功能的架构,所以我们在设计SOAP Web API的 ...

  7. 01++ Bookshelf 2

    http://poj.org/problem?id=3628 就是比原题多了一个要求,输出>=m的最小值 kisang~独立做出来的都开心<( ̄︶ ̄)> #include<cs ...

  8. Windows10 下Apache服务器搭建

    Windows10 下Apache服务器搭建   转 https://blog.csdn.net/sunqian666888/article/details/78561399 目录 一.软件下载 二. ...

  9. POJ2387 Til the Cows Come Home 【Dijkstra】

    题目链接:http://poj.org/problem?id=2387 题目大意; 题意:给出两个整数T,N,然后输入一些点直接的距离,求N和1之间的最短距离.. 思路:dijkstra求单源最短路, ...

  10. this 相关(2)

    this 的指向与所在方法的调用位置有关,而与方法的声明位置无关 var obj = { val: 1, getVal: function() { console.log(this.val); } } ...