SESSION的问题?求解

cqheshuang 2010-07-30 02:12:41
直接上题,代码没贴好多,能看懂就行:
index.php:
$rs=mysql_fetch_array(mysql_query("select * from user")) or die(mysql_error());
if($rs[name] === $user && $rs[password] === md5($password))
{
Web_Session::setsession($array[]=$rs[name],$array[]=$rs[password]);
info("Login Success!",'a_index.php');
}

class Web_Session{
function setsession($user,$password)
{
session_register('user');
session_register('password');
$_SESSION['user']=$user;
$_SESSION['password']=$password;
}
}

checklogin.php:
/**
* 判断SESSION
*/
function cksession()
{
if($_SESSION['user']!='' && $_SESSION['password']!='')
{
echo "<script>alert('登陆成功!');location.href='a_index.php';</script>";
}
else
{
echo "<script>alert('Login Bad!');location.href='index.php';</script>";
}

}

我在a_index.php的头部放入了cksession(),按道理说,我index.php已经给SESSION['user']和password赋值了,在进入a_index.php的时候应该提示我下登陆成功吧,但是一点反应也没有,直接就登陆进去了。还有我在其它后台页面中也放入了CHSESSION(),我是直接输入其它页面进的。。并未在index.php登陆,也不是提示我LOGIN BAD。。。
请问这个是怎么回事?
...全文
74 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqheshuang 2010-07-30
[Quote=引用 12 楼 gfd297097456 的回复:]
session_start();
要放在第一行啊
[/Quote]
我放了啊。。还是不行啊
回复
leaf_2008 2010-07-30
session_start();
要放在第一行啊
回复
cqheshuang 2010-07-30
[Quote=引用 10 楼 softfc 的回复:]
PHP code

<?php
echo 'csdn这么好用的代码工具,为啥 不用涅';
?>
[/Quote]
什么东西?
回复
softfc 2010-07-30

<?php
echo 'csdn这么好用的代码工具,为啥 不用涅';
?>
回复
cqheshuang 2010-07-30
[Quote=引用 6 楼 cqheshuang 的回复:]
引用 4 楼 xuzuning 的回复:

在你的代码中没有看到 session_start();
也没有看到 cksession() 被执行

另外这个代码是错误的,虽然没有看到使用:
class Web_Session{
function setsession($user,$password)
{
session_register('user');
session_regi……
[/Quote]
哦。。说错了。。。我并没有使用这个模块的代码。。我只是把它拿来赋值用
回复
caizhuguanguan 2010-07-30
session_start() 必须的
回复
cqheshuang 2010-07-30
我原来是用COOKIE。。过后换成了SESSION.。。。那个错误的要怎么修改啊????
回复
cqheshuang 2010-07-30
[Quote=引用 4 楼 xuzuning 的回复:]

在你的代码中没有看到 session_start();
也没有看到 cksession() 被执行

另外这个代码是错误的,虽然没有看到使用:
class Web_Session{
function setsession($user,$password)
{
session_register('user');
session_register('password');
$_S……
[/Quote]

我说了。。我在后台其它页面头部使用了cksession()
回复
cqheshuang 2010-07-30
这是checklogin.php
<?
session_start();
class CheckLogin
{
/**
* 后台登陆认证方法
*
*/
function post()
{
if(isset($_POST['user']) && isset($_POST['password']))
{
$user = $_POST['user'];
$password = $_POST['password'];
$rs=mysql_fetch_array(mysql_query("select * from user")) or die(mysql_error());
if($rs[name] === $user && $rs[password] === md5($password))
{
Web_Session::setsession($array[]=$rs[name],$array[]=$rs[password]);
info("Login Success!",'a_index.php');

}else{
info("Login Bad!",'index.php');
}
}
}

/**
* 判断是否获取SESSION
*/
function cksession()
{
if(empty($_SESSION['user']) || empty($_SESSION['password']))
{
echo "<script>alert('Login Bad!');location.href='index.php';</script>";

}
else
{
echo "<script>alert('登陆成功!');location.href='a_index.php';</script>";
}

}
}


class Web_Session
{
/**
* 设置指定的COOKIE值
*
* @access public
* @param string $key 指定的参数
* @param mixed $value 设置的值
* @param integer $expire 过期时间,默认为0,表示随会话时间结束
* @param string $url 路径(可以是域名,也可以是地址)
* @return void
*/
function setsession($user,$password,$expire = 0)
{
session_register('user');
session_register('password');
$_SESSION['user']=$user;
$_SESSION['password']=$password;
}
/**
* 删除指定的COOKIE值
*
* @access public
* @return void
*/
function destroy()
{
$_SESSION["user"]="";
$_SESSION["password"]="";
echo "<script>alert('login out!');location.href='index.php';</script>";
exit;
}
}
?>
回复
xuzuning 2010-07-30
在你的代码中没有看到 session_start();
也没有看到 cksession() 被执行

另外这个代码是错误的,虽然没有看到使用:
class Web_Session{
function setsession($user,$password)
{
session_register('user');
session_register('password');
$_SESSION['user']=$user;
$_SESSION['password']=$password;
}
}

用 session_register 注册的 session 变量,必须是全局变量
回复
kyzy_yy_pm 2010-07-30
[Quote=引用 2 楼 kyzy_yy_pm 的回复:]
session_register('user');
session_register('password');
$_SESSION['user']=$user;
$_SESSION['password']=$password;


之后要session_start()
[/Quote]
打错了,是之前要session_start()
回复
kyzy_yy_pm 2010-07-30
session_register('user');
session_register('password');
$_SESSION['user']=$user;
$_SESSION['password']=$password;


之后要session_start()
回复
CunningBoy 2010-07-30
session_start()加了吗?
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告