我在Google上搜索了一些关于登录系统的信息,但问题是我试图自己去那里,而不是按照指南告诉我一切。
我有一个index.php,它的顶部包含一个menu.php,而login_form.php有一个包含,它调用login.php进行登录。在login.php中,使用类用户进行登录。user.php有用于connection.php的require_once
我在一些很容易解决的问题上失败了,但我看不出来,因为这对我来说是新的。问题是出现了一个错误:
未定义变量:第12行admin\include\lib\user.php中的mysql
connection.php:
require_once 'constants.php';
$mysql = new mysqli($db['host'], $db['username'], $db['password'], $db['name']);
if ($mysql->connect_error){
die('Connection error (' . $mysql->connect_errno.')'. $mysql->connect_error);
}user.php -> 12线:
$this->password=$mysql->real_escape_string($this->password);另外,请注意,index.php作为connection.php、constants.php (它有带有主机、用户等的$db数组)和class.php的require_once。我真的在尝试进入OOP的概念,所以我会非常感谢您的帮助!
谢谢,伙计们!
编辑:我相信给你文件结构会有点困难,但我可以向你保证,我需要正确的东西。为了证明它,我做了var_dump($mysql)。如果我在user.php中调用它,但在类用户之外,它会显示内容。但是,如果我在类用户中调用它,它会给出未定义的错误。
发布于 2013-08-07 13:49:38
您有一个可变范围问题。$mysql超出了用户类的范围。我建议将变量传递给构造函数中的类,并将其存储为属性:
class User
{
protected $mysql;
public function __construct($mysql)
{
$this->mysql = $mysql;
}
public function something()
{
$this->password = $this->mysql->real_escape_string($this->password);
}
}传递连接的示例用法:
require_once 'connection.php'; // creates $mysql
$user = new User($mysql);在整个类中,现在可以使用$this->mysql访问连接。
https://stackoverflow.com/questions/18104580
复制相似问题