我怎樣才能請求密碼只是數字來創建新用戶?如何請求密碼僅爲創建新用戶的號碼?
這可能是一個愚蠢的問題,但我沒有找到如何讓密碼爲數字[0-9]! 另一個相關的問題:我怎麼能要求密碼只是數字[1-9]?
我試過這個,但它沒有工作!
<input type="password" name="password" maxlength="30" type="number" value="<?php echo htmlentities($password); ?>" />
我怎樣才能請求密碼只是數字來創建新用戶?如何請求密碼僅爲創建新用戶的號碼?
這可能是一個愚蠢的問題,但我沒有找到如何讓密碼爲數字[0-9]! 另一個相關的問題:我怎麼能要求密碼只是數字[1-9]?
我試過這個,但它沒有工作!
<input type="password" name="password" maxlength="30" type="number" value="<?php echo htmlentities($password); ?>" />
除了服務器端檢查(必須的)和客戶端JavaScript檢查(良好的可用性),你可以使用HTML5 pattern
屬性。它由一些瀏覽器支持,並且在它們中,即使JavaScript被禁用,它也提供客戶端檢查。例如:
<input type="password" name="password" maxlength="30" pattern="\d+">
MDN info on input
在這方面已經過時了。根據HTML5 CR,pattern
屬性也被允許用於[input type=password][2]
,並且現代瀏覽器(包括IE 10)以這種方式支持它。
在您的代碼中有2 type
屬性,我認爲這是行不通的。讓type
爲password
。
在javascript或php中驗證用戶輸入,如果輸入是數字,則只能保存到數據庫。
在JavaScript中使用函數isNaN
編號:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
在PHP中使用is_numeric
你不應該鏈接文件到w3schools。詳情可以在這裏找到(http://w3fools.com)。您可能想鏈接到[Mozilla開發者網絡](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN)。 – Touki
@Touki:我編輯它,謝謝你的網址:) –
數據應該驗證客戶端*和*服務器端,而後者通常更重要。客戶端檢查太容易繞過。 –
使用JavaScript來捕捉按鍵(keyup
)和扔掉的那些不是數字。基本上,您將輸入的值輸入input
,刪除最後一個字符,然後將其放回。有了jQuery,這實際上非常簡單。
您可以使用服務器端檢查,然後通知您的用戶他們需要重新開始......但如果這種情況發生在您身上,您會知道什麼是糟糕的用戶界面。 JavaScipt是客戶端的原因。
謝謝你們提供這方面的信息,我用Jukka K. Korpela先生回答.. – MRAN
它應該是服務器端檢查,因爲否則可以很容易地由前端操縱。
您可以使用正則表達式來操縱輸入或者簡單地通過檢查:
if (is_int($_POST['password'])) {
// continue
}
else {
// break
}
is_int
文檔:http://php.net/manual/en/function.is-int.php也有相關的功能
謝謝你們提供這方面的信息.. – MRAN
您可以使用正則表達式這樣
$pass = preg_replace('/[^0-9]/', '', $password);
這隻會取0到9之間的數值。對於1到9只需更改該值。 還theres一個is_numeric或intval功能PHP
if(is_numeric($pass)){
$password = $pass;
} else {
//Error message
}
function checkNumKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
在腳本中包含標籤此功能。 然後在文本框中調用它,但是你想要
例如,
<input type="text" onkeypress="javascript:return checkNumKey(event);" />
這不會阻止將文字粘貼到字段中,不是嗎?我會建議檢查整個字段與任何按鍵後的正則表達式'.replace(/ [^ 0-9] /,'')' –
如果你這樣做...你還應該使用服務器端檢查...但這將有助於向啓用了JS的用戶提供反饋。 – techtheatre
謝謝大家的信息.. – MRAN
如果妳正在尋找一個客戶端驗證,你可以使用jQuery
$(document).ready(function(){
$("#name_ajax").change(function(){
if($.isNumeric($("#name_ajax").val())){
return;
}
else {
alert ('not allowed');
}
}
})
其中name_ajax
是文本字段的ID。
不要忘了包括jQuery庫
謝謝你的信息.. – MRAN
Type = number僅適用於新一代瀏覽器 –
爲什麼密碼只能是數字?讓他們輸入任何東西有什麼不對? –
@傑克:我有一個想法,我想證明它:) – MRAN