Передача переменных в 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()
функция, чтобы вызвать это.