解决方案 »
- 要命,我的网站的所有网页输入的均是框架文件,被挂码了
- apache2加上php后一个httpd进程内存飙升到28M
- 一套系统 支持不同语言 文件下载
- 改造discuz 问题 火狐不支持自动提交 IE可以(不好意思没分了)
- 留言板设置显示页数报错:mysql_fetch_object(): ……
- 求代码,从HTML文件中读取指定字符串
- 我已经从别人的网站上扫描到一堆数据,用什么方法传入我自己网站的数据库里?
- 新手提问session问题?
- 推陈出新~SmartIPB论坛放出,顶者有分
- mysqli无法连接数据库
- PDO 每次请求都需要新建连接吗?使用静态字段行吗?
- 关于 php.ini 的error_reporting 设置问题,高手请进
第25行的赋值 $_SESSION["Adm"]=1;流程是
先判断$_SESSION['Adm'] 是否等于1,如果是则跳到admin.php,表示login过的直接跳到admin.php
如果$_SESSION['Adm']不等于1,则判断输入的username与pass,与db中的表比较,如通过验证。则将$_SESSION['Adm']赋值为1
如果username与pass没有通过验证,显示错误信息。如果你说密码失效的原因,
$password=$info[pass]; 改为 $password=$info['pass'];
然后echo $password.' '.$pass; 看看是否没有获取到$pass,还是没有查找到$password。
session_start();
// 包含数据库连接文件和头文件
require ('dbconnect.php');
include ('security.php');
if($_SESSION['Adm']==1) {
echo "<p align=center>";
echo "<font color=#FF0000 size=5><strong><big>";
echo "管理员还没有登录,请<a href='login.php'>登录</a>!";
echo "</big></strong></font></p>";
exit();
}?>
$nickname=$_POST['username'];
$pass=$_POST['password'];
当直接 url 进入时,这两个值都为空(可以看到使用了未定义变量的警告)$sql="select pass from admin where name='$nickname'";
$result=mysql_query($sql,$conn);
$info=mysql_fetch_array($result);
于是查询结果为空
$password=$info[pass];
自然 $password 也为空
// 检查管理员帐号和密码是否正确,
if($pass==$password) {
所以 空等于空 成立解决的办法是:将 13 行开始的代码放在 if($_SERVER['REQUEST_METHOD'] == "POST") 分支中