Supervisork

Рейтинг
60
Регистрация
27.02.2007

это не защита от 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'];?>

Красота! :)

bearman:
аа, ну да. курсы от знатного говнокодера рунета для начинающих говнокодеров! +1 неплохие судя по коду учеников

Думаешь они реально по видеокурсам учились? Сильно сомневаюсь, что видеокурсы заменят книгу и опытного человека, который может ответить на возникающие вопросы. Так что, если у учеников хороший код, то это заслуга вовсе не ВИДИОкурсов. ИМХО.

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 варианту, но не с окошком сообщения, в с выводом на страницу (подбор логина)

естественно :)

Правда, движки выдают данные целыми блоками, при чем, бывает, что эти блоки севершенно не вписываются в конкретный дизайн (к примеру, двиг выдает меню и форму авторизации как единый поток данных, а по дизу они должны распологаться в разных местах). Тогда приходится корректировать модули, отвечающие за выдачу этих блоков. Но это не частое явление.

bearman:
а еще лучше писать вот так

mysql_query("SELECT title, id FROM news ORDER BY id DESC LIMIT $full_title") or die(mysql_error());

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());

Или при нулевом лимите все-таки выдается эррор? Мне ни разу не приходилось выбирать данные с нулевым лимитом - всегда некоторое количество требовалось :)

Ты бы выложил куда-нить эту страницу, чтоб можно было увидеть все живьем. Тогда б можно было сохранить ее на диск и посмотреть, как убрать разрыв

Всего: 186