2011-02-14 53 views
1

我正在尋找一個PHP類,它將幫助我驗證來自表單的用戶輸入。例如,確保用戶輸入了必填字段,字段未超出其最大長度,用戶在「年齡」字段中輸入了一個數字,等等......如果不是,我想要顯示用戶出錯並將錯誤記錄到數據庫。另外,如果可能的話用相同的類來防止來自用戶輸入的sql注入xss。 是否有幫助我完成所有這些任務的PHP 5類? (或多個類)?我如何驗證PHP中的用戶輸入

+1

既然你已經標記了這個`kohana`,你看過它嗎? http://kohanaframework.org/3.1/guide/kohana/security/validation – deceze 2011-02-14 08:18:53

回答

0

你的意思是說像你想要檢查的用戶是否已經在服務器端使用PHP正確輸入所有字段?如果是的話,那麼你的方法是非常低效的,因爲它會增加服務器上的流量和負載,造成錯誤的提交。所以通常做的是在提交之前使用Javascript客戶端腳本來驗證表單。這個鏈接可以幫助你在Javascript中實現一個簡單的客戶端驗證。 http://www.elated.com/articles/form-validation-with-javascript/

正如deceze指出的那樣,如果您需要使用PHP進行服務器端驗證,那麼此鏈接有一個簡單示例,說明如何使用某些內置函數執行驗證。 http://www.htmlcenter.com/blog/php-form-validation/

+3

無論如何,他仍然需要服務器端驗證。 – deceze 2011-02-14 08:19:26

-1

你可以同時使用javascript框架(即.jquery)和php。

你的html表單發送一個ajax數據到服務器。您的服務器返回各種錯誤或成功代碼。那麼你可以使用jQuery來操縱你的html。 這裏是客戶端usinf jquery的示例;上面的代碼表示如何使用它

$("a#logSubmit").click(function(){ 
    $.post("/control.php?process=login", {username: $('input#logName').val(), password: $('input#logPass').val()}, 
    function(data) { 
    if(data == "ok"){ 
    //success 
    $("#dialog-login").dialog("close"); 
    } 
    else{ 
     $("label#input").html("your input is not valid"); 
     } 
    }); 
}); 

和你的PHP側應該是這樣的

<?php 
if(!isset($_POST['nik']) or !isset($_POST['pass'])) 
{ 
    die("not ok"); 
} 
if($_POST['nik']=="" or $_POST['pass'] =="") 
{ 

    die("not ok"); 
} 

//here you can`enter code here` validate your data and issue a custom error or success response. 

//success! 
die('ok'); 
?>