求助,大神们快来帮忙

 我来答
柒世书2421
2017-08-01 · TA获得超过2502个赞
知道小有建树答主
回答量:3930
采纳率:22%
帮助的人:725万
展开全部

感觉有语法及结构上需要提请注意的地方:


  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(); //调用类

?>

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式