2012-03-08 55 views
0

沒有被編碼,但爲一個朋友做了一個項目。基本上,我需要一個輸入表單來檢查4位數的代碼。如果代碼是正確的(是2或3個可能的正確代碼之一),它將進入一個新頁面,如果它沒有提交,並顯示錯誤。它不一定非常漂亮。尋找一個jQuery解決方案,任何推動正確的方向將不勝感激。我很生鏽。非常簡單的1輸入表格值檢查

<form name="codeForm" action="" method="get"> 
    <input name="yourCode" type="text" id="yourCode"/> 
    <input name="submit" type="submit" value="Go" id="code_input_submit" /> 

    <div id="message"><p></p> 
    </div><!--end message--> 

</form> 

<div id="btn"></div> 

和我的jQuery是沿着以下線路:

$(document).ready(function() { 
var code1 = "7816"; 
var code2 = "1226"; 

$('#btn').click(function() { 
var value = $('#yourCode').val(); 

    if (value == code1){            // go to site 'abc.com/'code1; 
    } 
     else if (value == code2){           //go to site 'abc.com/'code2; 
    } 
    else{          $('#message').html('your code is wrong'); 
    } 
}); 

}); 
+4

atleast發表的HTML ... – DG3 2012-03-08 02:30:13

+0

你如何得到那些正確的代碼?他們是動態的嗎?任何限制? – Jay 2012-03-08 02:55:58

+0

對不起。我所考慮的「代碼」只是一個4位數字串的數組,或者只是2個靜態的字符串變量。最終我想我會使用xml,但現在我只是要在js文件中定義它們。 – 2012-03-08 03:10:44

回答

0

如果這是它接縫是,驗證要求,你實際上是想存儲的數據客戶端:不,不,不!

您的「登錄引腳」對於試圖登錄的每個用戶都是顯而易見的。

您應該始終驗證服務器端。

1. store the keys on server (database or file, whatever suits you) 
2. client makes a request to server via post 
3. Server accepts or denies client request 

例如,提交表單到服務器端頁面authenticate.php

和PHP文件,如果用戶是好去還是不去將檢查。

<?php 
// very simple and not really secure server-side auth script 
$codes = {1234, 5678, 9012}; 
$valid_user = false; // all users are invalid until otherwise 

$user_inserted_code = (int) $_POST['key']; 
if(in_array($user_inserted_code, $codes)) { 
    $valid_user = true; 
} 

if($valid_user==true) 
    header("Location: http://example.com/authenticated"); 
else 
    header("Location: http://example.com/failled_auth"); 
?> 

如果你真的不需要安全和你指的是靜態的東西的(IE)部門代碼的喜歡...你的例子越來越多,你可以只使用一個簡單的代碼開關:

$(document).ready(function() { 
    var code1 = "7816"; 
    var code2 = "1226"; 

    $('#btn').click(function() { 
     var value = $('#yourCode').val(); 

     switch(value) { 
      case 7816: window.location = "http://google.com/"; break; 
      case 1226: window.location = "http://yahoo.com"; break; 
      default: $('#message').html('your code is wrong'); 
     } 
    }); 
}); 
+0

嘿弗蘭克謝謝你的迴應。這個簡單的例子看起來並不像「驗證」那麼有效。如果有人要查看這兩個代碼,沒有任何安全問題或真正的任何問題。它只是將它們帶到適當的頁面來安排預約。除此之外,現在我們只是從網站開始,目的是爲了進行非實時測試運行,只是爲了讓客戶端了解流程的外觀,所以任何東西快速和骯髒的現在會很好,我會在稍後改進。 – 2012-03-08 03:40:42

+0

@布賴恩巴頓菲爾更新答案,包括一小塊JS,將做你想要的... – Frankie 2012-03-08 12:54:22

+1

謝謝芽。我現在正在潛心於認證服務器端,因爲我有一點時間可以玩,但是感謝快速和骯髒的解決方案。這一切都回到我現在哈。 – 2012-03-13 02:07:17