Всем доброго времени суток. Пожалуйста, скажите, защищен ли мой поиск, покажите пожалуйста, если есть, ошибки. PHP: <?php require_once('php/connect.php'); //получаем данные через $_POST $post =$_REQUEST['search']; if (isset( $post)) { // подключаемся к базе $db = new db(); if (!get_magic_quotes_gpc()) { $post = addslashes($post); } // Строим запрос if (empty($post) or strlen($post) <3) { echo'Поле не может быть пустым';exit();} $post=trim(htmlspecialchars($post, ENT_QUOTES)); $sql = "SELECT * FROM planes WHERE name LIKE '%" . addcslashes(mysql_real_escape_string($post), '%_\\\'') . "%' ORDER BY dt_create DESC LIMIT 9"; // Получаем результаты $row = $db->select_list($sql); if(count($row)) { foreach($row as $r) { echo '<li class="grid_4"><a href="'. $r[7].'"><img src="'. $r[11].'" alt="'. $r[1].'" width="300" height="100"/></a>'; echo '<h3><a href="'. $r[7].'">'. $r[1].'</a></h3>'; echo '<span class="price"><strong>'. $r[4].'</strong> </span>'; echo '<p align="justify">'. $r[5].'</p>'; echo '<div><span><a href="#">Оф. сайт</a></span>'; echo '<span class="stars"></span>'; echo '<span><a href="'. $r[7].'">Подробнее..</a></span></div></li>'; } echo $end_result; } else { echo '<h2 style="padding-bottom: 350px;">По вашему запросу ничего не найдено</h2>'; } } ?> connect .php PHP: <?php function plus_slash($a){ $b=chr(92); $a=str_replace($b,$b.$b,$a); return $a; } class db { function __construct() { global $dbh; if (!is_null($dbh)) return; $dbh = mysql_pconnect('localhost', 'dddddddd', 'dddddddddddddddd'); mysql_select_db('airblog_info'); mysql_query('SET NAMES utf8'); } function select_list($query) { $q = mysql_query($query); if (!$q) return null; $ret = array(); while ($row = mysql_fetch_row($q, MYSQL_BOTH)) { array_push($ret, $row); } mysql_free_result($q); return $ret; } } ?> Да и еще, если оставлять поле поиска пустым, то в результате пишет, что "поле не должно быть пустым" и половины страницы нет (если что-то нашел, то вторая половина появляется) Заранее всем огромное спасибо =)
если по вашей задумке так быть не должно, то уберите "exit();" из кода, а остальную часть обрабатывать после else PHP: <?php if (empty($post) or strlen($post) <3) { echo'Поле не может быть пустым'; } else { $post=trim(htmlspecialchars($post, ENT_QUOTES));