用SESSION做的页面权限验证问题,正常情况下只有登录页面输入用户和密码正确,才显示登录成功。直接登录就显示“请通过正确的路径登录本系统!”
可我递交用户和密码以后,页面还是显示“请通过正确的路径登录本系统!”是不是条件语句做错了,请大虾高手看看 谢谢了
用户和密码调用数据库里的。
<?php
session_start();
$_SESSION[user]=$_POST[user];
$_SESSION[pwd]=$_POST[pwd];
?>
<?php
if($_SESSION[user]==""){
echo"<script language='javascript'>alert('请通过正确的路径登录本系统!');history.back();</script>";
}
?>
<?php //$username=111;//因没有表单提交,这里直接赋值,可以改动其值,以验证程序
//$password=111;//因没有表单提交,这里直接赋值,可以改动其值,以验证程序
$connection=mysql_connect("localhost","root","root");
$db="xingcan";
mysql_select_db($db,$connection) or die ("Could not open $db.");
$query="select * from staff where username='$_SESSION[user]' and password='$_SESSION[pwd]'";
$result=mysql_query($query,$connection);
$res=mysql_fetch_array($result);//如果查到有该username
if($_SESSION[user]=$res[username] && $_SESSION[pwd]=$res[password])//如果密码对
{echo "<script>alert('Welcome!');window.location.href='search_affiche.php';</script>";}
else if($_SESSION[user]!=$res[username])//如果密码错
{echo "<script>alert('密码错误!');window.location.href='index.php';</script>";} ?>
<?php
session_start();
if($_POST["Submit"]!=""){
$checks=$_POST["checks"];
if($checks==""){
echo"<script>alert('验证码不能为空');window.location.href='index.php';</script>";
}
if($username=$res[username] and $checks==$_SESSION[check_checks]){
echo"<script>alert('用户登录成功!');window.location.href='search_affiche.php';</script>";
}else{
echo"<script>alert('您输入不正确!');window.location.href='index.php';</script>";
}
}
?>
//下面是表单
<form name="form1" method="post" action="check_search_affiche.php">
<p>起始日期
:
<input name="txt_keyword2" type="text" id="txt_keyword2" size="20" />
结束日期
:
<input name="txt_keyword3" type="text" id="txt_keyword3" size="20" />
</p>
<p>查询用户:
<input name="txt_keyword" type="text" id="txt_keyword" size="20" />
<input type="submit" name="Submit" value="搜索" onclick="return check(form)">
</p>
</form>
<script language="javascript">
function check(form){
if(form.txt_keyword.value==""){
alert("请输入用户名!");form.txt_keyword.focus();return false;
}
else if(form.txt_keyword2.value==""){
alert("请输入起始日期!");form.txt_keyword2.focus();return false; }
else if(form.txt_keyword3.value==""){
alert("请输入结束日期!");form.txt_keyword3.focus();return false; }
form.submit();
}
</script>
可我递交用户和密码以后,页面还是显示“请通过正确的路径登录本系统!”是不是条件语句做错了,请大虾高手看看 谢谢了
用户和密码调用数据库里的。
<?php
session_start();
$_SESSION[user]=$_POST[user];
$_SESSION[pwd]=$_POST[pwd];
?>
<?php
if($_SESSION[user]==""){
echo"<script language='javascript'>alert('请通过正确的路径登录本系统!');history.back();</script>";
}
?>
<?php //$username=111;//因没有表单提交,这里直接赋值,可以改动其值,以验证程序
//$password=111;//因没有表单提交,这里直接赋值,可以改动其值,以验证程序
$connection=mysql_connect("localhost","root","root");
$db="xingcan";
mysql_select_db($db,$connection) or die ("Could not open $db.");
$query="select * from staff where username='$_SESSION[user]' and password='$_SESSION[pwd]'";
$result=mysql_query($query,$connection);
$res=mysql_fetch_array($result);//如果查到有该username
if($_SESSION[user]=$res[username] && $_SESSION[pwd]=$res[password])//如果密码对
{echo "<script>alert('Welcome!');window.location.href='search_affiche.php';</script>";}
else if($_SESSION[user]!=$res[username])//如果密码错
{echo "<script>alert('密码错误!');window.location.href='index.php';</script>";} ?>
<?php
session_start();
if($_POST["Submit"]!=""){
$checks=$_POST["checks"];
if($checks==""){
echo"<script>alert('验证码不能为空');window.location.href='index.php';</script>";
}
if($username=$res[username] and $checks==$_SESSION[check_checks]){
echo"<script>alert('用户登录成功!');window.location.href='search_affiche.php';</script>";
}else{
echo"<script>alert('您输入不正确!');window.location.href='index.php';</script>";
}
}
?>
//下面是表单
<form name="form1" method="post" action="check_search_affiche.php">
<p>起始日期
:
<input name="txt_keyword2" type="text" id="txt_keyword2" size="20" />
结束日期
:
<input name="txt_keyword3" type="text" id="txt_keyword3" size="20" />
</p>
<p>查询用户:
<input name="txt_keyword" type="text" id="txt_keyword" size="20" />
<input type="submit" name="Submit" value="搜索" onclick="return check(form)">
</p>
</form>
<script language="javascript">
function check(form){
if(form.txt_keyword.value==""){
alert("请输入用户名!");form.txt_keyword.focus();return false;
}
else if(form.txt_keyword2.value==""){
alert("请输入起始日期!");form.txt_keyword2.focus();return false; }
else if(form.txt_keyword3.value==""){
alert("请输入结束日期!");form.txt_keyword3.focus();return false; }
form.submit();
}
</script>
session_start();
$_SESSION[user]=$_POST[user];
$_SESSION[pwd]=$_POST[pwd];
?>
<?php
if($_SESSION[user]==""){
echo" <script language='javascript'>alert('请通过正确的路径登录本系统!');history.back(); </script>";
}
?>这一段有些问题,如果你的表单提交到本页,那么:
$_SESSION[user]=$_POST[user];
$_SESSION[pwd]=$_POST[pwd];
这两句话应该用一条限制语句限制,不然,根据网页从上倒下运行的原则,你还没输入账户密码的时候就已经把值赋给session了,这时的session肯定为空啊,自然都会跳出“alert('请通过正确的路径登录本系统!')”这句,可以加工一下这句: if($_POST['submit']) //假设你的提交按钮的name=‘submit’
{
$_SESSION[user]=$_POST[user];
$_SESSION[pwd]=$_POST[pwd];
}
……………………
………………………