Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2011-12-24 16:55:56

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

как запилить капчу и сделать переход на другую страницу по submit'у

есть две формы

<form action="" method="post">
<select name="a">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="b">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit" value="Разместить" />
</form>
<form action="" method="post">
<select name="c">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="d">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit" value="Разместить" />
</form>
<?php
if (!defined('NGCMS'))
    exit('HAL');

register_plugin_page('test','','plugin_test');

function plugin_test()
{global $twig, $template, $SYSTEM_FLAGS, $mysql;
    
    $SYSTEM_FLAGS['info']['title']['group'] = 'Проверка тестовой страницы';
    
    $tpath = locatePluginTemplates(array('test'), 'test', 1);
    
    if($_REQUEST['submit']){
        $a=$_POST['a'];
        $b=$_POST['b'];
        $c=$_POST['c'];
        $d=$_POST['d'];
        print 'Форма отправлена';
        
        //form1
        if( isset($a) && isset($b) )
            $mysql->query('INSERT INTO '.prefix.'_adds 
                        (a, 
                        b) 
                        VALUES 
                        (    '.db_squote($a).',
                            '.db_squote($a).',
                        )
            ');
        //form2
        if(isset($c) && isset($d))
            $mysql->query('INSERT INTO '.prefix.'_adds2 
                        (c, 
                        d) 
                        VALUES 
                        (    '.db_squote($c).',
                            '.db_squote($d).',
                        )
            ');
    }
    
    $xt = $twig->loadTemplate($tpath['test'].'test.tpl');
    
    $template['vars']['mainblock'] = $xt->render($tVars);
}

как к ним приделать встроеную капчу (к каждой форме по капче)
и сделать по нажатию кнопки переход на страницу, с результатом типа  "всё сработало" или - "несработало".

Изменено fedor-jan (2011-12-24 16:56:54)

Не в сети

#2 2011-12-24 18:13:05

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

Re: как запилить капчу и сделать переход на другую страницу по submit'у

добавил в .tpl

<img src="{admin_url}/captcha.php">
<input class="important" type="text" name="vcode" maxlength="5" size="30" />

и в .php проверку

$captcha = $_REQUEST['vcode']; if (!$captcha || ($_SESSION['captcha'] != $captcha)) {$i=2; echo "ошибка в поле captcha";}

но помоему я херню написал, и генерирует она тока 22915 с разным фоном

Не в сети

#3 2011-12-24 18:35:49

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

Re: как запилить капчу и сделать переход на другую страницу по submit'у

$_SESSION['captcha'] = rand(00000, 99999);
		$tvars['vars']['captcha'] = '';
		$tvars['regx']["'\[captcha\](.*?)\[/captcha\]'si"] = '$1';

добавил в .php
капчп начала генерироваться, но когда я нажимаю submit, то генерируется новый код и он соответственно несовпадает ниразу с тем что ввёл юзер

Не в сети

#4 2011-12-24 18:48:09

fedor-jan
Участник
Откуда на раёне
Зарегистрирован: 2011-09-04
Сообщений: 79
Рейтинг :   

Re: как запилить капчу и сделать переход на другую страницу по submit'у

всё, сорри за флуд, разобрался.
заработало.

но это помоему неправильно и ситуация такая - форм 8 штук, они в табах яваскриптовских, как правильнее прикрутить к каждой форме по капче?

Не в сети

Подвал раздела

Работает на FluxBB