| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Василий М. 11.05.2015 12:03
Вот почищенные для наглядности куски кода из auto.p.@capture[]
# генерим два числа: небольшое двузначное и однозначное.
$cx(^math:random(20))
$cx($cx + 10)
$cy(^math:random(9))
$cy($cy+1)
# бросаем монету
$co(^math:random(2))
# и по результату предлагаем либо сложить два числа, либо вычесть маленькое из большого.
^if($co eq 0){Пожалуйста, введите <b>результат сложения $cx и $cy}{Пожалуйста, <b>вычтите $cy из $cx}^:</b># считаем должный результат для себя.@mainarea[]
<form method="post">
<textarea name="question">^if(def $cookie:ctext){$cookie:ctext}</textarea>
<p>^capture[] <input type="text" size="2" name="cres">.</p>
<input name="go" type="submit" value="Спросить">
</form>Далее работаем: #если написано и нажато
^if(def $form:question && def $form:go){
# если введенный результат капчи соответствует нужному
^if($form:cres eq $cr){
# то отправляем в базу и пишем в почту
^connect[mysql://login:pass@db.provider.ru/mydb?charset=cp1251]{
^void:sql{
INSERT INTO
`counter`.`questionaire` (
`no` ,
`date` ,
`question` ,
`answer`
)
VALUES (
NULL , NULL , '$form:question', NULL)^;
}}
^mail:send[
$.from[Сайт <site@mydomain.ru>]
$.to[Вася <mail@mydomain.ru>]
$.subject[Новый вопрос на сайте]
$.text[$form:question]
]
# ну и стираем кук с вопросом, подставляемым в форму
$cookie:ctext[]
# обновляем страницу.
$response:location[http://mydomain.ru/discuss/]
# если же введён ложный результат
}{
# сохраняем пользовательский текст для него же (после релоуда подставить в текстарею)
$cookie:ctext[$form:question]
# и пишем мне, чё там произошло. Что надо было сложить-вычесть, что получить и что вместо этого было вбито.
^mail:send[
$.from[Сайт <site@mydomain.ru>]
$.to[Вася <mail@mydomain.ru>]
$.subject[Не заданный вопрос на сайте]
$.text[Предлагалось ^if($co eq 0){сложить $cx и $cy, введен результат $form:cres вместо $cr}{вычесть $cy из $cx, введен результат $form:cres вместо $cr}^; $form:question]
]
# перезагружаем страницу
$response:location[http://mydomain.ru/discuss/]
}
}В результате.