parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

код доступа на добавление в базу

nreg 01.02.2008 12:32

Такая проблемка.
все наверно видели как на форумах сделана проверка, защита от спама.
т.е. мы вводим все данные и код указанный на картинке, если код верный то данные отправляются на сервер.
попытался сделать что то такое и вот что у меня получилось.
<form method="POST" enctype="multipart/form-data">
<p Align="justify">
<table border=0 width=100% cellspacing="0" cellpadding="4">
<tr bgcolor=ffffff><td>Категория</td>
 <td>
  <SELECT size=0 width=50 name="kategory">
    ^connect[$connect_string]{$kat[^table::sql{select kid, name from kategory}]
    ^kat.menu{
    <OPTION value="$kat.kid">$kat.name</OPTION>
               }
               }
  </SELECT>                                                                                       
 </td>
</tr>
# помещаем в переменную ran случайное чилсо
$ran[^math:random(100000)]

# поля для ввода данных

<tr bgcolor=ffffff><td>Наименование</td><td><input name="name" value="$add.name" size=50></td></tr>
<tr bgcolor=ffffff><td>Описание</td><td><textarea cols="50" name="opis" rows="6"></textarea></td></tr>
<tr bgcolor=ffffff><td>Фотография</td><td><input type="file" name="photo" value="$form:filename" size=40></td></tr>

# поле для ввода случайного числа переменной $RAN
<tr bgcolor=ffffff><td>Введите код <b>$ran</b></td><td><input name="access" value="" size=40></td></tr>
<tr bgcolor=ffffff><td></td><td><input type="submit" value="Разместить объявление" name="posted"></td></tr>
</table>


# выполняем проверку на правильность данных
# Ели поле $form:name и поле form:access не равно той самой переменной
# то данные в базу не проходят.

^if(def $form:name && $form:access eq $ran ){
# Соединяемся с БД
   ^connect[$connect_string]{
      ^void:sql{insert into predmet
         (date_p, name, opis, photo, kategory)
      values
         ('${date.year}-${date.month}-${date.day} ${date.hour}:${date.minute},${date.second}', '$form:name', '$form:opis', '$form:photo', '$form:kategory')
      }
      }
      }
</form>
в итоге получается что на момент нажатия кнопки "Разместить объявление" переменная $ran меняется и она уже не равна той что я ввел в окно ввода. вопрос как ыбть ?