А вот еще вопрос... конструирую Guest book...
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



А вот еще вопрос... конструирую Guest book...... Expand / Collapse
Автор
Сообщение
19.12.2000 14:54
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2006 18:34
Сообщ.: 328, Visits: 3 642
Делаю Гуэст бук, создал две страницы: с демонстрацией всех сообщений и с вводом сообщения. На странице ввода сообщения форма которая отправляет инфу в БД, а страница демонстрации сообщений вытаскивает всю инфу из БД. Когда заполняешь форму проигнорировав (не заполнив) какое-либо поле и жмешь сабмит выскакивает следующее:

Microsoft OLE DB Provider for ODBC Drivers error ''80004005''

[Microsoft][ODBC Microsoft Access Driver] Field ''GuestBook.Email'' cannot be a zero-length string.

about_gb-form.asp, line 49

Как сделать, что бы гость не мог проигнорировать не все поля формы, а только некоторые, при этом происходил бы редирект на отдельную страницу (скажем, error.html) ?

Сообщ. #702476
19.12.2000 15:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
Для этого сделай проверку перед тем, как сделать запись в БД:

email = Request.Form("email")
if email="" then Response.redirect ("error.html")

где "email" - это имя <input> в форме.
Сообщ. #702477
19.12.2000 16:21
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 03.03.2006 19:03
Сообщ.: 1 908, Visits: 21 011
Можно сделать на стороне сервера, а можно и на стороне клиента, пример:
-------------
<form action="add.asp" method="post">
<input type="text" name="FIO">
<input type="text" name="Email">
<input type="button" onclick="if (FIO.value=='''' || Email.value=='''') {alert(''Заполните обязательные поля'')} else {form.submit()}">
</form>

При таком варианте пользователь нажмет на ОК в окошке предупреждения и продолжит заполнение формы, причем все уже введенные значения сохранятся и перезагрузки страницы не произойдет. Хотя сразу же оговорюсь, что если клиент отключил JavaScript, то это не сработает, но я, например, не обращаю на это внимание, так как без JS все равно ничего путного не напишешь. Вариант, предложенный ранее это ограничение обходит, но там теряются все значения, и происходит перезагрузка страницы, так что выбирайте!
(можно и при отключенном JS такую проверку "рабочей" сделать, для этого надо и на стороне сервера и на стороне клиента проверку делать, а еще использовать input type="submit)
Сообщ. #702484
19.12.2000 16:25
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
Sergik, ты безусловно прав. Как прав и я :)

Действительно, можно (и нужно, наверно, см. http://www.relib.com/asp/asp_tip19.asp) сделать проверку "на клиенте", но и на сервере тоже нужно, потому как если у поддержка скриптов отключена, то с неправильными данными возникнет ошибка.
Сообщ. #702485
19.12.2000 17:02
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2006 18:34
Сообщ.: 328, Visits: 3 642
А что сделать, чтобы некоторые поля можно было бы проигнорировать? То есть, чтобы их можно было бы не заполнять и соответственно на стр. демонстрации сообщений они бы не выводились?
Сообщ. #702486
19.12.2000 17:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
Так просто не проверяй их и все. А если получаешь ошибку

Field ''GuestBook.Email'' cannot be a zero-length string

то надо изменить таблицу GuestBook и установить свойство Allow Zero Length поля Email в "No", т.е. разрешить добавлять пустые значения.
Сообщ. #702487
19.12.2000 17:39
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2006 18:34
Сообщ.: 328, Visits: 3 642
Просто нужно изменить свойство?! Все это до того поразительно просто, что мне даже как то неловко :|

В любом случае огромное вам СПАСИБО за помощь!
Сообщ. #702488
19.12.2000 17:42
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
> В любом случае огромное вам СПАСИБО за помощь!

Так как помощь бесплатная, то при возможности на вашем веб-сайте (для которого guestbook) разместите ссылку "Зроблено при помощи Relib.com" :)
Сообщ. #702489