PHP03
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的更多相关文章
- PHP03 移动互联网和PHP
学习要点 移动互联网 云计算 网络通信协议 Apache http服务器 PHP运行原理 学习目标 理解网络通信协议 掌握PHP运行原理 WAMP开发环境的搭建 移动互联网 定义 移动互联网,就是 ...
- sudo实例--企业生产环境用户权限集中管理方案实例
根据角色的不同,给不同的用户分配不同的角色1.创建初级工程师3个,网络工程师1个,中级工程师1个,经理1个 # 批量创建用户 for user in chuji{01..03} net01 ...
- Linux 基础学习大考核
0.关于Linux的简介 Linux(好又免费)的组成部分: Linux 是一种计算机操作系统: 一系列能让您与计算机进行交互操作并运行其它程序的程序. 操作系统由多种基础程序构成.它们使计算机可以与 ...
- php 03
php03 一.判断类型 is_bool() 判断是否是布尔型 is_int(),is_integer() 和is_long() 判断是否是整型 is_float(),is_double()和i ...
随机推荐
- 【回顾】html简介、基础、元素
1.简介 什么是HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标记语言 标 ...
- B - Alyona and towers CodeForces - 739C
链接: https://vjudge.net/contest/202699#problem/B 题意: 给出一个序列,要支持区间加和操作 求其中最长的区间,该区间内的元素满足(ai<ai+1&l ...
- NEST 之旅 · 开启
NEST 之旅 · 开启 Version:5.x 英文原文地址:Getting started 说实话,这篇文章翻译的很糟糕.但是我的能力有限,目前只有这个水平,还望各位多指导. NEST 是 Ela ...
- Linux 记录所有用户登录和操作的详细日志
1.起因 最近Linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录. 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行 ...
- 将input或textarea设置为disabled的样式问题
input:disabled{ -webkit-text-fill-color: #333;//是用来做填充色使用的 -webkit-opacity: 1; color: #333; } textar ...
- Python 携程
一.协程 1.又称微线程,纤程.英文名Coroutine.一句话说明什么是协程:协程是一种用户态的轻量级线程(相当于操作系统不知道它的存在,是用户控制的). 2.协程拥有自己的寄存器上下文和栈(代码的 ...
- siege压力测试工具安装和介绍
Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试. 安装 Siege #wget http://www.jo ...
- BZOJ4003 [JLOI2015]城池攻占 左偏树 可并堆
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4003 题意概括 题意有点复杂,直接放原题了. 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑 ...
- day 51 js-2 函数,对象,正则 (定时器示例)
本文转载自cnblogs.liwenzhou-----哪吒博客 先来一个定时器让我们看看函数的效果: <script src="/js/jquery-3.2.1.min.js" ...
- 总结mysql的三种外键约束方式
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常 ...