本人PHP新手,在线求帮助解决问题,大神们快来啊

我写了一个图书管理系统,结果在调试时登录时一直登录失败管理员账户密码我已经加入到数据库了,可是用这个帐号密码就是一直说登录失败求帮助。登陆检查的代码如下<?phpsess... 我写了一个图书管理系统,结果在调试时登录时一直登录失败管理员账户密码我已经加入到数据库了,可是用这个帐号密码就是一直说登录失败求帮助。登陆检查的代码如下

<?php
session_start();
$A_name=$_POST['name']; //接收表单提交的用户名
$A_pwd=$_POST['pwd']; //接收表单提交的密码 class chkinput{ //定义类
var $name;
var $pwd; function chkinput($x,$y){
$this->name=$x;
$this->pwd=$y;
} function checkinput(){
include("conn/conn.php"); //连接数据源
$sql=mysql_query("select * from tb_manager where name='".$x."' and pwd='".$y."'",$conn);
$info=mysql_fetch_array($sql); //检索管理员名称和密码是否正确
if($info==false){ //如果管理员名称或密码不正确,则弹出相关提示信息
echo "<script language='javascript'>alert('您输入的管理员名称错误,请重新输入!');history.back();</script>";
exit;
}
else{ //如果管理员名称或密码正确,则弹出相关提示信息
echo "<script>alert('管理员登录成功!');window.location='index.php';</script>";
$_SESSION['admin_name']=$info['name'];
$_SESSION['pwd']=$info['pwd'];
}
}
}
$obj=new chkinput(trim($name),trim($pwd)); //创建对象
$obj->checkinput(); //调用类
?>
("select * from tb_manager where name='".$x."' and pwd='".$y."'",$conn);

写错了应该是
("select * from tb_manager where name='".$this->name."' and pwd='".$this->pwd."'",$conn);
展开
 我来答
windblast
2012-12-07 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
感觉有语法及结构上需要提请注意的地方:

1. 类属性成员声明,尽量不要用var,而是用private/protected/public来声明,原因如下:

为了兼容php4,php5声明属性依然可以直接使用关键字var,或者放在public, protected, or private之前。但是var并不是必须的。在php 5.0 到5.1.3,var会认为是废弃的, 而且抛出E_STRICT警告,但是5.1.3之后就不再认为是废弃,也不会抛出警告。

如果直接使用var声明属性,而没有public, protected, 或 private,php 5 会认为这个属性为public。

2. include("conn/conn.php"); //连接数据源

这句代码放在类代码结构里面,不太合适。

3. $sql=mysql_query("select * from tb_manager where name='".$x."' and pwd='".$y."'",$conn);

这句代码里面 $x 、$y、$conn 三个变量并没有相应进行定义声明(function chkinput($x,$y)这里面的 $x, $y,只是在chkinput()函数体内才存在)。

4. 类的构造,以__construct命名为好。

---------------------------

以下是修改后的代码(SQL未作进一步检查):

<?php
session_start();
include("conn/conn.php"); //连接数据源
class chkinput
{
private $name,$pwd,$conn;
function __construct($x, $y, $c)
{
$this->name = $x;
$this->pwd = $y;
$this->conn = $c;
}
function checkinput()
{
$sql = mysql_query("select * from tb_manager where name='" . $this->name . "' and pwd='" . $this->pwd . "'", $this->conn);
$info = mysql_fetch_array($sql); //检索管理员名称和密码是否正确
if ($info == false) { //如果管理员名称或密码不正确,则弹出相关提示信息
echo "<script language='javascript'>alert('您输入的管理员名称错误,请重新输入!');history.back();</script>";
exit;
} else { //如果管理员名称或密码正确,则弹出相关提示信息
echo "<script>alert('管理员登录成功!');window.location='index.php';</script>";
$_SESSION['admin_name'] = $info['name'];
$_SESSION['pwd'] = $info['pwd'];
}
}
}
$a_name = $_POST['name']; //接收表单提交的用户名
$a_pwd = $_POST['pwd']; //接收表单提交的密码
$obj = new chkinput(trim($a_name), trim($a_pwd), $conn); //创建对象
$obj->checkinput(); //调用类
?>
百度网友a0690eed8
2012-12-07 · TA获得超过163个赞
知道答主
回答量:87
采纳率:0%
帮助的人:126万
展开全部
1. 确定 class chkinput{ //定义类 不在注释里面。
2.$obj=new chkinput(trim($name),trim($pwd)); //创建对象
把上面这句里面的两个变量修改成:
$obj=new chkinput(trim($A_name),trim($A_pwd)); //创建对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llaxw1989
2012-12-08 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:53.9万
展开全部
代码布局太乱,类的话最好是下载一个文件里面,要用的话直接include就行啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式