Передача переменных в PHP из одного файла в другой

Так что это мой код. Теперь, как мне использовать $pubname в другом файле.

mysqli_select_db($connect,"membership");
$retname = "select username from users where email='$globalname' limit 1";
$rn = mysqli_query($connect,$retname) or die(mysqli_error($connect));
$name = mysqli_fetch_array($rn);
    //connecting for mathcing username with fullname and displaying it
$pubname = mysqli_real_escape_string($name['username']);

include('profile.php');

echo $pubname;

а также безопасен ли этот код? Я так и сделал... пока не работает.

3 ответа

Решение

Включите файл, в котором вы хотите, чтобы переменная была доступна, например, так

include('somefile.php')

и в верхней части этого файла вам может понадобиться что-то вроде [в зависимости от конфигурации сервера]

global $pubname

Но в большинстве случаев вам не нужно этого делать.

Что касается безопасности, в зависимости от того, как $pubname установлен, ваш запрос может или не может быть склонным к sql injection.

Примечание: есть и другие способы include() файлы, такие как include_once(), require() а также require_once(), с http://php.net/:

Документация ниже также относится к require(). Эти две конструкции идентичны во всех отношениях, за исключением того, как они обрабатывают сбой. include() выдает предупреждение, а require () приводит к фатальной ошибке. Другими словами, используйте require (), если вы хотите, чтобы отсутствующий файл остановил обработку страницы. include() не ведет себя таким образом, скрипт будет продолжаться независимо. Убедитесь, что у вас есть соответствующая настройка include_path. Имейте в виду, что ошибка разбора в требуемом файле не приводит к остановке обработки в версиях PHP до PHP 4.3.5. Начиная с этой версии, это так.

Использовать $pubname в другом скрипте сохраните его как глобальную переменную. Вам не нужно повторять это. (Как предостережение: глобальные переменные следует использовать с осторожностью, желательно сгруппированные в массив.)

Что касается безопасности: вы должны использовать mysqli_real_escape_string скорее на $globalname прямо перед его использованием. И избежать $pubname только прямо перед тем, как использовать это в следующем запросе. Как это выглядит сейчас, вы без необходимости кодируете выходные данные, но забыли экранировать их, что _escape_string на самом деле предназначен для.

Использовать pubname в другом файле. Сначала вы должны включить файл, где pubname был установлен / создан.

затем используйте include() или же require() функция, чтобы вызвать это.

Другие вопросы по тегам