Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проверка присутствия слова в строке
 
 автор: enodik   (10.03.2011 в 18:48)   письмо автору
 
 

подскажите пожалуйста ошибку:) есть форма с полем ввода, в которое вводится строка формата запроса sql.
В php файле, обработки введенных данных, необходимо проверить присутствие в введенной строке слов "select" и "from". (регистро независимая проверка). проверка select выполняется нормально, а from не проверяется вообще.

<?
//Получаем данные
$q = $_POST["otvet"];
$a = str_word_count($q, 1); //разбиваем строку на массив
if (@strcasecmp($a[0], "select") <> 0) echo "<script language=javascript>window.alert('Оператор должен начинаться с SELECT');</script>";
elseif (@strcasecmp($a, "from") <> 0) echo "<script language=javascript>window.alert('В предложении отсутствует FROM');</script>";
?>

  Ответить  
 
 автор: cheops   (10.03.2011 в 18:54)   письмо автору
 
   для: enodik   (10.03.2011 в 18:48)
 

Функция strcasecmp() сравнивает две строки, причем сравнивает с начала, поэтому select находится корректно, а from - нет, так как он находится не в начале а в середине запроса. Во втором случае лучше воспользоваться функцией вроде stripos(), которая не будет привязываться к началу строки
<?
//Получаем данные
$q $_POST["otvet"];
$a str_word_count($q1); //разбиваем строку на массив
if (@strcasecmp($a[0], "select") <> 0)
echo 
"<script language=javascript>window.alert('Оператор должен начинаться с SELECT');</script>";
elseif (
stripos($a"from") === false)
echo 
"<script language=javascript>window.alert('В предложении отсутствует FROM');</script>";
?>

  Ответить  
 
 автор: enodik   (10.03.2011 в 19:03)   письмо автору
 
   для: cheops   (10.03.2011 в 18:54)
 

спасибо большое:)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования