это не защита от sql-иньекций. Проверку правильности ввода поставь яваскриптом, а на сервере поставь защиту от атак, а потом повторную проверку правильности ввода, на случай, если у юзера яваскрипт отключен. И эту смешную клаву можно смело выкинуть :)
А про защиту все-таки почитай по ссылке
Что касается виртуальной клавы: можно поставить атрибут реадонли и писать в поле можно будет только с виртуальной клавы. Чтобы она открывалась при щелчке по полю, вместо onfocus в предложеном мной решении, используй onclick (тогда не будет реакции на каждую передачу фокуса). Кроме того, в скрипте можно гайки подкрутить...
НО!
Это никоим образом не защитит тебя от злого нахера, который пошлет к тебе запрос из собственного скрипта.
Так что, с одной стороны - убрать нафиг эту клаву и:
1)
if(isNaN(pole.value)){
alert('Это не число "'+pole.value+'"');
pole.value='';
}
2) Не скажу, что это последняя инстанция, но, все таки, сначала читаешь о безопасности форм, потом, что не ясно, спрашиваешь в форуме.
Блин, написал тебе личное сообщение, спросил, почему именно виртуальная клавиатура, почему нельзя позволить юзеру вводить данные со своей клавы? В ответ тишина, а тут крики ХЕЛП...
здается мне, это не весь текст результата. Ты
echo '<p>'.$sql.'</p>';
ставил?
П. С. Ты действуй, согласно инструкции. Самодеятельностью будешь заниматься, когда станешь достаточно опытным, чтобы не задавать вопросы, а отвечать на них ;)
ты б не писал такое:
<?php if (!empty($_POST['name'])) echo " value=\"".$_POST['name']."\""; ?>
пиши просто:
<?=@$_POST['name'];?>
Красота! :)
Думаешь они реально по видеокурсам учились? Сильно сомневаюсь, что видеокурсы заменят книгу и опытного человека, который может ответить на возникающие вопросы. Так что, если у учеников хороший код, то это заслуга вовсе не ВИДИОкурсов. ИМХО.
1) onload="window.scrollBy(0,200);"
2) onload="window.location.hash='a';" (а возле сообщения об ошибке стоит <a name="a"></a>)
3) onload="document.myTextArea.focus();" (нужно было код своего form.inc показать)
4) вместо onload во втором варианте, пишем в пхп-скрипте Header("Location: http://".$_SERVER["HTTP_HOST"]."/имя_страницы#a");
5) смотрим, как тут происходит реакция на НЕСУЩЕСТВУЮЩИЙ, но лексически правильный емаил. Например: a@a.ru
Проверка происхотит аяксом и страница не перезагружается вообще.
6) аналогично 5 варианту, но не с окошком сообщения, в с выводом на страницу (подбор логина)
естественно :)
Правда, движки выдают данные целыми блоками, при чем, бывает, что эти блоки севершенно не вписываются в конкретный дизайн (к примеру, двиг выдает меню и форму авторизации как единый поток данных, а по дизу они должны распологаться в разных местах). Тогда приходится корректировать модули, отвечающие за выдачу этих блоков. Но это не частое явление.
or die(mysql_error()) - оно-то, конечно. Но если у него $full_title=0, никакого эррора не будет. Так что, тогда уже так:
$sql = "SELECT title, id FROM news ORDER BY id DESC LIMIT $full_title";
echo '<p>'.$sql.'</p>';// эту строку убрать после проверки
$sql = mysql_query($sql) or die(mysql_error());
Или при нулевом лимите все-таки выдается эррор? Мне ни разу не приходилось выбирать данные с нулевым лимитом - всегда некоторое количество требовалось :)
Ты бы выложил куда-нить эту страницу, чтоб можно было увидеть все живьем. Тогда б можно было сохранить ее на диск и посмотреть, как убрать разрыв