2012-05-10 85 views
-2

如何在此輸入php,以便它具有正確的密碼時將信息存儲爲cookie,然後允許刪除它。PHP會話變量在JavaScript中

<SCRIPT language="JavaScript"> 
    <!--hide 

    var password; 

    var pass1="password"; 

    password=prompt('Please enter your password to view this page!',' '); 

    if (password==pass1){ 
     alert('Password Correct! Click OK to enter!');} 
    else 
     { 
     window.location="//Some Location//"; 
     } 

    //--> 
    </SCRIPT> 
+4

你不需要PHP創建一個cookie,你可以通過JavaScript來實現。但是您確實需要PHP進行身份驗證。像這樣使用JavaScript,你的網站將在幾秒鐘內被一個5歲的小孩黑客入侵。 – bfavaretto

+0

@bfavaretto 4歲。我認識一些聰明的孩子。 – iambriansreed

+0

同意。有史以來最差的安全性。 –

回答

8

如果它足夠簡單(按標題)

var varname = '<?php echo $_SESSION["variable_name"]; ?>'; 

但是你要認真考慮你的邏輯。您正在檢查JavaScript的身份驗證,這將是dumbest在Web應用程序中移動。

密碼是完全暴露的,任何人都可以查看它們或關閉整個JavaScript,然後你的整個網站變得脆弱。


我的建議是一個AJAX請求到單獨檢查和驗證密碼PHP頁面,然後返回消息發送到所述的Javascript。

+0

我怎麼會這樣做,所以它的$ _SESSION [「variable_name」 ] == pass1 – user1345650

+0

@ user1345650,你不能這樣做,PHP運行在服務器和客戶端機器上的JavaScript – Starx

1

這是完全錯誤的:

  • 您將在頁面的源代碼,並在瀏覽器中的任何人看到的歷史顯示密碼。所以即使他們沒有密碼,他們也可以檢查源代碼來獲取它。
  • 您需要保護當前頁面服務器端,因爲任何禁用javascript的人都可以立即打開它。一個簡單的方法就是處理登錄服務器端,併爲成功登錄的用戶設置特定的會話變量。如果設置了該會話變量,則可以在頁面頂部進行檢查。
+0

'//某些位置//似乎是「訪問被拒絕」頁面,而不是最終目的地(我'假設是當前頁面,只需禁用JavaScript即可訪問)。 – bfavaretto

+0

@bfavaretto你說得對,我沒有正確閱讀。我會適應我的回答.... – jeroen