首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有登录权限的PHP用户类

具有登录权限的PHP用户类
EN

Stack Overflow用户
提问于 2013-08-07 13:22:55
回答 1查看 626关注 0票数 1

我在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:

代码语言:javascript
复制
 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线:

代码语言:javascript
复制
$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中调用它,但在类用户之外,它会显示内容。但是,如果我在类用户中调用它,它会给出未定义的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-07 13:49:38

您有一个可变范围问题。$mysql超出了用户类的范围。我建议将变量传递给构造函数中的类,并将其存储为属性:

代码语言:javascript
复制
class User
{
    protected $mysql;   

    public function __construct($mysql)
    {
        $this->mysql = $mysql;
    }

    public function something()
    {
        $this->password = $this->mysql->real_escape_string($this->password);
    }
}

传递连接的示例用法:

代码语言:javascript
复制
require_once 'connection.php'; // creates $mysql
$user = new User($mysql);

在整个类中,现在可以使用$this->mysql访问连接。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18104580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档