Cookie
是存在本地客户端的
1/ setcookie(); 设置cookie
/**
* 参1 cookie的名字
* 参2 cookie的值
* 参3 生命周期,为 0 时代表当前对话, 可以自定义设置时间,自定义时间的时候要加上当前时间
* 参4 作用目录 / 代表根目录 整个项目都能访问,如果没设置 默认为当前目录
*/
setcookie
(
'a'
,
123
,
0
,
'/'
);
2/ 七天免登陆思想
//更改session_name,必须放在session_start之前
//更改session_name为了更安全
session_name
(
'hdphp'
);
//当开启session时,客户端会自动生成一个cookie文件,服务器端也会自动生成一个session文件
// 并且服务器端和客户端的session_name和session_id 值一样 判断是否是同一用户
//但是cookie默认生命周期为0 session默认生命周期为1440秒
session_start
();
//所以再次拿到服务端的session文件的name和id值,重新设置一条生命周期为7天的,覆盖之前的
//这样就算关闭浏览器,下次登录时,秘钥还会在,就实现7天免登陆了
//setcookie(session_name(),session_id(),time() + 3600 * 24 * 7,'/');
3/ 逻辑
//以http头部信息向服务器发送请求
session_start
();
//设置一条cookie信息
setcookie
(
'a'
,
2
);
//第一次报错是因为先创建还没拿出来,第二次刷新页面才能调用
echo
$_COOKIE
[
'a'
];
4/ input checkbox 复选表单
当被勾选时,会接收到name值和value值,没有被勾选中时,什么都没有
所以用isset($_POST['name'])函数来判断是否被勾选
5/ serialize 序列化 unserialize 反序列化
序列化是为了存储非字符串字符
Session
是存在服务器端的tmp文件夹里
1/ session_start(); 开启session 一个页面中只能开启一次,否则会报错
2/ session_id(); 获取设置session_id
3/ session_name() 获取设置session_name
4/ unset($_SESSION[ 'web' ]); 删除session变量
6/ session_unset(); 释放当前在内存中已创建的所有$_SESSION变量
但不删除session文件以及不释放对应的session id
7/ session_destroy 删除当前用户对应的session文件以及释放session id
内存中的$_SESSION变量内容依然保留
8/ 释放用户的session所有资源
session_unset(); session_destroy();
9/ session_save_path(); 会话数据的路径.如果指定的路径,将数据保存到路径中
10/ session垃圾回收
Ajax
1/ 举例:分页浏览不刷新页面
// 因为ajax是借助于jQuery运行的,所以要先引入jQuery
<
script
src=
"./jquery-1.10.2.min.js"
></
script
>
<
script
>
$
(
function
(){
// 给.pagination所有的a便签添加点击事件
$
(
'.
pagination a
'
).
click
(
function
(){
//用户当前点击的页码的值
var
page
=
$
(
this
).
html
();
// ajax异步发送
$
.
ajax
({
// 请求地址
url
:
'./handle.php'
,
// 发送数据
data
:{
p
:
page
},
// 发送方式
type
:
'get'
,
// 收到的数据类型,默认为text类型,还有html类型
dataType
:
'json'
,
// 处理反馈回来的数据
success
:
function
(response){
// 空字符串,用来存储
var
str
=
''
;
// 遍历
$
.
each
(response,
function
(k,v) {
// 追加
str
+=
'<tr><td>'
+v.
id
+
'</td><td>'
+v.
title
+
'</td></tr>'
;
})
// 把代码写入
$
(
'tbody'
).
html
(
str
);
}
})
})
})
</
script
>
2/ json_encode();
在php中将数据转成json格式,js才能读取
3/ ajax 中的serialize序列化 只是在获取表单中所有内容时才用, 如果单独一一抓取form表单会很麻烦 ,所以一般直接抓取整个form表单的内容,然后给它序列化成一个符合json格式的字符串,在ajax直接用即可