Ну где вы, боги криптологии! :)
Вообщем, исследования мои показали, что путь один только у бота, это через функцию в модели, так как я её когда закомментил, то спам остановился.
Вот функция в модели, которая добавляет запись: function add_site($data, $category_alias)
{
$data = check_arr($data);
if ($this->db->insert('site', $data)) {
$category_name = $this->category_model->get_category_by_param("alias", $category_alias, "name");
$id = $this->db->insert_id();
$subject = "Ваш сайт успешно добавлен в каталог vlamir.ru!";
$message = "
<p><h1>Поздравляем, вас сайт успешно добавлен в бесплатный каталог сайтов <a href='" . site_url() . "'>vlamir.ru</a></h1></p>
<p>Ваш сайт будет находиться на странице <a href='" . site_url("category/{$category_alias}/site_{$id}") . "'>{$data['title']}</a></p>
<p><b>Название: </b><a href='" . site_url() . "category/{$category_alias}/site_{$id}'>{$data['title']}</a></p>
<p><b>Адрес: </b>{$data['url']}</p>
<p><b>Описание: </b>{$data['description']}</p>
<p><b>Категория: </b>{$category_name}</p>
<p>Если у вас возникнут вопросы, то мы рады будем на них ответить. Присылайте свои вопросы на почту <a href='mailto:support@vlamir.ru'>службы поддержки</a>";
send_email($subject, $message, $data['email']);
return $id;
}
}
функция check_arr: Это уже вторая проверка на символы, первая на входе в контроллер обработчик. Но если думаю даже там проходит, то тут почему! Как можно обойти вот эту строчку! $data = check_arr($data);
function check_input($var)
{
$var = strip_tags($var);
$var = htmlspecialchars(stripslashes($var));
$var = mysql_real_escape_string($var);
$var = trim($var);
return $var;
}
function check_arr($data)
{
foreach ($data as $index => $item) {
$data[$index] = check_input($item);
}
return $data;
}