проблема php eregi () - PullRequest
       6

проблема php eregi ()

0 голосов
/ 31 июля 2010

У меня проблема с моим кодом, страница перенаправляется и не останавливается .. Браузер останавливает ее, потому что она перенаправляет все время, и у меня есть файл global.php , который включен ввсе php-страницы, поэтому я поместил этот код для сеанса, и он пошел так, как я сказал

if (!session_is_registered('username')) {
    if(!eregi('login.php', $PHP_SELF)) header('Location: login.php');
}

Также global.php включен в login.php ,но когда я запускаю его на веб-сервере моего сайта, он делает то, что я сказал раньше, но на моем сервере на компьютере он работает нормально, поэтому, пожалуйста, помогите мне быстро

и извините за мой английский..

Ответы [ 2 ]

2 голосов
/ 31 июля 2010

Попробуйте это:

session_start();
if (!isset($_SESSION['username']) && stripos($_SERVER['PHP_SELF'], 'login.php') === false) {
    header('Location: login.php');
}

И session_is_registered(), и eregi() являются устаревшими функциями и не должны использоваться. Кроме того, регулярные выражения излишни для того, что вы делаете в любом случае.

0 голосов
/ 31 июля 2010

Попробуйте:

if (!isset($_SESSION('username'))) {
    if(FALSE === strpos($_SERVER['PHP_SELF'], 'login.php')) {
      header('Location: login.php');
      exit();
    }
}

Некоторые предложения:

  • Убедитесь, что у вас session_start() помещено поверх вашего скрипта
  • Использование isset($_SESSION.......
  • Используйте strpos вместо устаревших eregi
  • Не использовать устаревшие session_is_registered
  • Использовать exit/die после перенаправления заголовка
  • Это $_SERVER['PHP_SELF'], а не $PHP_SELF
  • Используйте обработку ошибок, поместите эти строки поверх вашего скрипта:

    • ini_set('display_errors', true);
    • error_reporting(E_ALL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...