当前位置:编程学习 > php >>

PHP高手进来看下吧,关于一个简单的后台管理的程序

<?


$admin=$_POST["name"];
$password=$_POST["pass"];
echo $admin;
echo $password;

$mysql_server_name="127.0.0.1";
$mysql_username="root";
$mysql_password="123456";
$mysql_database="liuyan";
$sql="SELECT * FROM admin where admin='$admin' and password='$password'";
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
mysql_query("SET NAMES 'GBK'");
$result=mysql_db_query($mysql_database,$sql,$conn);
$row=mysql_fetch_row($result);
if (!$row)
{


session_start();

$_SESSION['admin']=true;

echo "<script>alert('用户名或密码错误!');

location='admin.php';</script>";
}
else
{



$_SESSION['admin']=$admin;
echo "<script>alert('登录成功!');location='show.php';</script>";
}
?>

上面的是检查用户的check.php.,下面的是登陆界面show.php,现在有一个问题,老是提示非法登陆,我刚刚学这个,我感觉程序会有问题,请主高手指点,谢谢,弄了很久了也没弄成,如果有什么更好的方法请高手指点,谢谢,我先给50,好了,我会再加的,谢谢了session,我不太会

<?
session_start();
if($_SESSION['admin']==true)
{
echo "<script>alert('非法登陆!');
location='admin.php';</script>";}
else{}
?>
答案:if (!$row)
{

session_start();
$_SESSION['admin']=true;
echo "<script>alert('用户名或密码错误!');

location='admin.php';</script>";
}
当这个结果集不存在的时候你就不用创建session了!判断的时候你只判断这个session存不存在就可以了!还有我要说明的就是$_SESSION['admin']=true;这里你不能这么写,这表示你将session变量$_SESSION['admin']设置为“真”,即使这个变量没有值,你这个变量也就为“真”了,所以,这里应该写成:
if (!$row)
{
echo "<script>alert('用户名或密码错误!');

location='admin.php';</script>";
}
你如果非要在这里创建一个session变量的话你可以写成:
if (!$row)
{

session_start();
$_SESSION['admin']=false; //flase表示设置这个变量为“假”!
echo "<script>alert('用户名或密码错误!');

location='admin.php';</script>";
}


再看看你判断的那段程序:
<?
session_start();
if($_SESSION['admin']==true)
{
echo "<script>alert('非法登陆!');
location='admin.php';</script>";}
else{}
?>
这里面判断你写成if($_SESSION['admin']==true)这样写是不合理的,我样就是只要,$_SESSION['admin']有值或者存在它就会执行判断为真时的代码,所以判断应该写成if(!$_SESSION['admin']),也就是说如果这个变量为假(通俗的说就是没有这个变量,或这个变量没有被定义、赋值)的时候就执行下面的程序!
<?
session_start();
if(!$_SESSION['admin'])
{
echo "<script>alert('非法登陆!');
location='admin.php';</script>";}
else{}
?>
如果还有什么不懂的话可以发消息给我!

上一个:PHP的程序用Linux好还是用windows好?具体好在哪些方面?
下一个:大家写完程序后,是如何做压力测试的? - PHP进阶讨论

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,