2014-10-10 52 views
-1

我需要防止用戶可以直接從地址欄調用網頁,例如:www.site.com/page.php,這應該是不允許的。停止直接訪問頁面php和Jquery

我嘗試了各種方法,但我也阻止所有調用ajax菜單,基本上當我登錄直接在頁面上,我必須返回登錄頁面cancellandomi也會話,而它應該工作時,從jQuery調用頁面菜單。

我該如何解決?

+0

所以你試圖做到這一點: 當用戶導航到該頁面,你將他們重定向到登錄頁面?或者阻止他們訪問該區域? – Akar 2014-10-10 14:40:53

+0

你可以在你想要放置你的jquery的頁面上使用'define(「test」,true)'然後'if(defined(「test」)){// code} else {die();}'on page.php – andyroo 2014-10-10 14:41:40

+0

如果用戶將地址欄中的名稱寫入要登錄到登錄頁面的頁面,但是如果使用相應菜單訪問該頁面必須能夠訪問(使用jQuery來調用頁面)。如何做到這一點的想法?謝謝 – 2014-10-10 14:42:43

回答

1

這是從你的菜單鏈接 - 網頁屬性包含要鏈接到的網頁的名稱:

<a page="page1.php">Page1</a> 

您的客戶端腳本:

$('a').click(function() { 
    var page=$(this).attr('page'); 
    setCookie('page', page); // <== you need to write a cookie setting function for this 
    location.href = page; 
} 

然後在你的php目標頁面上,閱讀cookie並與pag進行比較e名稱。 如果沒問題,如果沒有重定向到您的登錄頁面。

1

你可以做到這一點在許多方面:

  • 允許或通過IP與HTTP服務器配置否認:nginxapache

  • 允許或在你的PHP腳本通過IP否認。示例:

    if (!in_array($_SERVER['REMOTE_ADDR'], array(
    '192.168.0.1', 
    '192.168.0.2' 
    // .... 
    ))) die ('You are not allowed to run this script'); 
    
  • 允許或拒絕按會話標誌訪問頁面。

  • 使用HTTP認證:nginxapache