2012-08-06 54 views
1

我有一個名爲「negwords」的textarea的簡單表單。如果textarea中有數據,每行都會被\ n分解,然後我將這些值插入到數據庫中,並放入名爲「negatives」的表中,該表只包含兩個字段(id,負數)。從Textarea刪除空行或空行行以避免將空白行插入數據庫

問題是,如果存在並提交空的或空白的回車符,我的數據庫中會出現空白記錄。

如何避免從textarea提交空行或空行?

<form action="insert.php" method="post"> 
<textarea class="" cols="110" rows="30" name="negwords"></textarea> 
    <input type="submit" name="submit" value="Submit" /> 
    </form>  
    </div> 
    <div id="results"> 
<?php 
include 'db_connect.php'; 

if(isset($_POST["negwords"])) 
{ 
    //$negative_keyword = explode("\n", $_POST["negwords"]); 

    $negative_keyword = array_filter(explode("\n", trim($_POST['negwords']))); 
    foreach($negative_keyword as $key => $phrase) 
{ 
    $phrase=trim($phrase); 
    $sql = "INSERT IGNORE INTO negatives (negative) VALUE ('{$phrase}')"; 

    mysql_query($sql); 
} 
} 
?> 
+0

您的代碼容易受到SQL注入攻擊。閱讀更多:http://en.wikipedia.org/wiki/SQL_injection – heikkim 2012-08-13 08:25:40

回答

0

通過

if (strlen($phrase) > 0) { mysql_query($sql); } 

而且還更換mysql_query($sql);,作爲一個側面說明:我強烈推薦開關從MySQL,它被廢棄到mysqli的。

+0

'strlen(trim($ phrase))'會更合適。 – mAu 2012-08-13 08:27:22

+0

strlen counts \ r和\ n所以這不會有幫助。 – heikkim 2012-08-13 08:27:24

+1

@mAu他已經修剪過這兩行。 – 2012-08-13 08:30:03