включить переменные дважды из файла php - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть простые пользовательские файлы, подобные этому

joe.php

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

sam.php

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

Я использую эти файлы для проверки подлинности текста.включается, когда пользователь входит в систему, устанавливая путь для этого пользователя при проверке аутентификации.После проверки подлинности я немедленно перезаписал эту переменную $ pass текстом «text», чтобы пароль не был доступен для посторонних глаз.

Теперь мне нужно войти в систему как "joe"

, поэтому я включаю joe.php sessing $ userpath

$userpath='work/joe'

Мне теперь нужно в целях администратора, чтобы получить доступ к Сэму$ userpath в качестве места назначения и joe $ userpath в качестве источника одновременно, но если я включу sam.php, я перезаписываю joe $ userpath

Я думаю, что есть более простое решение, такое как использование fopen и извлечение только(второй) путь для Сэма, но я не уверен, как это сделать.

Я не публикую это для лекции по безопасности, поэтому, пожалуйста, воздержитесь от ответа о безопасности.Эти файлы в любом случае не находятся в папке, доступной для веб-сервера.

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Сделать их классами:

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;
0 голосов
/ 05 апреля 2019

Несмотря на то, что большинство людей подставляют не те деревья, которые не отвечают на вопрос, ответ поразительно прост.Установите переменные сеанса из первоначально включенного файла и используйте переменные сеанса с тех пор.Второй вызов этого или аналогичного файла устанавливает второй набор переменных сеанса.

после включения joe.php в auth.php

$_SESSION['userpath']=$userpath;

Затем, даже на той же странице или других страницахмы можем включить

joe.php

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

теперь, когда мы включаем sam.php (второй)

$_SESSION['touserpath']=$userpath;
...