首页 > 解决方案 > 从 php 文件中包含两次变量

问题描述

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

乔.php

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

山姆.php

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

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

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

所以我包括 joe.php sessing $userpath

$userpath='work/joe'

我现在需要出于管理目的,同时访问 sam 的 $userpath 作为目标,并同时访问 joe 的 $userpath 作为源,但是如果我包含 sam.php,我将过度使用 joe 的 $userpath

我认为有一个更简单的解决方案,例如使用 fopen 并仅提取 sam 的(第二个)路径,但不知道如何去做。

我不是为了安全讲座而发布此内容,因此请不要回应有关安全性的问题。无论如何,这些文件不在 Web 服务器可访问的文件夹中。

标签: phpincludefopen

解决方案


让他们上课:

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;

推荐阅读