(九)php参考手册---http函数&表单与验证&会话处理
来源:互联网 发布:网络上的白云先生是谁 编辑:程序博客网 时间:2024/06/05 03:52
header()函数
- header(string,replace) 向客户端发送原始的 HTTP 报头。
参数:string 必需。规定要发送的报头字符串。
replace 可选。指示该报头是否替换之前的报头,或添加第二个报头。默认是 true(替换)。false(允许相同类型的多个报头)。
<?php header('Location:Demo2.php'); // 自动跳转到想要的页面 header('Location:http://www.baidu.com'); // 自动跳转到百度?>
注意:如果出现警告:Cannot modeify header information-headers already sent by(—)in —。
解决办法一:在执行header()函数之前不能有任何浏览器输出
解决办法二:开启缓冲 ob_start() (不建议使用)
http_response_code 可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)
headers_list() 返回已发送的(或待发送的)响应头部的一个列表。
headers_sent() 检查 HTTP 报头是否发送/已发送到何处。
setcookie() 定义与 HTTP 报头的其余部分一共发送的 cookie。
setrawcookie() 定义与 HTTP 报头的其余部分一共发送的 cookie(不进行 URL 编码)。
<?php header('Content-Type:text/html;charset=utf-8'); echo '我是中文';?>
接受及验证数据
超级全局变量
- $_POST接收post提交的数据
- $_GET 接收get提交的数据
验证数据
- isset($_POST(’name’)) 判断一个变量是否存在
- empty()判断是否为空
<?php //过滤非表单提交 if(isset($_POST['name'])){ echo '正常提交'; }else{ echo '非正常提交'; } //判断提交是否为空(不推荐这种方法) if(!empty($_POST['name'])){ echo '为空'; }else{ echo '不为空'; }?>
- htmlspecialchars($username):将html特殊字符进行过滤。
<?php if(isset($_GET['name'])){ echo '正常提交'; $username=$_GET['name']; // 在输出之前,为了页面安全性 $username=htmlspecialchars($username); }else{ echo '非正常提交'; }?>
有效性验证
- trim()去除数据的前后空格
- strlen()判断数据的长度
- is_numeric()判断数据是否是纯数字
使用正则表达式验证邮箱是否合法
tips:exit;(直接退出)
die;(不会继续执行)
验证 Name、E-mail、以及 URL
<?php// 定义变量并设置为空值$nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = "";if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = test_input($_POST["name"]); // 检查名字是否包含字母和空格 if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Only letters and white space allowed"; } } if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); // 检查电邮地址语法是否有效 if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) { $emailErr = "Invalid email format"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // 检查 URL 地址语言是否有效(此正则表达式同样允许 URL 中的下划线) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/% =~_|]/i",$website)) { $websiteErr = "Invalid URL"; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = test_input($_POST["gender"]); }}?>
其他http函数
headers_list() 函数返回已发送的(或待发送的)响应头部的一个列表。
该函数返回包含报头的数组。headers_sent(file,line):函数检查 HTTP 标头是否已被发送以及在哪里被发送。
如果报头已发送,则返回 true,否则返回 false。
参数:file,line 可选。如果设置 file 和 line 参数,headers_sent() 会把输出开始的 PHP 源文件名和行号存入 file 和 line 变量中。
会话处理
cookie
会话结束时,当浏览器关闭时,cookie就没有了。
如果创建的是一个包含过期时间的cookie,过期时间采用当前的时间戳+秒即可
time()+(7*24*60*60) //表示未来7天
setcookie(name,value,expire,path,domain,secure):函数向客户端发送一个 HTTP cookie。
参数:
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
注释:可以通过HTTPCOOKIEVARS["user"]或 _COOKIE[“user”] 来访问名为 “user” 的 cookie 的值。setrawcookie() 与 setcookie() 几乎完全相同,不同的是不会在发往客户机时,对 cookie 值进行自动 URL 编码。
注释:setrawcookie() 与 setcookie() 几乎完全相同,不同的是不会在发往客户机时,对 cookie 值进行自动 URL 编码。删除cookie需要把原来的name的值替换成空。或者将过期时间调整到比目前的时间还早一秒。
注意:cookie并不是及时生成的,会慢一拍。第一次刷新只是覆盖了原来,但获取的还是之前的,需要第二次刷新,才能真正获取到。
- cookie的限制:1:必须在HTML文件的内容输出之前设置
2:不同浏览器对cookie的处理不一致,且有时会出现错误结果
3:限制是在客户端的,一个浏览器能创建最多30个,并且不能超过4kb,
每个站点能设置最多20个。
session
只要用到session,就必需开启session_start();session是存在服务器端的,一般存放1440秒,
如果网页没有任何操作,会自动销毁,当然通过php.ini去修改保存时间
如果关闭了浏览器,也会自动销毁,并且没有延迟性
- 创建session,直接采用超级全局变量赋值即可
//赋值$_SESSION['name']='123';//取值echo $_SESSION['name'];//删除unset($_SESSION['name']);echo $_SESSION['name'];//销毁所有sessionsession_destroy();
总结
cookie适用于会员登录,购物车等等,因为不占用服务器资源,所以会员特别多的,就用cookie
session一般用于后台管理登录,人少,安全性高,一段时间不操作会自动过期。
- (九)php参考手册---http函数&表单与验证&会话处理
- php会话处理函数
- PHP 学习笔记(二):表单:表单处理,表单验证,表单实例
- PHP会话处理相关函数介绍
- PHP处理会话函数1、 session_start
- PHP会话处理相关函数介绍
- PHP会话处理相关函数介绍
- PHP网站开发实例教程之知识点归纳3(WEB表单与会话技术)
- (三)php参考手册----Math函数
- (五)php参考手册---Filesystem 函数
- (八)php参考手册---Date/Time函数
- PHP学习之--表单与验证
- 13.Cookie的应用与Session会话处理(小案例:登录验证)
- php会话处理
- php会话处理
- 九、表单处理
- PHP中会话处理函数的逻辑流程
- **PHP** 表单(1)-表单处理
- 3、C#里面文本的3种换行方式
- Git各种撤销操作
- Python3 时间和日期
- 基准测试移动 GPU 中的浮点精度
- Docker常用命令
- (九)php参考手册---http函数&表单与验证&会话处理
- Vue.js项目引入less文件报错解决
- git 撤销commit
- java中ftp文件上传和中文乱码解决
- Java代理模式及应用(二)静态代理与动态代理
- Java集合类详解
- Android原生Sqlite数据库设计
- 3 springboot 热部署问题
- css动画效果:鼠标移上去底部线条从中间往四周动画延伸