Seite 1 von 1

Captcha auf eigenen Seiten benutzen ?!

Verfasst: 27.11.2007 20:43
von Roachh
Hallo,
ich würde gerne diese Captcha Funktion auf meinen selbst erstellten Seiten benutzen, also die Seiten werden von PHPBB3 generiert.

hat sich damit schonmal jemand beschäftigt?

Danke und mfG

Roachh

Verfasst: 27.11.2007 21:59
von Dave

Code: Alles auswählen

		if ($submit)
		{
			$confirm_id = request_var('confirm_id', '');
			$confirm_code = request_var('confirm_code', '');

			if (!$confirm_id)
			{
				$error[] = $user->lang['CONFIRM_CODE_WRONG'];
			}
			else
			{
				$sql = 'SELECT code
					FROM ' . CONFIRM_TABLE . "
					WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
						AND session_id = '" . $db->sql_escape($user->session_id) . "'
						AND confirm_type = " . CONFIRM_IRGENDWAS;
				$result = $db->sql_query($sql);
				$confirm_row = $db->sql_fetchrow($result);
				$db->sql_freeresult($result);

				if ($confirm_row)
				{
					if (strcasecmp($confirm_row['code'], $confirm_code) === 0)
					{
						$sql = 'DELETE FROM ' . CONFIRM_TABLE . "
							WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
								AND session_id = '" . $db->sql_escape($user->session_id) . "'
								AND confirm_type = " . CONFIRM_IRGENDWAS;
						$db->sql_query($sql);
					}
					else
					{
						$error[] = $user->lang['CONFIRM_CODE_WRONG'];
					}
				}
				else
				{
					$error[] = $user->lang['CONFIRM_CODE_WRONG'];
				}
			}
		}

		$user->confirm_gc(CONFIRM_IRGENDWAS);

		$sql = 'SELECT COUNT(session_id) AS attempts
			FROM ' . CONFIRM_TABLE . "
			WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
				AND confirm_type = " . CONFIRM_IRGENDWAS;
		$result = $db->sql_query($sql);
		$attempts = (int) $db->sql_fetchfield('attempts');
		$db->sql_freeresult($result);

		if ($uaf_config['max_act_attempts'] && $attempts > $uaf_config['max_act_attempts'])
		{
			trigger_error('TOO_MANY_ACTIVATES');
		}

		$code = gen_rand_string(mt_rand(5, 8));
		$confirm_id = md5(unique_id($user->ip));
		$seed = hexdec(substr(unique_id(), 4, 10));

		// compute $seed % 0x7fffffff
		$seed -= 0x7fffffff * floor($seed / 0x7fffffff);

		$sql = 'INSERT INTO ' . CONFIRM_TABLE . ' ' . $db->sql_build_array('INSERT', array(
			'confirm_id'	=> (string) $confirm_id,
			'session_id'	=> (string) $user->session_id,
			'confirm_type'	=> (int) CONFIRM_IRGENDWAS,
			'code'			=> (string) $code,
			'seed'			=> (int) $seed)
		);
		$db->sql_query($sql);

		$template->assign_vars(array(
			'CONFIRM_ID'	=> $confirm_id,
			'CONFIRM_IMG'	=> '<img src="' . append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=confirm&id=' . $confirm_id . '&type=' . CONFIRM_IRGENDWAS) . '" alt="" title="" />',

			'L_ACTIVATE_CONFIRM_EXPLAIN'	=> sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'),
		));
Ich hoffe mal ich habe alles.
CONFIRM_IRGENDWAS mußte dann nur noch ändern und in der constans.php hinzufügen.


MfG
Dave

Verfasst: 28.11.2007 08:32
von Roachh
dankeschön, gleich mal ausprobieren :)