直接上题,代码没贴好多,能看懂就行:
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
请问这个是怎么回事?
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
请问这个是怎么回事?
session_register('password');
$_SESSION['user']=$user;
$_SESSION['password']=$password;
之后要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 变量,必须是全局变量
<?
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;
}
}
?>
我说了。。我在后台其它页面头部使用了cksession()
<?php
echo 'csdn这么好用的代码工具,为啥 不用涅';
?>
要放在第一行啊