我有一个像这样的简单用户文件
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服务器可访问的文件夹中。
答案 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;