佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1502|回复: 12

PHP的cookie的问题

[复制链接]
发表于 18-10-2005 12:06 PM | 显示全部楼层 |阅读模式
我有一个PHP的program.
是用cookie来login的但是。

我的写法是这样的


  1. login

  2. <?php
  3. $USERNAME=$_POST["USERNAME"];
  4. $PASSWORD=$_POST["PASSWORD"];
  5. if ($USERNAME!="chen" or $PASSWORD!="chen")
  6.         {
  7.         header("Location:login.php");
  8.         exit;
  9.         }
  10. SETCOOKIE("USERNAME", $USERNAME);
  11. SETCOOKIE("PASSWORD", $PASSWORD);
  12. header("location:list.php");
  13. ?>
复制代码


  1. secure.php

  2. <?php
  3. $USERNAME=$_COOKIE["USERNAME"];
  4. $PASSWORD=$_COOKIE["PASSWORD"];
  5. if ($USERNAME!="chen" or $PASSWORD!="chen")
  6.         {
  7.         header("Location:login.php");
  8.         exit;
  9.         }
  10. ?>
复制代码


  1. logout..

  2. CASE "logout":
  3. SETCOOKIE("USERNAME"," ", time()-60);
  4. SETCOOKIE("PASSWORD"," ", time()-60);
  5. header("Refresh:3;URL=login.php");
  6. echo"<img border=0 src=wait.gif><br>";
  7. echo" Loging out....";
  8. break;
复制代码


in each page header
i have add this

  1. <?php require("secure.php");
  2. require ("conn.php");?>
复制代码


问题是,当我logout了,
我 click Internet Explorer的back时,它可以回到之前的。
为什么呢?

我用session就没有这问题。

[ 本帖最后由 红发 于 18-10-2005 12:11 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 18-10-2005 01:33 PM | 显示全部楼层
为什么有人看没有人回答我呢?
回复

使用道具 举报

发表于 19-10-2005 12:04 AM | 显示全部楼层
因为大家都搞不懂什么原因,我一直都在用session做login,cookie只是记录一些比较不严密的资料。
回复

使用道具 举报

发表于 19-10-2005 12:32 AM | 显示全部楼层
cookie 是储存在 client 的电脑中,而 session 是储存在 server 中。

当你 logout 时,记得清除 session 和 cookie 理的资料,那么就 browser 就不会“记得“ 你上次的资料了。
回复

使用道具 举报

 楼主| 发表于 19-10-2005 09:13 AM | 显示全部楼层
就是我清除了cookie,
然后click intenet explorer 的 back 还是可以看到资料。
然后我在click refresh 他就会才叫我insert username 和 password.

希望各位大大明白我的意思。
谢谢
回复

使用道具 举报

 楼主| 发表于 19-10-2005 09:14 AM | 显示全部楼层
原帖由 JR86 于 19-10-2005 12:04 AM 发表
因为大家都搞不懂什么原因,我一直都在用session做login,cookie只是记录一些比较不严密的资料。



因为我要试试用cookie来做login
回复

使用道具 举报

Follow Us
发表于 19-10-2005 11:03 AM | 显示全部楼层
我想也许是在history里你的browser buffer里面还有cookie的variable吧,你可以试试看佳礼也是这样的。如果要避免这样的情况还有你所设计的网页不会handle很多login session的话,可以试试看用session cookies(利用cookies保留session)。
回复

使用道具 举报

发表于 19-10-2005 11:39 AM | 显示全部楼层
网页大概被Proxy Server或其他Server Cache了吧!
试试这个

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 19-10-2005 02:31 PM | 显示全部楼层
原帖由 苦瓜汤 于 19-10-2005 11:03 AM 发表
我想也许是在history里你的browser buffer里面还有cookie的variable吧,你可以试试看佳礼也是这样的。如果要避免这样的情况还有你所设计的网页不会handle很多login session的话,可以试试看用session cookies(利 ...



session 是可以,
但我要试试用cookie
回复

使用道具 举报

 楼主| 发表于 19-10-2005 02:32 PM | 显示全部楼层
原帖由 belon_cfy 于 19-10-2005 11:39 AM 发表
网页大概被Proxy Server或其他Server Cache了吧!
试试这个

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", fal ...


好的我试试看。

谢谢belon_cfy
回复

使用道具 举报

发表于 19-10-2005 03:09 PM | 显示全部楼层
原帖由 红发 于 19-10-2005 02:31 PM 发表



session 是可以,
但我要试试用cookie

我的意思是session-cookies,就是把session_id用cookies保存起来,这样可以弥补两边的缺点。例如:


  1. //login
  2. session_start();
  3. $_SESSION['auth']=true;
  4. setcookie('my_id',session_id(),time()+60*60*24);

  5. //auth
  6. $my_id = $_COOKIE['my_id'];
  7. session_set_cookie_params(60*60*24);
  8. session_id($my_id);
  9. session_start();
  10. /*if(isset($_SESSION['auth']) && $_SESSION['auth'] == true){
  11.   return (true);
  12. }else{ return -1; }*/

  13. //logout
  14. $my_id = $_COOKIE['my_id'];
  15. session_set_cookie_params(60*60*24);
  16. session_id($my_id);
  17. session_start();
  18. session_unset();
  19. session_destroy();//这样就可以不受cache的影响了。
复制代码


(code没test过,有错的话请见谅。)

[ 本帖最后由 苦瓜汤 于 19-10-2005 03:11 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 19-10-2005 05:10 PM | 显示全部楼层
session-cookies??

没有test过,但是谢谢你。

我试试看,顺便找找他的资料
回复

使用道具 举报

 楼主| 发表于 24-10-2005 12:56 PM | 显示全部楼层
为什么我用session就没有这个问题。
用cookie就会呢??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 11-11-2024 04:19 AM , Processed in 0.132613 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表