本人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); 展开
<?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); 展开
3个回答
2012-12-07 · 知道合伙人软件行家
关注
展开全部
感觉有语法及结构上需要提请注意的地方:
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(); //调用类
?>
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(); //调用类
?>
展开全部
1. 确定 class chkinput{ //定义类 不在注释里面。
2.$obj=new chkinput(trim($name),trim($pwd)); //创建对象
把上面这句里面的两个变量修改成:
$obj=new chkinput(trim($A_name),trim($A_pwd)); //创建对象
2.$obj=new chkinput(trim($name),trim($pwd)); //创建对象
把上面这句里面的两个变量修改成:
$obj=new chkinput(trim($A_name),trim($A_pwd)); //创建对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码布局太乱,类的话最好是下载一个文件里面,要用的话直接include就行啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询