Вопрос

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

<?php
switch($x) {

default:
include("inc/main.php");
break;

case "products":
include("inc/products.php");
break;

}
?>

По какой-то причине, когда я захожу в index.php? x = products ничего не происходит, он по-прежнему отображает inc / main.php, другими словами, он не обнаружил переменную X из URL. Это как-то связано с глобальными переменными?

Это было полезно?

Решение

Да, в вашей конфигурации PHP правильно отключено register_globals , потому что это невероятно небезопасно.

Просто положите:

$x = 

Да, в вашей конфигурации PHP правильно отключено register_globals , потому что это невероятно небезопасно.

Просто положите:

<*>

вверху вашего скрипта.

Вы также можете использовать $ _ GET , если хотите, чтобы это работало только для HTTP-метода GET . Я видел, как некоторые люди утверждают, что $ _ REQUEST как-то небезопасно, но нет никаких доказательств, подтверждающих это.

REQUEST['x']

вверху вашего скрипта.

Вы также можете использовать $ _ GET , если хотите, чтобы это работало только для HTTP-метода GET . Я видел, как некоторые люди утверждают, что $ _ REQUEST как-то небезопасно, но нет никаких доказательств, подтверждающих это.

Другие советы

Похоже, что все ваши предыдущие веб-хосты использовали register_globals , и ваш код полагается на это. Это опасный параметр, который был по праву удален в PHP 6.0! Вместо этого используйте переключатель ($ _ GET ['x']) {.

Вы должны использовать $ _GET для считывания этих переменных. Существует устаревшая функция, которая называется register_globals , но я определенно не советую использовать ее, поскольку это потенциальный риск безопасности.

Вы можете использовать http://php.net/manual/es/function.extract .php для извлечения переменных, если вы хотите это сделать, но имейте в виду, что это позволяет любому пользователю устанавливать переменные с содержимым, которое они хотят, в вашем скрипте, что делает его таким же небезопасным, как использование register_globals

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top