mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-15 22:26:32 +02:00
[ticket/11854] Remove constants and use DI for QA tables
PHPBB3-11854
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
parameters:
|
||||||
|
tables.captcha_qa_questions: %core.table_prefix%captcha_questions
|
||||||
|
tables.captcha_qa_answers: %core.table_prefix%captcha_answers
|
||||||
|
tables.captcha_qa_confirm: %core.table_prefix%qa_confirm
|
||||||
|
|
||||||
services:
|
services:
|
||||||
captcha.factory:
|
captcha.factory:
|
||||||
class: phpbb\captcha\factory
|
class: phpbb\captcha\factory
|
||||||
@ -10,34 +15,38 @@ services:
|
|||||||
arguments:
|
arguments:
|
||||||
- @service_container
|
- @service_container
|
||||||
tags:
|
tags:
|
||||||
- { name: service_collection, tag: captchas.plugins }
|
- { name: service_collection, tag: captcha.plugins }
|
||||||
|
|
||||||
core.captcha.plugins.gd:
|
core.captcha.plugins.gd:
|
||||||
class: phpbb\captcha\plugins\gd
|
class: phpbb\captcha\plugins\gd
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
tags:
|
tags:
|
||||||
- { name: captchas.plugins }
|
- { name: captcha.plugins }
|
||||||
|
|
||||||
core.captcha.plugins.gd_wave:
|
core.captcha.plugins.gd_wave:
|
||||||
class: phpbb\captcha\plugins\gd_wave
|
class: phpbb\captcha\plugins\gd_wave
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
tags:
|
tags:
|
||||||
- { name: captchas.plugins }
|
- { name: captcha.plugins }
|
||||||
|
|
||||||
core.captcha.plugins.nogd:
|
core.captcha.plugins.nogd:
|
||||||
class: phpbb\captcha\plugins\nogd
|
class: phpbb\captcha\plugins\nogd
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
tags:
|
tags:
|
||||||
- { name: captchas.plugins }
|
- { name: captcha.plugins }
|
||||||
|
|
||||||
core.captcha.plugins.qa:
|
core.captcha.plugins.qa:
|
||||||
class: phpbb\captcha\plugins\qa
|
class: phpbb\captcha\plugins\qa
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
|
arguments:
|
||||||
|
- %tables.captcha_qa_questions%
|
||||||
|
- %tables.captcha_qa_answers%
|
||||||
|
- %tables.captcha_qa_confirm%
|
||||||
tags:
|
tags:
|
||||||
- { name: captchas.plugins }
|
- { name: captcha.plugins }
|
||||||
|
|
||||||
core.captcha.plugins.recaptcha:
|
core.captcha.plugins.recaptcha:
|
||||||
class: phpbb\captcha\plugins\recaptcha
|
class: phpbb\captcha\plugins\recaptcha
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
tags:
|
tags:
|
||||||
- { name: captchas.plugins }
|
- { name: captcha.plugins }
|
||||||
|
@ -30,6 +30,24 @@ class qa
|
|||||||
// dirty trick: 0 is false, but can still encode that the captcha is not yet validated
|
// dirty trick: 0 is false, but can still encode that the captcha is not yet validated
|
||||||
var $solved = 0;
|
var $solved = 0;
|
||||||
|
|
||||||
|
protected $table_captcha_questions;
|
||||||
|
protected $table_captcha_answers;
|
||||||
|
protected $table_qa_confirm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param string $table_captcha_questions
|
||||||
|
* @param string $table_captcha_answers
|
||||||
|
* @param string $table_qa_confirm
|
||||||
|
*/
|
||||||
|
function __construct($table_captcha_questions, $table_captcha_answers, $table_qa_confirm)
|
||||||
|
{
|
||||||
|
$this->table_captcha_questions = $table_captcha_questions;
|
||||||
|
$this->table_captcha_answers = $table_captcha_answers;
|
||||||
|
$this->table_qa_confirm = $table_qa_confirm;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $type as per the CAPTCHA API docs, the type
|
* @param int $type as per the CAPTCHA API docs, the type
|
||||||
*/
|
*/
|
||||||
@ -50,7 +68,7 @@ class qa
|
|||||||
// we need all defined questions - shouldn't be too many, so we can just grab them
|
// we need all defined questions - shouldn't be too many, so we can just grab them
|
||||||
// try the user's lang first
|
// try the user's lang first
|
||||||
$sql = 'SELECT question_id
|
$sql = 'SELECT question_id
|
||||||
FROM ' . $table_prefix . 'captcha_questions' . "
|
FROM ' . $this->table_captcha_questions . "
|
||||||
WHERE lang_iso = '" . $db->sql_escape($user->lang_name) . "'";
|
WHERE lang_iso = '" . $db->sql_escape($user->lang_name) . "'";
|
||||||
$result = $db->sql_query($sql, 3600);
|
$result = $db->sql_query($sql, 3600);
|
||||||
|
|
||||||
@ -66,7 +84,7 @@ class qa
|
|||||||
$this->question_lang = $config['default_lang'];
|
$this->question_lang = $config['default_lang'];
|
||||||
|
|
||||||
$sql = 'SELECT question_id
|
$sql = 'SELECT question_id
|
||||||
FROM ' . $table_prefix . 'captcha_questions' . "
|
FROM ' . $this->table_captcha_questions . "
|
||||||
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'";
|
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'";
|
||||||
$result = $db->sql_query($sql, 7200);
|
$result = $db->sql_query($sql, 7200);
|
||||||
|
|
||||||
@ -94,7 +112,7 @@ class qa
|
|||||||
|
|
||||||
$db_tool = new \phpbb\db\tools($db);
|
$db_tool = new \phpbb\db\tools($db);
|
||||||
|
|
||||||
return $db_tool->sql_table_exists($table_prefix . 'captcha_questions');
|
return $db_tool->sql_table_exists($this->table_captcha_questions);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -113,7 +131,7 @@ class qa
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT COUNT(question_id) AS question_count
|
$sql = 'SELECT COUNT(question_id) AS question_count
|
||||||
FROM ' . $table_prefix . 'captcha_questions' . "
|
FROM ' . $this->table_captcha_questions . "
|
||||||
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'";
|
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'";
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
$row = $db->sql_fetchrow($result);
|
$row = $db->sql_fetchrow($result);
|
||||||
@ -194,7 +212,7 @@ class qa
|
|||||||
if ($this->is_available())
|
if ($this->is_available())
|
||||||
{
|
{
|
||||||
$sql = 'SELECT question_text
|
$sql = 'SELECT question_text
|
||||||
FROM ' . $table_prefix . 'captcha_questions' . "
|
FROM ' . $this->table_captcha_questions . "
|
||||||
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'";
|
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'";
|
||||||
$result = $db->sql_query_limit($sql, 1);
|
$result = $db->sql_query_limit($sql, 1);
|
||||||
if ($row = $db->sql_fetchrow($result))
|
if ($row = $db->sql_fetchrow($result))
|
||||||
@ -233,7 +251,7 @@ class qa
|
|||||||
global $db, $config;
|
global $db, $config;
|
||||||
|
|
||||||
$sql = 'SELECT c.confirm_id
|
$sql = 'SELECT c.confirm_id
|
||||||
FROM ' . CAPTCHA_QA_CONFIRM_TABLE . ' c
|
FROM ' . $this->table_qa_confirm . ' c
|
||||||
LEFT JOIN ' . SESSIONS_TABLE . ' s
|
LEFT JOIN ' . SESSIONS_TABLE . ' s
|
||||||
ON (c.session_id = s.session_id)
|
ON (c.session_id = s.session_id)
|
||||||
WHERE s.session_id IS NULL' .
|
WHERE s.session_id IS NULL' .
|
||||||
@ -252,7 +270,7 @@ class qa
|
|||||||
|
|
||||||
if (sizeof($sql_in))
|
if (sizeof($sql_in))
|
||||||
{
|
{
|
||||||
$sql = 'DELETE FROM ' . CAPTCHA_QA_CONFIRM_TABLE . '
|
$sql = 'DELETE FROM ' . $this->table_qa_confirm . '
|
||||||
WHERE ' . $db->sql_in_set('confirm_id', $sql_in);
|
WHERE ' . $db->sql_in_set('confirm_id', $sql_in);
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
}
|
}
|
||||||
@ -277,10 +295,10 @@ class qa
|
|||||||
|
|
||||||
$db_tool = new \phpbb\db\tools($db);
|
$db_tool = new \phpbb\db\tools($db);
|
||||||
|
|
||||||
$tables = array($table_prefix . 'captcha_questions', CAPTCHA_ANSWERS_TABLE, CAPTCHA_QA_CONFIRM_TABLE);
|
$tables = array($this->table_captcha_questions, $this->table_captcha_answers, $this->table_qa_confirm);
|
||||||
|
|
||||||
$schemas = array(
|
$schemas = array(
|
||||||
$table_prefix . 'captcha_questions' => array (
|
$this->table_captcha_questions => array (
|
||||||
'COLUMNS' => array(
|
'COLUMNS' => array(
|
||||||
'question_id' => array('UINT', null, 'auto_increment'),
|
'question_id' => array('UINT', null, 'auto_increment'),
|
||||||
'strict' => array('BOOL', 0),
|
'strict' => array('BOOL', 0),
|
||||||
@ -293,7 +311,7 @@ class qa
|
|||||||
'lang' => array('INDEX', 'lang_iso'),
|
'lang' => array('INDEX', 'lang_iso'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
CAPTCHA_ANSWERS_TABLE => array (
|
$this->table_captcha_answers => array (
|
||||||
'COLUMNS' => array(
|
'COLUMNS' => array(
|
||||||
'question_id' => array('UINT', 0),
|
'question_id' => array('UINT', 0),
|
||||||
'answer_text' => array('STEXT_UNI', ''),
|
'answer_text' => array('STEXT_UNI', ''),
|
||||||
@ -302,7 +320,7 @@ class qa
|
|||||||
'qid' => array('INDEX', 'question_id'),
|
'qid' => array('INDEX', 'question_id'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
CAPTCHA_QA_CONFIRM_TABLE => array (
|
$this->table_qa_confirm => array (
|
||||||
'COLUMNS' => array(
|
'COLUMNS' => array(
|
||||||
'session_id' => array('CHAR:32', ''),
|
'session_id' => array('CHAR:32', ''),
|
||||||
'confirm_id' => array('CHAR:32', ''),
|
'confirm_id' => array('CHAR:32', ''),
|
||||||
@ -386,7 +404,7 @@ class qa
|
|||||||
$this->confirm_id = md5(unique_id($user->ip));
|
$this->confirm_id = md5(unique_id($user->ip));
|
||||||
$this->question = (int) array_rand($this->question_ids);
|
$this->question = (int) array_rand($this->question_ids);
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . CAPTCHA_QA_CONFIRM_TABLE . ' ' . $db->sql_build_array('INSERT', array(
|
$sql = 'INSERT INTO ' . $this->table_qa_confirm . ' ' . $db->sql_build_array('INSERT', array(
|
||||||
'confirm_id' => (string) $this->confirm_id,
|
'confirm_id' => (string) $this->confirm_id,
|
||||||
'session_id' => (string) $user->session_id,
|
'session_id' => (string) $user->session_id,
|
||||||
'lang_iso' => (string) $this->question_lang,
|
'lang_iso' => (string) $this->question_lang,
|
||||||
@ -413,7 +431,7 @@ class qa
|
|||||||
$this->question = (int) array_rand($this->question_ids);
|
$this->question = (int) array_rand($this->question_ids);
|
||||||
$this->solved = 0;
|
$this->solved = 0;
|
||||||
|
|
||||||
$sql = 'UPDATE ' . CAPTCHA_QA_CONFIRM_TABLE . '
|
$sql = 'UPDATE ' . $this->table_qa_confirm . '
|
||||||
SET question_id = ' . (int) $this->question . "
|
SET question_id = ' . (int) $this->question . "
|
||||||
WHERE confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
|
WHERE confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
|
||||||
AND session_id = '" . $db->sql_escape($user->session_id) . "'";
|
AND session_id = '" . $db->sql_escape($user->session_id) . "'";
|
||||||
@ -433,7 +451,7 @@ class qa
|
|||||||
$this->question = (int) array_rand($this->question_ids);
|
$this->question = (int) array_rand($this->question_ids);
|
||||||
$this->solved = 0;
|
$this->solved = 0;
|
||||||
|
|
||||||
$sql = 'UPDATE ' . CAPTCHA_QA_CONFIRM_TABLE . '
|
$sql = 'UPDATE ' . $this->table_qa_confirm . '
|
||||||
SET question_id = ' . (int) $this->question . ",
|
SET question_id = ' . (int) $this->question . ",
|
||||||
attempts = attempts + 1
|
attempts = attempts + 1
|
||||||
WHERE confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
|
WHERE confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
|
||||||
@ -452,7 +470,7 @@ class qa
|
|||||||
global $db, $user;
|
global $db, $user;
|
||||||
|
|
||||||
$sql = 'SELECT confirm_id
|
$sql = 'SELECT confirm_id
|
||||||
FROM ' . CAPTCHA_QA_CONFIRM_TABLE . "
|
FROM ' . $this->table_qa_confirm . "
|
||||||
WHERE
|
WHERE
|
||||||
session_id = '" . $db->sql_escape($user->session_id) . "'
|
session_id = '" . $db->sql_escape($user->session_id) . "'
|
||||||
AND lang_iso = '" . $db->sql_escape($this->question_lang) . "'
|
AND lang_iso = '" . $db->sql_escape($this->question_lang) . "'
|
||||||
@ -482,7 +500,7 @@ class qa
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT con.question_id, attempts, question_text, strict
|
$sql = 'SELECT con.question_id, attempts, question_text, strict
|
||||||
FROM ' . CAPTCHA_QA_CONFIRM_TABLE . ' con, ' . $table_prefix . 'captcha_questions' . " qes
|
FROM ' . $this->table_qa_confirm . ' con, ' . $this->table_captcha_questions . " qes
|
||||||
WHERE con.question_id = qes.question_id
|
WHERE con.question_id = qes.question_id
|
||||||
AND confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
|
AND confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
|
||||||
AND session_id = '" . $db->sql_escape($user->session_id) . "'
|
AND session_id = '" . $db->sql_escape($user->session_id) . "'
|
||||||
@ -516,7 +534,7 @@ class qa
|
|||||||
$answer = ($this->question_strict) ? utf8_normalize_nfc(request_var('qa_answer', '', true)) : utf8_clean_string(utf8_normalize_nfc(request_var('qa_answer', '', true)));
|
$answer = ($this->question_strict) ? utf8_normalize_nfc(request_var('qa_answer', '', true)) : utf8_clean_string(utf8_normalize_nfc(request_var('qa_answer', '', true)));
|
||||||
|
|
||||||
$sql = 'SELECT answer_text
|
$sql = 'SELECT answer_text
|
||||||
FROM ' . CAPTCHA_ANSWERS_TABLE . '
|
FROM ' . $this->table_captcha_answers . '
|
||||||
WHERE question_id = ' . (int) $this->question;
|
WHERE question_id = ' . (int) $this->question;
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
@ -551,7 +569,7 @@ class qa
|
|||||||
{
|
{
|
||||||
global $db, $user;
|
global $db, $user;
|
||||||
|
|
||||||
$sql = 'DELETE FROM ' . CAPTCHA_QA_CONFIRM_TABLE . "
|
$sql = 'DELETE FROM ' . $this->table_qa_confirm . "
|
||||||
WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
|
WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
|
||||||
AND confirm_type = " . (int) $this->type;
|
AND confirm_type = " . (int) $this->type;
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
@ -728,7 +746,7 @@ class qa
|
|||||||
global $db, $template, $table_prefix;
|
global $db, $template, $table_prefix;
|
||||||
|
|
||||||
$sql = 'SELECT *
|
$sql = 'SELECT *
|
||||||
FROM ' . $table_prefix . 'captcha_questions';
|
FROM ' . $this->table_captcha_questions;
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
@ -760,7 +778,7 @@ class qa
|
|||||||
if ($question_id)
|
if ($question_id)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT *
|
$sql = 'SELECT *
|
||||||
FROM ' . $table_prefix . 'captcha_questions' . '
|
FROM ' . $this->table_captcha_questions . '
|
||||||
WHERE question_id = ' . $question_id;
|
WHERE question_id = ' . $question_id;
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
$question = $db->sql_fetchrow($result);
|
$question = $db->sql_fetchrow($result);
|
||||||
@ -774,7 +792,7 @@ class qa
|
|||||||
$question['answers'] = array();
|
$question['answers'] = array();
|
||||||
|
|
||||||
$sql = 'SELECT *
|
$sql = 'SELECT *
|
||||||
FROM ' . CAPTCHA_ANSWERS_TABLE . '
|
FROM ' . $this->table_captcha_answers . '
|
||||||
WHERE question_id = ' . $question_id;
|
WHERE question_id = ' . $question_id;
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
@ -813,7 +831,7 @@ class qa
|
|||||||
global $db, $cache, $table_prefix;
|
global $db, $cache, $table_prefix;
|
||||||
|
|
||||||
// easier to delete all answers than to figure out which to update
|
// easier to delete all answers than to figure out which to update
|
||||||
$sql = 'DELETE FROM ' . CAPTCHA_ANSWERS_TABLE . " WHERE question_id = $question_id";
|
$sql = 'DELETE FROM ' . $this->table_captcha_answers . " WHERE question_id = $question_id";
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
$langs = $this->get_languages();
|
$langs = $this->get_languages();
|
||||||
@ -821,14 +839,14 @@ class qa
|
|||||||
$question_ary['lang_id'] = $langs[$question_ary['lang_iso']]['id'];
|
$question_ary['lang_id'] = $langs[$question_ary['lang_iso']]['id'];
|
||||||
unset($question_ary['answers']);
|
unset($question_ary['answers']);
|
||||||
|
|
||||||
$sql = 'UPDATE ' . $table_prefix . 'captcha_questions' . '
|
$sql = 'UPDATE ' . $this->table_captcha_questions . '
|
||||||
SET ' . $db->sql_build_array('UPDATE', $question_ary) . "
|
SET ' . $db->sql_build_array('UPDATE', $question_ary) . "
|
||||||
WHERE question_id = $question_id";
|
WHERE question_id = $question_id";
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
$this->acp_insert_answers($data, $question_id);
|
$this->acp_insert_answers($data, $question_id);
|
||||||
|
|
||||||
$cache->destroy('sql', $table_prefix . 'captcha_questions');
|
$cache->destroy('sql', $this->table_captcha_questions);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -845,14 +863,14 @@ class qa
|
|||||||
$question_ary['lang_id'] = $langs[$data['lang_iso']]['id'];
|
$question_ary['lang_id'] = $langs[$data['lang_iso']]['id'];
|
||||||
unset($question_ary['answers']);
|
unset($question_ary['answers']);
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . $table_prefix . 'captcha_questions' . ' ' . $db->sql_build_array('INSERT', $question_ary);
|
$sql = 'INSERT INTO ' . $this->table_captcha_questions . ' ' . $db->sql_build_array('INSERT', $question_ary);
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
$question_id = $db->sql_nextid();
|
$question_id = $db->sql_nextid();
|
||||||
|
|
||||||
$this->acp_insert_answers($data, $question_id);
|
$this->acp_insert_answers($data, $question_id);
|
||||||
|
|
||||||
$cache->destroy('sql', $table_prefix . 'captcha_questions');
|
$cache->destroy('sql', $this->table_captcha_questions);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -870,11 +888,11 @@ class qa
|
|||||||
'answer_text' => $answer,
|
'answer_text' => $answer,
|
||||||
);
|
);
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . CAPTCHA_ANSWERS_TABLE . ' ' . $db->sql_build_array('INSERT', $answer_ary);
|
$sql = 'INSERT INTO ' . $this->table_captcha_answers . ' ' . $db->sql_build_array('INSERT', $answer_ary);
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
$cache->destroy('sql', CAPTCHA_ANSWERS_TABLE);
|
$cache->destroy('sql', $this->table_captcha_answers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -884,7 +902,7 @@ class qa
|
|||||||
{
|
{
|
||||||
global $db, $cache, $table_prefix;
|
global $db, $cache, $table_prefix;
|
||||||
|
|
||||||
$tables = array($table_prefix . 'captcha_questions', CAPTCHA_ANSWERS_TABLE);
|
$tables = array($this->table_captcha_questions, $this->table_captcha_answers);
|
||||||
|
|
||||||
foreach ($tables as $table)
|
foreach ($tables as $table)
|
||||||
{
|
{
|
||||||
@ -959,7 +977,7 @@ class qa
|
|||||||
if ($question_id)
|
if ($question_id)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT question_id
|
$sql = 'SELECT question_id
|
||||||
FROM ' . $table_prefix . 'captcha_questions' . "
|
FROM ' . $this->table_captcha_questions . "
|
||||||
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'
|
WHERE lang_iso = '" . $db->sql_escape($config['default_lang']) . "'
|
||||||
AND question_id <> " . (int) $question_id;
|
AND question_id <> " . (int) $question_id;
|
||||||
$result = $db->sql_query_limit($sql, 1);
|
$result = $db->sql_query_limit($sql, 1);
|
||||||
|
Reference in New Issue
Block a user