php设置session值和cookies的学习示例_.docx
《php设置session值和cookies的学习示例_.docx》由会员分享,可在线阅读,更多相关《php设置session值和cookies的学习示例_.docx(10页珍藏版)》请在三一文库上搜索。
1、php设置session值和cookies的学习示例_ 始终没弄懂Session,cookies什么的登陆验证究竟是怎么回事,昨天分别用HttpURLConnection和HttpClient两个类来试验了一下,基本弄明白了Session验证登陆的机制和这两个类的区分。现在分享给大家 第一步:先在本地写一个登陆页面和一个内容页面(登陆了才能进去)吧。代码大致如下: 下面是login.php,用于恳求登陆的,通过post传递参数,假如登陆胜利就会注册session。 代码如下: ?php session_start(); if (isset($_POSTusername) $username =
2、 $_POSTusername; $password = $_POSTpassword; if ($username = admin $password = admin) $_SESSIONusername = $username; echo a href=content.php进入网站/a; else echo -1; ? html body form action= method=post input type=text name=username / input type=password name=password / input type=submit name=submit val
3、ue=submit / /form /body /html 下面是content.php,会验证session,用来当网站的内容页,登陆了才能看到正确的内容。 代码如下: ?php session_start(); if (isset($_SESSIONusername) echo login ok; else echo not login; ? 接下来先讲HttpURLConnection这个类,先用法这个类挺直恳求content.php页面,理所应当的返回了-1。假如先用这个类去恳求login.php,并传递正确的参数,就会显示登陆胜利,这个时候再去用这个类恳求content.php,依旧
4、是返回-1,很明显,HttpURLConnection并没有记录我们登陆的状态,或者劝说务器认识刚刚登陆胜利的人,但这次恳求content.php的人它依旧不认识。这就说明白HttpURLConnection的每一次恳求都是独立的,都是一次新的恳求,或者说每一次恳求都是一个新的会话(session)。 然后我就用chrome去开我自己写的那个测试的网页,发觉在同一个网站下,同一次会话中,有一个sessionid是不会变的。 就是上面这个东西,假如开着某个页面,无论如何刷新,或者跳转到这个服务器下的其他网站,这个SESSIONID的值都不会转变,但是假如关掉这个服务器下的全部页面,再重新打开这样
5、的一个页面,这个SESSIONID的值就被重新生成了。 于是用HttpURLConnection的状况,第一次登陆login.php是一个SESSIONID,的确登陆胜利了,服务器记住的是SESSIONID为A的状况(假设是A好了),但再去恳求content.php的时候,SESSIONID就不是A了,服务器就认为你没有登陆,于是就显示了“-1”。问题搞明白了,那么只需要在HttpURLConnection恳求的时候,给它加上SESSIONID这个头部就行了。最终代码如下: 代码如下: public class NetHelper /* * SESSIONID * */ private Str
6、ing sessionId = ; /* * 发送一条恳求,将内容以字符串返回 * param url 恳求的地址 * return 返回的内容 * */ public String request(String url) throws IOException URL uUrl = new URL(url); HttpURLConnection huc = (HttpURLConnection) uUrl.openConnection(); huc.addRequestProperty(Cookie, sessionId); /为什么是“Cookie”,Chrome打开F12自己看看就明白了
7、huc.connect(); BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream(); String data = ; String line = ; while (line = br.readLine() != null) data = data + line; return data; /* * 发送登陆恳求,并将SESSIONID保存起来 * param url 登陆恳求的地址 * return 返回的内容 * */ public String login(String url)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- php 设置 session cookies 学习 示例
链接地址:https://www.31doc.com/p-11646382.html