2013-08-28 47 views
0

我嘗試在網站上創建一個評論會話,其中用戶將是非英語用戶,結果他們的評論將以他們的母語發表。 如果我使用我在這裏找到的以下代碼([如果非英文檢測到PHP],這意味着我將阻止SQL注入?通過拒絕英文字符防止SQL注入?

$string = $_POST['comment']; 
if(strlen($string) != mb_strlen($string, 'utf-8')) 
{ 
    echo "proceed"; 
    require_once('db_file.php'); 
} 
else { 
    echo "English Detected."; 
    exit(); 
} 

我測試了它,如果我用英文字符與中國/希臘混合/波蘭,事實證明,它退出「的代碼。 有關於此的任何想法/意見?當然,我會把「mysqli_real_escape_string」,但我想知道,如果英文檢測爲我提供了額外的安全性。 謝謝你的時間。

+1

否;它只是爲您提供額外的煩惱。 – SLaks

+1

我很欣賞這種創造力,但這是解決問題的最糟糕的方法。另外,如果一箇中國人在「Apple iPhone」中寫下「Apple」,評論將無法通過。我認爲,實施這個措施可能會很好地解釋英文名詞「自shooting腳下」。 – ppeterka

回答

3

它提供了額外的安全性嗎?

正確的轉義函數(在這種情況下爲mysql_real_escpae_string)正是您所需要的,沒有什麼比這更簡單了。