@USE verify.p gb.p @Content[] $result[0] # метод проверяет все-ли поля формы заполнены. если все хорошо должен вернуть 1, иначе - 0 @is_ok[] $result(^if(def $form:number){1}{0}) #end @is_ok[] @my_body[] $xml[^xdoc::create{ }] $html[^xml.transform[comment.xsl]] ^html.string[$.method[html]] ^if($form:action eq "done"){ ^rem{ *** сюда мы попадём после внешнего редиректа когда всё уже успешно отправилось *** } ^rem{ *** тут пишем посетителю что-нить доброе за то, что он отправил нам пожелание *** } $is_show_form(0) $xml[^xdoc::create{ }] $html[^xml.transform[comment.xsl]] ^html.string[$.method[html]] }{ ^rem{ *** устанавливаем флаг, что надо показывать форму *** } $is_show_form(1) } ^rem{**** Обработка формы ****} ^rem{**** Обработка формы ****} $uid[^verify:get[$form:uid]] ^if(def $form:do){ $date_now[^date::now[]] ^if(^is_ok[]){ ^try{ ^verify:exec[$form:number]{ ^connect[$connect_string]{ ^if(def $form:operation && $form:operation ne "reply"){ $supply[^table::sql{ UPDATE guestbook SET ^if($form:operation ne "edit"){ Date = '^date_now.sql-string[]',} Name = '^taint[html][$form:Name]', Subj = '^taint[html][$form:Subj]', City = '^taint[html][$form:City]', email = '^taint[html][$form:email]', URL = '^taint[html][$form:URL]', Question = '^taint[html][$form:Question]', Moderated = '^taint[html][$form:Moderated]' ^if($form:operation eq "edit" && $MAIN:moderator == 1){ , Answer = '^taint[html][$form:Answer]' } WHERE ($MAIN:auth.user.user_id = Owner_id OR $MAIN:moderator = 1) AND $form:id = ID }] }{ $supply[^table::sql{INSERT INTO guestbook (Date, Name, Subj, City, email, URL, Question, Moderated, Owner_id) VALUES ('^date_now.sql-string[]', '^taint[html][$form:Name]', '^taint[html][$form:Subj]', '^taint[html][$form:City]', '^taint[html][$form:email]', '^taint[html][$form:URL]', '^taint[html][$form:Question]', '^taint[html][$form:Moderated]', $MAIN:auth.user.user_id) }] } ^rem{/def} } ^rem{/connect} $str[${env:SERVER_NAME}${request:uri}]
$response:location[?action=done] } ^rem{/try} }{ $exception.handled(1) $xml[^xdoc::create{ Неверно набран номер с картинки: $form:number }] $html[^xml.transform[comment.xsl]] ^html.string[$.method[html]] } }{ $xml[^xdoc::create{ Не набран номер с картинки }] $html[^xml.transform[comment.xsl]] ^html.string[$.method[html]] $is_show_form(1) } } ^rem{**** /// Обработка формы ****} ^rem{**** /// Обработка формы ****} ^if($is_show_form){ $xml[^xdoc::create{ ^gb:AddForm[$.fields[$form:fields] $.tag_name[guestbook-add]] }] $html[^xml.transform[form.xsl]] ^html.string[$.method[html]] }