2016-10-17 152 views
0

我有一個最大字母檢查。如果檢查不是第一次,它的工作。但是,如果我有一個200個字符或更多的插入它始終返回Message cant have more than 200 characters.即使在測試返回錯誤後10個字符。看不到我做錯了什麼。MySQL總是返回錯誤

<?php 
$stripped = mysql_real_escape_string($_GET['id']); 
$id = mysql_real_escape_string($_GET['id']); 
$message = mysql_real_escape_string($_POST['message']); 
$aktiv = mysql_real_escape_string($_POST['aktiv']); 

if (isset($_POST['sendmsg'])) { 
    if ($_POST['message'] < 200) {   
    echo "Message can't be more than 200 characters"; 
    } else { 
    $result = mysql_query("UPDATE cms_prosjekt SET message = '$message', active_msg = '$aktiv' WHERE id = $stripped;"); 

    header('Location: Location: /index.php?url=projectedit&id='.$stripped.'&code='.$id.''); 
    exit; 
    } 
} 
?> 
+0

您可能希望'strlen($ _ POST ['message'])''或'mb_strlen($ _ POST ['message']) '。你有一個SQL注入問題。 – jeroen

+0

不應該像'strlen($ _POST ['message'])''在'if'裏面嗎? – Sirko

回答

4

這不是MySQL的錯誤,但你的php驗證錯誤

1)超過200 >200<200

2)你需要檢查文本的長度不是文本

if (strlen($_POST['message']) > 200) 
{  

    echo "Message can't be more than 200 characters"; 

} 
+0

謝謝,但是如果我插入超過200個錯誤消息當然會出現,但是如果我在此之後做了正確的插入,錯誤消息仍然存在。 @nospor –

+0

這是我的頭重定向,瘋狂的錯誤留下來。感謝您的幫助 –

+0

@Noman請不要編輯帖子,如果您沒有檢查OP代碼較早。檢查表單是否被提交是OP代碼中的上面幾行 – nospor

2

問題出在($_POST['message'] < 200)你應該這樣做(strlen($_POST['message']) > 200)

至少這是當消息超過200時顯示的消息。