【发布时间】:2011-07-27 09:42:41
【问题描述】:
谢谢。我想让用户登录,我尝试以 oop 方式进行
这里是 loginPage.php
<html>
<body>
<?php require_once("connection.php");
$instance=new connection("527442_1","chi1234a","foodil_zxq_1");
if (isset($_POST['s'])) {
$SecIns=new login($_POST['u'],$_POST['p']);
echo $SecIns->enter();
}
?>
<form name="fm" method="POST" action="show.php">
User Name :<input type="text" name="u">
<br>
Password: <input type="password" name="p">
<br>
<input type="submit" name="s">
</form>
</body>
</html>
这是我失败的 oop 代码Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
<?php
class connection
{var $user;
var $pass;
var $db;
function __construct($user,$pass,$db){
$this->user=$user;
$this->pass=$pass;
$this->db=$db;
}
function conn(){
$conn=mysql_connect('localhost' , $this->user , $this->pass) or die ("Can't connect server");
mysql_select_db($this->db,$conn) or die ("DB error");
}
}
class login extends connection
{
function __construct($id,$pwd)
{$this->id=$id;
$this->pwd=$pwd;
}
function enter()
{$this->query="SELECT * FROM test WHERE id='".$this->id."' AND pwd='". $this->pwd."';";
$result=mysql_query($this->query,$this->conn) or die ("Error:" . mysql_error());
if (mysql_num_rows($this->result)<1)
return "Not correct user";
else
return "Login success";
}
}
?>
问题出在function enter()。应该是格式问题吧??但我花了很长时间。谢谢。
【问题讨论】:
-
1.
var并省略可见性修饰符(public、protected、private)是 PHP4 风格的。您应该学习如何用 PHP5 编写代码。 2.mysql已经过时了一段时间,很快就会被标记为弃用。您应该改用MYSQLi或PDO。 3. 你应该永远在没有验证的情况下直接访问任何$_POST-value($_GET等也是如此)。 -
还是不行,修改后请看我的代码
-
这不是一个答案,这只是一个关于你应该清理什么的评论。您阅读下面的答案了吗?