从php文件中两次包含变量

时间:2019-04-01 19:30:44

标签: php include fopen

我有一个像这样的简单用户文件

joe.php

<?php
$pass = 'joepassword';
$userpath = 'work/joe';
?>

sam.php

<?php
$pass = 'sampassword';
$userpath = 'work/sam';
?>

我使用这些文件进行文本身份验证,一旦用户登录并在检查身份验证时为该用户设置了路径,就会包含一个文件。一旦通过身份验证,我立即用$“ text”覆盖了$ pass变量,因此密码不能用作撬动眼睛的变量。

现在我需要以“ joe”身份登录

所以我加入了joe.php来处理$ userpath

$userpath='work/joe'

我现在出于管理目的,需要同时访问sam的$ userpath作为目的地,而joe的$ userpath作为源,但是如果我包含sam.php,我将超越joe的$ userpath

我认为有一个更简单的解决方案,例如使用fopen并仅提取sam的(第二条)路径,但是不确定如何执行此操作。

我不会在安全性讲座中发布此内容,因此请不要回答有关安全性的问题。这些文件始终不在Web服务器可访问的文件夹中。

2 个答案:

答案 0 :(得分:1)

给他们上课:

class Sam() {
    public $userPath;
    public $password;
    public __construct($path,$password) {
        $this->userpath = $path;
        $this->password = $password;
    }
}

class Joe() {
    public $userPath;
    public $password;
    public __construct($path,$password) {
        $this->userpath = $path;
        $this->password = $password;
    }
}

$joe = new Joe("user path here", "my password");
$sam = new Sam("another user path", "another password");

echo $joe->userPath;
echo $sam->userPath;
echo $joe->password;
echo $sam->password;

答案 1 :(得分:0)

尽管大多数人对错误的树tree之以鼻并没有回答问题,但答案却非常简单。从最初包含的文件中设置会话变量,然后使用会话变量。对该文件或类似文件的第二次调用设置了第二组会话变量。

在auth.php中包含joe.php

$_SESSION['userpath']=$userpath;

然后,即使在同一页或我们可以包含的其他页面上

joe.php

<?php
$pass = 'joepassword';
$userpath = 'work/joe';
?>

现在我们包括sam.php(第二个)

$_SESSION['touserpath']=$userpath;