<?
session_start();
require "connect.inc.php";
if($_GET["action"]=="login"){
$UserName=$_POST["UserName"]; //从表单获取用户名
$Password=md5($_POST["Password"]); //从表单获取密码
$authority=$_POST["authority"]; //从表单获取单选框值
//若单选项值为admin,即管理员身份
if($authority=="admin"){
//sql命令
$sql="select * from admin_login where UserName='{$UserName}' and Password='{$Password}'";
$result=mysql_query($sql);
//尝试输出$result,结果返回Resource id #4,是出错吗?
echo $result;
if(mysql_fetch_array($result)>0){
$row=mysql_fetch_assoc($result);
$_SESSION["UserName"]=$UserName;
$_SESSION["islogin"]=1;
header("Location:index.php");
}
else{
echo '<font color=red size=14px>用户名或密码错误</font>';
}
?>用以上代码处理登录时总是报错,求大神指点!!急!!
解决方案 »
- mysql数据导入出现unknown command '\',怎么解决?
- 关于邮箱注册成功的验证如何实现?
- PHP 类问题,为什么成员变量赋值了,输出时没有任何东西?
- 多表查询输出
- 【散分200】,【贵阳】或【遵义】的PHPer进来留个脚印
- 文件上传不了的问题,急死人了
- 携程API接口 如何用php发送xml请求?求实例代码
- query的问题!
- 急啊!preg_match_all为什么在本机和服务器上结果不一样啊!大家有碰到类似现象的吗?
- php怎么带参数执行linux系统命令
- 请教一个PHP的API使用问题!
- PHP 5 Version 5.4.4 发布+11楼 mysql、windows远程连接严重漏洞
你的代码的问题在于判断结果集是否为空的方法有误,因为如果查询返回了数据,调用mysql_fetch_array()方法后,指针就移动的(每次调用返回当前指针指向的记录,然后指针指向下一条记录)。判断是否为空集的方法是使用mysql_num_rows():
//if(mysql_fetch_array($result)>0){
if (mysql_num_rows($result) > 0) {
...
http://www.php.net/manual/zh/language.types.intro.php
http://www.php.net/manual/zh/book.mysql.php
根据你的提示,我修改了一下代码:
<?
session_start();
//require "connect.inc.php";
$mysqli=new mysqli("localhost","root","111111","uems");
if(mysqli_connect_errno()){
printf("失败:%s<br>",mysqli_connect_error());
exit;
}
if($_GET["action"]=="login"){
$UserName=$_POST["UserName"]; //从表单获取用户名
$Password=md5($_POST["Password"]); //从表单获取密码
$authority=$_POST["authority"]; //从表单获取单选框值
if($authority=="admin"){
$sql="select * from admin_login where UserName='{$UserName}' and Pwd='{$Password}'";
$result=$mysqli->query($sql);
echo $result->num_rows;
if($result->num_rows>0){
$row=mysql_fetch_assoc($result);
$_SESSION["UserName"]=$UserName;
$_SESSION["islogin"]=1;
header("Location:index.php");
}
else{
echo '<font color=red size=14px>用户名或密码错误</font>';
}
}else if($authority=="tch"){ }else{ } }
?>
这次使用mysqli_result类来尝试执行,可echo $result->num_rows;这条就只输出0。导致代码不向下执行,求解。
不变颜色?那是你的文本编辑器的问题。语法上没问题
mysqli有没有起作用你得看你的phpinfo.
而且看你的代码似乎没有提示相关错误那就是起作用咯.