2009-07-13 13 views
0

以下のコードでは、ユーザはテーブル($ find)にアイテム($ site)を追加できます。それはうまくいく。しかし、たまには、ユーザーが追加する値に加えて、空の値がテーブルに追加されます。PHP/MySQL - テーブルに空白のエントリが追加されることがあります

なぜでしょうか?事前に

おかげで、

ジョン

<? 

$find1 = urlencode($find); 

print "<div class=\"siteadd\"> 
     <form action='bookprocess.php?find=$find1' method='post'> 
     Add an item: <input name='site' type='text' size='50'> 
     <input type='submit' value='Submit'> 
     </form> 
     </div>"; 
?> 

その後、bookprocess.php上:

<? 
$remove_array = array('http://www.', 'http://', 'https://', 'https://www.', 'www.'); 
$site = str_replace($remove_array, "", $_POST['site']); 
$site = strtolower($site); 

function check_porn_terms($input){ 
    $porn_terms = array(here are a lot of swear words and porn terms); //add terms here 
    foreach($porn_terms as $term){ 
      if(substr_count($input, $term) > 0) return false; 
    } 

    return true; 
} 


if(!check_porn_terms($_POST['site'])) 
{ 

    session_write_close(); 
    header("Location:http://www.site.com/index.php"); 
    exit; 

} 


mysql_connect("mysqlv10", "username", "password") or die(mysql_error()); 
mysql_select_db("bookfeather") or die(mysql_error()); 

$_GET['find'] = $find; 
$find = urldecode($find); 
$find = mysql_real_escape_string($find); 

$site = mysql_real_escape_string($site); 
$illegal = array("/", "\""); 
$site = str_replace($illegal, '', $site); 

mysql_query("INSERT INTO `$find` VALUES (NULL, '$site',1,0)"); 
?> 
+2

"$ _GETを[ '見つける'] = $見つけます;" –

答えて

1

あなたは、ユーザーが実際に何かを入力してくださいことを確認する必要があります。線に沿って

何か:私はあなたが後方に次の行を掲載考える

if(trim($find) && trim($site)) { 
    mysql_query("INSERT INTO `$find` VALUES (NULL, '$site',1,0)"); 
} else { 
    print "You must enter values!"; 
} 
関連する問題