先简单说一下,check.php是验证你的与户名和密码的。checkuser.php是验证是否登陆的。
check.php的代码。<?php
session_start();
include_once('../include/public.inc.php');
if($_SESSION['admin']==''){
$name=$_POST['name'];
$passowrd=$_POST['psw'];
if ($name && $passowrd){
$sql = "select * from admin where name = '$name' and psw='$passowrd' limit 1";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);
if($result){
$_SESSION['admin'] = $name;
header("Location: index.php");
exit;
}else{
echo "<script language=javascript>alert('用户名密码错误');window.location.href='login.php';</script>";
}
}else {
echo "<script language=javascript>alert('用户名密码不能为空');window.location.href='login.php';</script>";
}
}
?>checkuser.php的代码<?
session_start();
if($_SESSION['admin']==''){
echo "<script language=javascript>alert('请先登录方可访问本网站');window.location.href='login.php';</script>";
}
?>check.php中的“$_SESSION['admin'] = $name;”我不太理解是什么意思,本来没写这句话,结果一运行到checkuser.php就出弹窗了,也就是说$_SESSION['admin']==''了。所以我才加上了$_SESSION['admin'] = $name;。
语法上倒是好解释,没有给$_SESSION['admin']赋值(貌似不该用赋值这个词眼)。但是我总感觉既然我登陆并且session_start();了,那么$_SESSION['admin']应该就不为空了啊?SESSION不太好,头次用,见笑了,欢迎拍砖!!!
check.php的代码。<?php
session_start();
include_once('../include/public.inc.php');
if($_SESSION['admin']==''){
$name=$_POST['name'];
$passowrd=$_POST['psw'];
if ($name && $passowrd){
$sql = "select * from admin where name = '$name' and psw='$passowrd' limit 1";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);
if($result){
$_SESSION['admin'] = $name;
header("Location: index.php");
exit;
}else{
echo "<script language=javascript>alert('用户名密码错误');window.location.href='login.php';</script>";
}
}else {
echo "<script language=javascript>alert('用户名密码不能为空');window.location.href='login.php';</script>";
}
}
?>checkuser.php的代码<?
session_start();
if($_SESSION['admin']==''){
echo "<script language=javascript>alert('请先登录方可访问本网站');window.location.href='login.php';</script>";
}
?>check.php中的“$_SESSION['admin'] = $name;”我不太理解是什么意思,本来没写这句话,结果一运行到checkuser.php就出弹窗了,也就是说$_SESSION['admin']==''了。所以我才加上了$_SESSION['admin'] = $name;。
语法上倒是好解释,没有给$_SESSION['admin']赋值(貌似不该用赋值这个词眼)。但是我总感觉既然我登陆并且session_start();了,那么$_SESSION['admin']应该就不为空了啊?SESSION不太好,头次用,见笑了,欢迎拍砖!!!
if($_SESSION['admin']=='') 应该用empty和isset
if ($name && $passowrd) 这个?判断什么呢?
$sql = "select * from admin where name = '$name' and psw='$passowrd' limit 1";
这个不用防注入么?直接就用post过来的东西?3.如果最初$_SESSION['admin']不存在的话if($_SESSION['admin']==''){……} 这段代码是不运行的(不存在就不为空);这个应该是问题的所在