2011-07-25 37 views
0

我有一個會話['密碼']。我想獲得會話價值並使用它來驗證用戶的輸入。如何將會話值放入JavaScript中?

if(opw != $_session['password']){ 
     errors[errors.length] = "Sorry, password does not match."; 
} 

這是我一直在嘗試,但是如果我輸入這個,他們不會讀會話。並忽略這種情況。我如何實際插入到Javascript的會話值?

+1

不要在會話中存儲密碼,只能在登錄時使用它。在服務器上驗證這一點。 – house9

+1

在會話中存儲密碼是一個壞主意! – Drewdin

+1

同意。我可以用js控制檯(所有主流瀏覽器都有)來獲取密碼。這需要是服務器端操作。 –

回答

0

至於其他的答案都建議,你有你的PHP會話值嵌入的JavaScript頁面時生成。但其他人已經忘記了一件重要的事情 - 您必須生成VALID javascript,否則您的整個腳本將因語法錯誤而死亡。

if (opw != <?php echo json_encode($_SESSION['password']) ?>) { 

請注意對json_encode的調用 - 它不僅僅是輸出密碼字符串。你必須確保密碼變成一個有效的javascript字符串,json_encode保證。

+0

哇這是一個即時通訊尋找。謝謝 – 3cross

0

內嵌 JavaScript代碼:

var session = <?php print $_SESSION['password']; ?>; 

這就是你想要的?

0

您需要圍繞在<?php echo ?>中的$_SESSION。這會導致PHP變量被打印到頁面上的Javascript中。

if(opw != <?php echo $_SESSION['password']; ?>){ 

但是,這是一個非常不安全的檢查密碼的方法,我建議不要使用它。如果不通過SSL傳輸,密碼將在每個頁面視圖上以純文本形式發送。此外,它很可能被網絡瀏覽器緩存,任何有權訪問計算機的人都可以讀取它。

+0

我試過這種方法,但它跳過了這一行。 – 3cross

+0

@ 3cross你的意思是跳過了嗎?在頁面上查看源代碼。你是否從'$ _SESSION'看到密碼? –

+0

其實我的功能跳過了那一行,但是我剛剛解決了它,看起來像我沒有足夠努力尋找對不起。這是我的答案。 var oldpass ='<%= Session(「password」).ToString()%>' – 3cross

0

你必須手動居然出呼應的錯誤:

// do all of your validation and add all of the errors to an array. 
if($opw != $_session['password']){ 
    $errors[] = "Sorry, password does not match."; 
} 

echo "<script type=\"text/javascript\">var errors = ". 
      json_encode($errors).";</script>"; 

然後,後來:

<script type="text/javascript">alert(errors)</script> 
0

請注意,PHP是JS完全不同。 PHP是一種服務器端編碼語言,意味着它在服務器呈現請求的頁面時執行。在該頁面(其中包含一些HTML),也可以有JS。但是,JS無法以您認爲的方式連接到PHP。爲此,您可以使用Ajax或其他東西(但對於您要實現的目標而言,這太複雜了)。

你可能想是這樣的

// eg. index.php or something 
... 
<?php 
session_start(); 
if ($_POST['password'] == 'somePassYouDefined') { 
    echo 'Authenticated'; 
}else if (isset($_POST['password'])) { 
    echo 'Couldn\'t authenticate ...'; 
}else { 
    ?> 
    <form method='post'> 
     <input type='password' name='password' placeholder='Password' /> 
     <input type='submit' /> 
    </form> 
    <?php 
} 
?> 
0

ASP版本:

if(opw != '<%=Session("password")%>'){ 

我加引號是因爲密碼通常是一個字符串。

當用戶運行此腳本,它被下載到他們的電腦將明文顯示密碼的HTML頁面,即:

if(opw != 'BOBSPASSWORD'){ 

所以,如果他們不知道或有密碼,他們可以查看/查找並找到它。

相關問題