We'll try and get it right this time ...

git-svn-id: file:///svn/phpbb/trunk@3265 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Paul S. Owen 2003-01-07 14:45:12 +00:00
parent d2e324fe0b
commit 493a689b1e
4 changed files with 16 additions and 21 deletions

View file

@ -403,14 +403,9 @@ class sql_db
return ( $query_id ) ? mssql_free_result($query_id) : false; return ( $query_id ) ? mssql_free_result($query_id) : false;
} }
function sql_quote($sql) function sql_escape($msg)
{ {
return str_replace("\'", "''", $sql); return str_replace("'", "''", str_replace('\\', '\\\\', $msg));
}
function sql_escape($sql)
{
return str_replace("'", "''", str_replace('\\', '\\\\', $sql));
} }
function sql_error($query_id = 0) function sql_error($query_id = 0)

View file

@ -379,6 +379,11 @@ class sql_db
return ( $query_id ) ? @mysql_free_result($query_id) : false; return ( $query_id ) ? @mysql_free_result($query_id) : false;
} }
function sql_escape($msg)
{
return mysql_escape_string($msg);
}
function sql_error($sql = '') function sql_error($sql = '')
{ {
if ( !$this->return_on_error ) if ( !$this->return_on_error )

View file

@ -379,11 +379,6 @@ if (!empty($_REQUEST['explain']))
return ( $query_id ) ? @mysql_free_result($query_id) : false; return ( $query_id ) ? @mysql_free_result($query_id) : false;
} }
function sql_quote($msg)
{
return mysql_escape_string($msg);
}
function sql_escape($msg) function sql_escape($msg)
{ {
return mysql_escape_string($msg); return mysql_escape_string($msg);

View file

@ -312,7 +312,7 @@ if (isset($post))
{ {
$topic_sql = array( $topic_sql = array(
'forum_id' => intval($forum_id), 'forum_id' => intval($forum_id),
'topic_title' => $subject, 'topic_title' => $db->sql_escape(htmlspecialchars($subject)),
'topic_poster' => intval($user->data['user_id']), 'topic_poster' => intval($user->data['user_id']),
'topic_time' => $current_time, 'topic_time' => $current_time,
'topic_type' => (!empty($enable_icons)) ? intval($topic_type) : 0, 'topic_type' => (!empty($enable_icons)) ? intval($topic_type) : 0,
@ -322,7 +322,7 @@ if (isset($post))
if (!empty($poll_options)) if (!empty($poll_options))
{ {
$topic_sql = array_merge($topic_sql, array( $topic_sql = array_merge($topic_sql, array(
'poll_title' => $poll_title, 'poll_title' => $db->sql_escape($poll_title),
'poll_start' => (!empty($poll_start)) ? $poll_start : $current_time, 'poll_start' => (!empty($poll_start)) ? $poll_start : $current_time,
'poll_length' => $poll_length * 3600 'poll_length' => $poll_length * 3600
)); ));
@ -338,7 +338,7 @@ if (isset($post))
'topic_id' => intval($topic_id), 'topic_id' => intval($topic_id),
'forum_id' => intval($forum_id), 'forum_id' => intval($forum_id),
'poster_id' => ($mode == 'edit') ? intval($poster_id) : intval($user->data['user_id']), 'poster_id' => ($mode == 'edit') ? intval($poster_id) : intval($user->data['user_id']),
'post_username' => ($username != '') ? $username : '', 'post_username' => ($username != '') ? $db->sql_escape($username) : '',
'poster_ip' => $user->ip, 'poster_ip' => $user->ip,
'post_time' => $current_time, 'post_time' => $current_time,
'post_approved' => (!empty($enable_moderate) && !$auth->acl_gets('f_ignorequeue', 'm_', 'a_', intval($forum_id))) ? 0 : 1, 'post_approved' => (!empty($enable_moderate) && !$auth->acl_gets('f_ignorequeue', 'm_', 'a_', intval($forum_id))) ? 0 : 1,
@ -356,7 +356,7 @@ if (isset($post))
// post_text ... may merge into posts table // post_text ... may merge into posts table
$post_text_sql = array( $post_text_sql = array(
'post_subject' => $db->sql_quote(htmlspecialchars($subject)), 'post_subject' => $db->sql_escape(htmlspecialchars($subject)),
'bbcode_uid' => $bbcode_uid, 'bbcode_uid' => $bbcode_uid,
'post_id' => intval($post_id), 'post_id' => intval($post_id),
); );
@ -364,10 +364,10 @@ if (isset($post))
{ {
$post_text_sql = array_merge($post_text_sql, array( $post_text_sql = array_merge($post_text_sql, array(
'post_checksum' => $message_md5, 'post_checksum' => $message_md5,
'post_text' => $db->sql_quote($message), 'post_text' => $db->sql_escape($message),
)); ));
} }
echo $sql = ($mode == 'edit') ? 'UPDATE ' . POSTS_TEXT_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $post_text_sql) . ' WHERE post_id = ' . intval($post_id) : 'INSERT INTO ' . POSTS_TEXT_TABLE . ' ' . $db->sql_build_array('INSERT', $post_text_sql); $sql = ($mode == 'edit') ? 'UPDATE ' . POSTS_TEXT_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $post_text_sql) . ' WHERE post_id = ' . intval($post_id) : 'INSERT INTO ' . POSTS_TEXT_TABLE . ' ' . $db->sql_build_array('INSERT', $post_text_sql);
$db->sql_query($sql); $db->sql_query($sql);
// poll options // poll options
@ -392,13 +392,13 @@ if (isset($post))
if (empty($cur_poll_options[$i])) if (empty($cur_poll_options[$i]))
{ {
$sql = "INSERT INTO phpbb_poll_results (topic_id, poll_option_text) $sql = "INSERT INTO phpbb_poll_results (topic_id, poll_option_text)
VALUES (" . intval($topic_id) . ", '" . sql_quote($poll_options[$i]) . "')"; VALUES (" . intval($topic_id) . ", '" . $db->sql_escape($poll_options[$i]) . "')";
$db->sql_query($sql); $db->sql_query($sql);
} }
else if ($poll_options[$i] != $cur_poll_options[$i]) else if ($poll_options[$i] != $cur_poll_options[$i])
{ {
$sql = "UPDATE phpbb_poll_results $sql = "UPDATE phpbb_poll_results
SET poll_option_text = '" . sql_quote($poll_options[$i]) . "' SET poll_option_text = '" . $db->sql_escape($poll_options[$i]) . "'
WHERE poll_option_id = " . $cur_poll_options[$i]['poll_option_id']; WHERE poll_option_id = " . $cur_poll_options[$i]['poll_option_id'];
$db->sql_query($sql); $db->sql_query($sql);
} }
@ -431,7 +431,7 @@ if (isset($post))
'forum_last_post_id' => intval($post_id), 'forum_last_post_id' => intval($post_id),
'forum_last_post_time' => $current_time, 'forum_last_post_time' => $current_time,
'forum_last_poster_id' => intval($user->data['user_id']), 'forum_last_poster_id' => intval($user->data['user_id']),
'forum_last_poster_name'=> ($user->data['user_id'] == ANONYMOUS) ? $username : $user->data['username'], 'forum_last_poster_name'=> ($user->data['user_id'] == ANONYMOUS) ? $db->sql_escape($username) : $user->data['username'],
); );
$sql = 'UPDATE ' . FORUMS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $forum_sql) . ', forum_posts = forum_posts + 1' . $forum_topics_sql . ' WHERE forum_id IN (' . $forum_ids . ')'; $sql = 'UPDATE ' . FORUMS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $forum_sql) . ', forum_posts = forum_posts + 1' . $forum_topics_sql . ' WHERE forum_id IN (' . $forum_ids . ')';
$db->sql_query($sql); $db->sql_query($sql);