簡體   English   中英

php eregi()問題

[英]php eregi() problem

我的代碼存在這個問題,頁面正在重定向並且不會停止。瀏覽器停止它,因為它一直都在重定向,並且我有一個包含在所有php頁面中的global.php文件,因此我放了這段代碼會議,就像我說的

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

同樣global.php包含在login.php中 ,但是當我在站點的Web服務器上啟動它時,它會執行我之前所說的操作,但是在我基於計算機的服務器上它可以正常工作,所以請盡快幫助我

對不起我的英語..

嘗試這個:

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

session_is_registered()eregi()都是已棄用的函數,不應使用。 另外,正則表達式對於您無論如何所做的操作都是過大的。

嘗試:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM