喜悦国际村 
» 游客:  注册 | 登录 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

【北京】--【低薪】-【诚聘】--- 高级PHP工程师,WEB前台开发工程师

上一主题 下一主题
     
标题: 奇怪的session问题~  
 
xiaopy
新手上路
Rank: 1



UID 76770
精华 0
积分 6
帖子 5
金钱 6 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-7-20
状态 离线
奇怪的session问题~



<?php
session_start();
@$username2 = $_SESSION["username"];

include('global.php');
//////////////////////////////////////////////////////////////////
print <<< EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户查询系统</title><link rel="stylesheet" href="guide.css">
<base target="_blank">
</head>
<body leftmargin="0" rightmargin="0" topmargin="0">
<script language="JavaScript" src="header.js"></script>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
EOT;
///////////////////////////////////////////////////////////////
@$username = $_POST['username'];
@$password = $_POST['password'];
@$action = $_GET['action'];

if(isset($username2)) {
$message = "欢迎您登陆用户查询系统!";
                echo "<tr>"."<td class=\"title\">".$_SESSION["username"]." ".session_id()." ".$message."</td>"."</tr>";
            echo "<tr>"."<td>";
            echo "</td></tr>";
        }else{
                if (!isset($username)) {
        $message = "对不起,您还没有登陆!";
        echo "<tr>"."<td class=\"title\">".$message."</td>"."</tr>";
        echo "<tr>"."<td>";
        echo "<p>";
        include_once("login.html");
        echo "</td></tr>";
} else {
        
        $result = $db->query("SELECT count(*) FROM subscriber where username = '$username' and password = '$password'");
        $row = mysql_fetch_row($result);
        $count = $row[0];
        if($count > 0) {
                $_SESSION["username"] = $username;
        $message = "欢迎您登陆用户查询系统!";
                echo "<tr>"."<td class=\"title\">".$_SESSION["username"]." ".session_id()." ".$message."</td>"."</tr>";
            echo "<tr>"."<td>";
            echo "</td></tr>";
        }  
}  
}

switch($_GET['action']) {
        case 'cz':
   if(!isset($username2)) {
                        ;
} else {
                $message = "您的充值记录!";
                echo "<tr>"."<td class=\"title\">".$username2."</td>"."</tr>";
            echo "<tr>"."<td>";
            require_once('cz.php');
            echo "</td></tr>";
}
            break;
////////////////////////////////////////
        case 'ye':
                require_once('global.php');
                if(!isset($username2)) {
                        ;
} else {
        $message = "您当前的余额!";
        echo "<tr>"."<td class=\"title\">".$message."</td>"."</tr>";
        echo "<tr>"."<td>";
        $result = $db->query("SELECT money FROM subscriber WHERE username='$username2'");
        $row = mysql_fetch_row($result);
        
        print $row[0];
        echo "</td></tr>";
}
    break;
////////////////////////////////////////            
        case 'exit':
                if(!isset($username2)) {
                        ;
} else {
                session_destroy();
                unset($username2);
                unset($action);
                $_SESSION=array();
                $message = "对不起,您还没有登陆!";
        echo "<tr>"."<td class=\"title\">".$message."</td>"."</tr>";
        echo "<tr>"."<td>";
        include_once("login.html");
        echo "</td></tr>";
}        
        break;
}        
//////////////////////////////////////////////////////////////
print <<< EOT
</td></tr></table>
<script language="JavaScript" src="footer.js"></script>
</body>
</html>
EOT;

?>
这是主页index.php,然后上面有几个链接,比如有index.php?action=cz, index.php?action=ye,成功登系统后,会注册一个session变量$_SESSION["username"],可是奇怪的是,如果点index.php?action=cz,可以得到这个session变量,可接着再点index.php?action=ye,这个session变量就消失了,哪位大侠可以帮帮我,先谢过了~
2006-7-31 02:00 AM#1
查看资料  发短消息  顶部
 
shelly0577 (shelly0577)
金牌会员
Rank: 6Rank: 6
高级会员


UID 18493
精华 0
积分 1723
帖子 1726
金钱 1699 喜悦币
威望 0
人脉 24
阅读权限 70
注册 2003-2-21
状态 离线
[推荐阅读] 张佳音 求职
调试时,注意输出一下 PHPSESSID 的值。如果页面这个值没有变。那么,就要查一下你的代码了。
看看哪里是不是没有注意
判断时

if($username2=="....") 没注意写成了 ($username="...")什么的。

我觉得你的判断是否登陆有些问题。
!isset($username2) 这个有问题
2006-7-31 05:52 AM#2
查看资料  访问主页  Blog  发短消息  顶部
 
没看见 (帅哥杨)
高级会员
Rank: 4
被遗忘的漏洞


UID 67293
精华 0
积分 816
帖子 820
金钱 816 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2005-12-19
状态 离线
[推荐阅读] 循环的问题!!!
使用session
页面接收值第一行必须加session_start();
还有,建议你写程序少用@
除非对文件操作有特殊情况
2006-7-31 08:50 AM#3
查看资料  Blog  发短消息  QQ  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.038325 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP