PHP / MySQL - иногда пустая запись добавляется в таблицу - PullRequest
0 голосов
/ 13 июля 2009

Код ниже позволяет моим пользователям добавлять элемент ($ site) в таблицу ($ find). Это работает хорошо. Но время от времени он добавляет пустое значение в таблицу в дополнение к значению, которое добавляет пользователь.

Есть идеи почему?

Заранее спасибо,

John

<?

$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)");
?>

1 Ответ

1 голос
/ 13 июля 2009

Вы должны убедиться, что пользователь действительно что-то ввел.

Что-то вроде:

if(trim($find) && trim($site)) {
  mysql_query("INSERT INTO `$find` VALUES (NULL, '$site',1,0)");
} else {
  print "You must enter values!";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...