Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Q
question2answer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
outils
question2answer
Commits
e871abe5
Commit
e871abe5
authored
Jul 27, 2017
by
Scott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use hex values for IPs in SQL queries
Solves issues with binary when displaying queries, such as in debug mode.
parent
f91a1bda
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
59 additions
and
59 deletions
+59
-59
admin.php
qa-include/db/admin.php
+2
-2
blobs.php
qa-include/db/blobs.php
+2
-2
cookies.php
qa-include/db/cookies.php
+4
-4
hotness.php
qa-include/db/hotness.php
+4
-4
install.php
qa-include/db/install.php
+10
-10
limits.php
qa-include/db/limits.php
+4
-4
post-create.php
qa-include/db/post-create.php
+2
-2
post-update.php
qa-include/db/post-update.php
+12
-12
selects.php
qa-include/db/selects.php
+10
-10
users.php
qa-include/db/users.php
+9
-9
No files found.
qa-include/db/admin.php
View file @
e871abe5
...
@@ -170,8 +170,8 @@ function qa_db_get_user_visible_postids($userid)
...
@@ -170,8 +170,8 @@ function qa_db_get_user_visible_postids($userid)
function
qa_db_get_ip_visible_postids
(
$ip
)
function
qa_db_get_ip_visible_postids
(
$ip
)
{
{
return
qa_db_read_all_values
(
qa_db_query_sub
(
return
qa_db_read_all_values
(
qa_db_query_sub
(
"SELECT postid FROM ^posts WHERE createip=
$
AND type IN ('Q', 'A', 'C', 'Q_QUEUED', 'A_QUEUED', 'C_QUEUED')"
,
"SELECT postid FROM ^posts WHERE createip=
UNHEX($)
AND type IN ('Q', 'A', 'C', 'Q_QUEUED', 'A_QUEUED', 'C_QUEUED')"
,
@
inet_pton
(
$ip
)
bin2hex
(
@
inet_pton
(
$ip
)
)
));
));
}
}
...
...
qa-include/db/blobs.php
View file @
e871abe5
...
@@ -47,8 +47,8 @@ function qa_db_blob_create($content, $format, $sourcefilename = null, $userid =
...
@@ -47,8 +47,8 @@ function qa_db_blob_create($content, $format, $sourcefilename = null, $userid =
continue
;
continue
;
qa_db_query_sub
(
qa_db_query_sub
(
'INSERT INTO ^blobs (blobid, format, content, filename, userid, cookieid, createip, created) VALUES (#, $, $, $, $, #,
$
, NOW())'
,
'INSERT INTO ^blobs (blobid, format, content, filename, userid, cookieid, createip, created) VALUES (#, $, $, $, $, #,
UNHEX($)
, NOW())'
,
$blobid
,
$format
,
$content
,
$sourcefilename
,
$userid
,
$cookieid
,
@
inet_pton
(
$ip
)
$blobid
,
$format
,
$content
,
$sourcefilename
,
$userid
,
$cookieid
,
bin2hex
(
@
inet_pton
(
$ip
)
)
);
);
return
$blobid
;
return
$blobid
;
...
...
qa-include/db/cookies.php
View file @
e871abe5
...
@@ -41,8 +41,8 @@ function qa_db_cookie_create($ipaddress)
...
@@ -41,8 +41,8 @@ function qa_db_cookie_create($ipaddress)
qa_db_query_sub
(
qa_db_query_sub
(
'INSERT INTO ^cookies (cookieid, created, createip) '
.
'INSERT INTO ^cookies (cookieid, created, createip) '
.
'VALUES (#, NOW(),
$
)'
,
'VALUES (#, NOW(),
UNHEX($)
)'
,
$cookieid
,
@
inet_pton
(
$ipaddress
)
$cookieid
,
bin2hex
(
@
inet_pton
(
$ipaddress
)
)
);
);
return
$cookieid
;
return
$cookieid
;
...
@@ -60,8 +60,8 @@ function qa_db_cookie_create($ipaddress)
...
@@ -60,8 +60,8 @@ function qa_db_cookie_create($ipaddress)
function
qa_db_cookie_written
(
$cookieid
,
$ipaddress
)
function
qa_db_cookie_written
(
$cookieid
,
$ipaddress
)
{
{
qa_db_query_sub
(
qa_db_query_sub
(
'UPDATE ^cookies SET written=NOW(), writeip=
$
WHERE cookieid=#'
,
'UPDATE ^cookies SET written=NOW(), writeip=
UNHEX($)
WHERE cookieid=#'
,
@
inet_pton
(
$ipaddress
),
$cookieid
bin2hex
(
@
inet_pton
(
$ipaddress
)
),
$cookieid
);
);
}
}
...
...
qa-include/db/hotness.php
View file @
e871abe5
...
@@ -49,8 +49,8 @@ function qa_db_hotness_update($firstpostid, $lastpostid = null, $viewincrement =
...
@@ -49,8 +49,8 @@ function qa_db_hotness_update($firstpostid, $lastpostid = null, $viewincrement =
'(a.acount+0.0)*# + '
.
'(a.acount+0.0)*# + '
.
'(a.netvotes+0.0)*# + '
.
'(a.netvotes+0.0)*# + '
.
'(a.views+0.0+#)*#'
.
'(a.views+0.0+#)*#'
.
')'
.
(
$viewincrement
?
', x.views=x.views+1, x.lastviewip=
$
'
:
''
)
.
')'
.
(
$viewincrement
?
', x.views=x.views+1, x.lastviewip=
UNHEX($)
'
:
''
)
.
' WHERE x.postid=a.postid'
.
(
$viewincrement
?
' AND (x.lastviewip IS NULL OR x.lastviewip!=
$
)'
:
''
);
' WHERE x.postid=a.postid'
.
(
$viewincrement
?
' AND (x.lastviewip IS NULL OR x.lastviewip!=
UNHEX($)
)'
:
''
);
// Additional multiples based on empirical analysis of activity on Q2A meta site to give approx equal influence for all factors
// Additional multiples based on empirical analysis of activity on Q2A meta site to give approx equal influence for all factors
...
@@ -66,8 +66,8 @@ function qa_db_hotness_update($firstpostid, $lastpostid = null, $viewincrement =
...
@@ -66,8 +66,8 @@ function qa_db_hotness_update($firstpostid, $lastpostid = null, $viewincrement =
);
);
if
(
$viewincrement
)
{
if
(
$viewincrement
)
{
$ip
bin
=
@
inet_pton
(
qa_remote_ip_address
(
));
$ip
Hex
=
bin2hex
(
@
inet_pton
(
qa_remote_ip_address
()
));
array_push
(
$arguments
,
$ip
bin
,
$ipbin
);
array_push
(
$arguments
,
$ip
Hex
,
$ipHex
);
}
}
qa_db_query_raw
(
qa_db_apply_sub
(
$query
,
$arguments
));
qa_db_query_raw
(
qa_db_apply_sub
(
$query
,
$arguments
));
...
...
qa-include/db/install.php
View file @
e871abe5
...
@@ -100,7 +100,7 @@ function qa_db_table_definitions()
...
@@ -100,7 +100,7 @@ function qa_db_table_definitions()
'users'
=>
array
(
'users'
=>
array
(
'userid'
=>
$useridcoltype
.
' NOT NULL AUTO_INCREMENT'
,
'userid'
=>
$useridcoltype
.
' NOT NULL AUTO_INCREMENT'
,
'created'
=>
'DATETIME NOT NULL'
,
'created'
=>
'DATETIME NOT NULL'
,
'createip'
=>
'VARBINARY(16) NOT NULL'
,
// INET_ATON of IP address when created
'createip'
=>
'VARBINARY(16) NOT NULL'
,
// INET
6
_ATON of IP address when created
'email'
=>
'VARCHAR('
.
QA_DB_MAX_EMAIL_LENGTH
.
') NOT NULL'
,
'email'
=>
'VARCHAR('
.
QA_DB_MAX_EMAIL_LENGTH
.
') NOT NULL'
,
'handle'
=>
'VARCHAR('
.
QA_DB_MAX_HANDLE_LENGTH
.
') NOT NULL'
,
// username
'handle'
=>
'VARCHAR('
.
QA_DB_MAX_HANDLE_LENGTH
.
') NOT NULL'
,
// username
'avatarblobid'
=>
'BIGINT UNSIGNED'
,
// blobid of stored avatar
'avatarblobid'
=>
'BIGINT UNSIGNED'
,
// blobid of stored avatar
...
@@ -111,9 +111,9 @@ function qa_db_table_definitions()
...
@@ -111,9 +111,9 @@ function qa_db_table_definitions()
'passhash'
=>
'VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL'
,
// password_hash
'passhash'
=>
'VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL'
,
// password_hash
'level'
=>
'TINYINT UNSIGNED NOT NULL'
,
// basic, editor, admin, etc...
'level'
=>
'TINYINT UNSIGNED NOT NULL'
,
// basic, editor, admin, etc...
'loggedin'
=>
'DATETIME NOT NULL'
,
// time of last login
'loggedin'
=>
'DATETIME NOT NULL'
,
// time of last login
'loginip'
=>
'VARBINARY(16) NOT NULL'
,
// INET_ATON of IP address of last login
'loginip'
=>
'VARBINARY(16) NOT NULL'
,
// INET
6
_ATON of IP address of last login
'written'
=>
'DATETIME'
,
// time of last write action done by user
'written'
=>
'DATETIME'
,
// time of last write action done by user
'writeip'
=>
'VARBINARY(16)'
,
// INET_ATON of IP address of last write action done by user
'writeip'
=>
'VARBINARY(16)'
,
// INET
6
_ATON of IP address of last write action done by user
'emailcode'
=>
'CHAR(8) CHARACTER SET ascii NOT NULL DEFAULT \'\''
,
// for email confirmation or password reset
'emailcode'
=>
'CHAR(8) CHARACTER SET ascii NOT NULL DEFAULT \'\''
,
// for email confirmation or password reset
'sessioncode'
=>
'CHAR(8) CHARACTER SET ascii NOT NULL DEFAULT \'\''
,
// for comparing against session cookie in browser
'sessioncode'
=>
'CHAR(8) CHARACTER SET ascii NOT NULL DEFAULT \'\''
,
// for comparing against session cookie in browser
'sessionsource'
=>
'VARCHAR (16) CHARACTER SET ascii DEFAULT \'\''
,
// e.g. facebook, openid, etc...
'sessionsource'
=>
'VARCHAR (16) CHARACTER SET ascii DEFAULT \'\''
,
// e.g. facebook, openid, etc...
...
@@ -227,9 +227,9 @@ function qa_db_table_definitions()
...
@@ -227,9 +227,9 @@ function qa_db_table_definitions()
'cookies'
=>
array
(
'cookies'
=>
array
(
'cookieid'
=>
'BIGINT UNSIGNED NOT NULL'
,
'cookieid'
=>
'BIGINT UNSIGNED NOT NULL'
,
'created'
=>
'DATETIME NOT NULL'
,
'created'
=>
'DATETIME NOT NULL'
,
'createip'
=>
'VARBINARY(16) NOT NULL'
,
// INET_ATON of IP address when cookie created
'createip'
=>
'VARBINARY(16) NOT NULL'
,
// INET
6
_ATON of IP address when cookie created
'written'
=>
'DATETIME'
,
// time of last write action done by anon user with cookie
'written'
=>
'DATETIME'
,
// time of last write action done by anon user with cookie
'writeip'
=>
'VARBINARY(16)'
,
// INET_ATON of IP address of last write action done by anon user with cookie
'writeip'
=>
'VARBINARY(16)'
,
// INET
6
_ATON of IP address of last write action done by anon user with cookie
'PRIMARY KEY (cookieid)'
,
'PRIMARY KEY (cookieid)'
,
),
),
...
@@ -293,13 +293,13 @@ function qa_db_table_definitions()
...
@@ -293,13 +293,13 @@ function qa_db_table_definitions()
'closedbyid'
=>
'INT UNSIGNED'
,
// not null means question is closed
'closedbyid'
=>
'INT UNSIGNED'
,
// not null means question is closed
'userid'
=>
$useridcoltype
,
// which user wrote it
'userid'
=>
$useridcoltype
,
// which user wrote it
'cookieid'
=>
'BIGINT UNSIGNED'
,
// which cookie wrote it, if an anonymous post
'cookieid'
=>
'BIGINT UNSIGNED'
,
// which cookie wrote it, if an anonymous post
'createip'
=>
'VARBINARY(16)'
,
// INET_ATON of IP address used to create the post
'createip'
=>
'VARBINARY(16)'
,
// INET
6
_ATON of IP address used to create the post
'lastuserid'
=>
$useridcoltype
,
// which user last modified it
'lastuserid'
=>
$useridcoltype
,
// which user last modified it
'lastip'
=>
'VARBINARY(16)'
,
// INET_ATON of IP address which last modified the post
'lastip'
=>
'VARBINARY(16)'
,
// INET
6
_ATON of IP address which last modified the post
'upvotes'
=>
'SMALLINT UNSIGNED NOT NULL DEFAULT 0'
,
'upvotes'
=>
'SMALLINT UNSIGNED NOT NULL DEFAULT 0'
,
'downvotes'
=>
'SMALLINT UNSIGNED NOT NULL DEFAULT 0'
,
'downvotes'
=>
'SMALLINT UNSIGNED NOT NULL DEFAULT 0'
,
'netvotes'
=>
'SMALLINT NOT NULL DEFAULT 0'
,
'netvotes'
=>
'SMALLINT NOT NULL DEFAULT 0'
,
'lastviewip'
=>
'VARBINARY(16)'
,
// INET_ATON of IP address which last viewed the post
'lastviewip'
=>
'VARBINARY(16)'
,
// INET
6
_ATON of IP address which last viewed the post
'views'
=>
'INT UNSIGNED NOT NULL DEFAULT 0'
,
'views'
=>
'INT UNSIGNED NOT NULL DEFAULT 0'
,
'hotness'
=>
'FLOAT'
,
'hotness'
=>
'FLOAT'
,
'flagcount'
=>
'TINYINT UNSIGNED NOT NULL DEFAULT 0'
,
'flagcount'
=>
'TINYINT UNSIGNED NOT NULL DEFAULT 0'
,
...
@@ -348,7 +348,7 @@ function qa_db_table_definitions()
...
@@ -348,7 +348,7 @@ function qa_db_table_definitions()
'filename'
=>
'VARCHAR('
.
QA_DB_MAX_BLOB_FILE_NAME_LENGTH
.
')'
,
// name of source file (if appropriate)
'filename'
=>
'VARCHAR('
.
QA_DB_MAX_BLOB_FILE_NAME_LENGTH
.
')'
,
// name of source file (if appropriate)
'userid'
=>
$useridcoltype
,
// which user created it
'userid'
=>
$useridcoltype
,
// which user created it
'cookieid'
=>
'BIGINT UNSIGNED'
,
// which cookie created it
'cookieid'
=>
'BIGINT UNSIGNED'
,
// which cookie created it
'createip'
=>
'VARBINARY(16)'
,
// INET_ATON of IP address that created it
'createip'
=>
'VARBINARY(16)'
,
// INET
6
_ATON of IP address that created it
'created'
=>
'DATETIME'
,
// when it was created
'created'
=>
'DATETIME'
,
// when it was created
'PRIMARY KEY (blobid)'
,
'PRIMARY KEY (blobid)'
,
),
),
...
@@ -455,7 +455,7 @@ function qa_db_table_definitions()
...
@@ -455,7 +455,7 @@ function qa_db_table_definitions()
// most columns in iplimits have the same meaning as those in userlimits
// most columns in iplimits have the same meaning as those in userlimits
'iplimits'
=>
array
(
'iplimits'
=>
array
(
'ip'
=>
'VARBINARY(16) NOT NULL'
,
// INET_ATON of IP address
'ip'
=>
'VARBINARY(16) NOT NULL'
,
// INET
6
_ATON of IP address
'action'
=>
'CHAR(1) CHARACTER SET ascii NOT NULL'
,
'action'
=>
'CHAR(1) CHARACTER SET ascii NOT NULL'
,
'period'
=>
'INT UNSIGNED NOT NULL'
,
'period'
=>
'INT UNSIGNED NOT NULL'
,
'count'
=>
'SMALLINT UNSIGNED NOT NULL'
,
'count'
=>
'SMALLINT UNSIGNED NOT NULL'
,
...
...
qa-include/db/limits.php
View file @
e871abe5
...
@@ -46,8 +46,8 @@ function qa_db_limits_get($userid, $ip, $action)
...
@@ -46,8 +46,8 @@ function qa_db_limits_get($userid, $ip, $action)
}
}
if
(
isset
(
$ip
))
{
if
(
isset
(
$ip
))
{
$selects
[]
=
"(SELECT 'ip' AS limitkey, period, count FROM ^iplimits WHERE ip=
$
AND action=$)"
;
$selects
[]
=
"(SELECT 'ip' AS limitkey, period, count FROM ^iplimits WHERE ip=
UNHEX($)
AND action=$)"
;
$arguments
[]
=
@
inet_pton
(
$ip
);
$arguments
[]
=
bin2hex
(
@
inet_pton
(
$ip
)
);
$arguments
[]
=
$action
;
$arguments
[]
=
$action
;
}
}
...
@@ -87,8 +87,8 @@ function qa_db_limits_user_add($userid, $action, $period, $count)
...
@@ -87,8 +87,8 @@ function qa_db_limits_user_add($userid, $action, $period, $count)
function
qa_db_limits_ip_add
(
$ip
,
$action
,
$period
,
$count
)
function
qa_db_limits_ip_add
(
$ip
,
$action
,
$period
,
$count
)
{
{
qa_db_query_sub
(
qa_db_query_sub
(
'INSERT INTO ^iplimits (ip, action, period, count) VALUES (
$
, $, #, #) '
.
'INSERT INTO ^iplimits (ip, action, period, count) VALUES (
UNHEX($)
, $, #, #) '
.
'ON DUPLICATE KEY UPDATE count=IF(period=#, count+#, #), period=#'
,
'ON DUPLICATE KEY UPDATE count=IF(period=#, count+#, #), period=#'
,
@
inet_pton
(
$ip
),
$action
,
$period
,
$count
,
$period
,
$count
,
$count
,
$period
bin2hex
(
@
inet_pton
(
$ip
)
),
$action
,
$period
,
$count
,
$period
,
$count
,
$count
,
$period
);
);
}
}
qa-include/db/post-create.php
View file @
e871abe5
...
@@ -46,8 +46,8 @@ function qa_db_post_create($type, $parentid, $userid, $cookieid, $ip, $title, $c
...
@@ -46,8 +46,8 @@ function qa_db_post_create($type, $parentid, $userid, $cookieid, $ip, $title, $c
{
{
qa_db_query_sub
(
qa_db_query_sub
(
'INSERT INTO ^posts (categoryid, type, parentid, userid, cookieid, createip, title, content, format, tags, notify, name, created) '
.
'INSERT INTO ^posts (categoryid, type, parentid, userid, cookieid, createip, title, content, format, tags, notify, name, created) '
.
'VALUES (#, $, #, $, #,
$
, $, $, $, $, $, $, NOW())'
,
'VALUES (#, $, #, $, #,
UNHEX($)
, $, $, $, $, $, $, NOW())'
,
$categoryid
,
$type
,
$parentid
,
$userid
,
$cookieid
,
@
inet_pton
(
$ip
),
$title
,
$content
,
$format
,
$tagstring
,
$notify
,
$name
$categoryid
,
$type
,
$parentid
,
$userid
,
$cookieid
,
bin2hex
(
@
inet_pton
(
$ip
)
),
$title
,
$content
,
$format
,
$tagstring
,
$notify
,
$name
);
);
return
qa_db_last_insert_id
();
return
qa_db_last_insert_id
();
...
...
qa-include/db/post-update.php
View file @
e871abe5
...
@@ -52,8 +52,8 @@ function qa_db_post_set_selchildid($questionid, $selchildid, $lastuserid = null,
...
@@ -52,8 +52,8 @@ function qa_db_post_set_selchildid($questionid, $selchildid, $lastuserid = null,
if
(
isset
(
$selchildid
)
&&
isset
(
$lastuserid
)
&&
isset
(
$lastip
))
{
if
(
isset
(
$selchildid
)
&&
isset
(
$lastuserid
)
&&
isset
(
$lastip
))
{
qa_db_query_sub
(
qa_db_query_sub
(
"UPDATE ^posts SET updated=NOW(), updatetype=$, lastuserid=$, lastip=
$
WHERE postid=#"
,
"UPDATE ^posts SET updated=NOW(), updatetype=$, lastuserid=$, lastip=
UNHEX($)
WHERE postid=#"
,
QA_UPDATE_SELECTED
,
$lastuserid
,
@
inet_pton
(
$lastip
),
$selchildid
QA_UPDATE_SELECTED
,
$lastuserid
,
bin2hex
(
@
inet_pton
(
$lastip
)
),
$selchildid
);
);
}
}
}
}
...
@@ -71,8 +71,8 @@ function qa_db_post_set_closed($questionid, $closedbyid, $lastuserid = null, $la
...
@@ -71,8 +71,8 @@ function qa_db_post_set_closed($questionid, $closedbyid, $lastuserid = null, $la
{
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
qa_db_query_sub
(
qa_db_query_sub
(
"UPDATE ^posts SET closedbyid=#, updated=NOW(), updatetype=$, lastuserid=$, lastip=
$
WHERE postid=#"
,
"UPDATE ^posts SET closedbyid=#, updated=NOW(), updatetype=$, lastuserid=$, lastip=
UNHEX($)
WHERE postid=#"
,
$closedbyid
,
QA_UPDATE_CLOSED
,
$lastuserid
,
@
inet_pton
(
$lastip
),
$questionid
$closedbyid
,
QA_UPDATE_CLOSED
,
$lastuserid
,
bin2hex
(
@
inet_pton
(
$lastip
)
),
$questionid
);
);
}
else
{
}
else
{
qa_db_query_sub
(
qa_db_query_sub
(
...
@@ -95,8 +95,8 @@ function qa_db_post_set_type($postid, $type, $lastuserid = null, $lastip = null,
...
@@ -95,8 +95,8 @@ function qa_db_post_set_type($postid, $type, $lastuserid = null, $lastip = null,
{
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
qa_db_query_sub
(
qa_db_query_sub
(
'UPDATE ^posts SET type=$, updated=NOW(), updatetype=$, lastuserid=$, lastip=
$
WHERE postid=#'
,
'UPDATE ^posts SET type=$, updated=NOW(), updatetype=$, lastuserid=$, lastip=
UNHEX($)
WHERE postid=#'
,
$type
,
$updatetype
,
$lastuserid
,
@
inet_pton
(
$lastip
),
$postid
$type
,
$updatetype
,
$lastuserid
,
bin2hex
(
@
inet_pton
(
$lastip
)
),
$postid
);
);
}
else
{
}
else
{
qa_db_query_sub
(
qa_db_query_sub
(
...
@@ -119,8 +119,8 @@ function qa_db_post_set_parent($postid, $parentid, $lastuserid = null, $lastip =
...
@@ -119,8 +119,8 @@ function qa_db_post_set_parent($postid, $parentid, $lastuserid = null, $lastip =
{
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
qa_db_query_sub
(
qa_db_query_sub
(
"UPDATE ^posts SET parentid=#, updated=NOW(), updatetype=$, lastuserid=$, lastip=
$
WHERE postid=#"
,
"UPDATE ^posts SET parentid=#, updated=NOW(), updatetype=$, lastuserid=$, lastip=
UNHEX($)
WHERE postid=#"
,
$parentid
,
QA_UPDATE_PARENT
,
$lastuserid
,
@
inet_pton
(
$lastip
),
$postid
$parentid
,
QA_UPDATE_PARENT
,
$lastuserid
,
bin2hex
(
@
inet_pton
(
$lastip
)
),
$postid
);
);
}
else
{
}
else
{
qa_db_query_sub
(
qa_db_query_sub
(
...
@@ -151,8 +151,8 @@ function qa_db_post_set_content($postid, $title, $content, $format, $tagstring,
...
@@ -151,8 +151,8 @@ function qa_db_post_set_content($postid, $title, $content, $format, $tagstring,
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
// use COALESCE() for name since $name=null means it should not be modified (for backwards compatibility)
// use COALESCE() for name since $name=null means it should not be modified (for backwards compatibility)
qa_db_query_sub
(
qa_db_query_sub
(
'UPDATE ^posts SET title=$, content=$, format=$, tags=$, name=COALESCE($, name), notify=$, updated=NOW(), updatetype=$, lastuserid=$, lastip=
$
WHERE postid=#'
,
'UPDATE ^posts SET title=$, content=$, format=$, tags=$, name=COALESCE($, name), notify=$, updated=NOW(), updatetype=$, lastuserid=$, lastip=
UNHEX($)
WHERE postid=#'
,
$title
,
$content
,
$format
,
$tagstring
,
$name
,
$notify
,
$updatetype
,
$lastuserid
,
@
inet_pton
(
$lastip
),
$postid
$title
,
$content
,
$format
,
$tagstring
,
$name
,
$notify
,
$updatetype
,
$lastuserid
,
bin2hex
(
@
inet_pton
(
$lastip
)
),
$postid
);
);
}
else
{
}
else
{
qa_db_query_sub
(
qa_db_query_sub
(
...
@@ -189,8 +189,8 @@ function qa_db_post_set_category($postid, $categoryid, $lastuserid = null, $last
...
@@ -189,8 +189,8 @@ function qa_db_post_set_category($postid, $categoryid, $lastuserid = null, $last
{
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
if
(
isset
(
$lastuserid
)
||
isset
(
$lastip
))
{
qa_db_query_sub
(
qa_db_query_sub
(
"UPDATE ^posts SET categoryid=#, updated=NOW(), updatetype=$, lastuserid=$, lastip=
$
WHERE postid=#"
,
"UPDATE ^posts SET categoryid=#, updated=NOW(), updatetype=$, lastuserid=$, lastip=
UNHEX($)
WHERE postid=#"
,
$categoryid
,
QA_UPDATE_CATEGORY
,
$lastuserid
,
@
inet_pton
(
$lastip
),
$postid
$categoryid
,
QA_UPDATE_CATEGORY
,
$lastuserid
,
bin2hex
(
@
inet_pton
(
$lastip
)
),
$postid
);
);
}
else
{
}
else
{
qa_db_query_sub
(
qa_db_query_sub
(
...
...
qa-include/db/selects.php
View file @
e871abe5
...
@@ -372,11 +372,11 @@ function qa_db_qs_selectspec($voteuserid, $sort, $start, $categoryslugs = null,
...
@@ -372,11 +372,11 @@ function qa_db_qs_selectspec($voteuserid, $sort, $start, $categoryslugs = null,
$selectspec
[
'source'
]
.=
$selectspec
[
'source'
]
.=
" JOIN (SELECT postid FROM ^posts WHERE "
.
" JOIN (SELECT postid FROM ^posts WHERE "
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
(
isset
(
$createip
)
?
"createip=
$
AND "
:
""
)
.
(
isset
(
$createip
)
?
"createip=
UNHEX($)
AND "
:
""
)
.
"type=$ "
.
$sortsql
.
" LIMIT #,#) y ON ^posts.postid=y.postid"
;
"type=$ "
.
$sortsql
.
" LIMIT #,#) y ON ^posts.postid=y.postid"
;
if
(
isset
(
$createip
))
{
if
(
isset
(
$createip
))
{
$selectspec
[
'arguments'
][]
=
@
inet_pton
(
$createip
);
$selectspec
[
'arguments'
][]
=
bin2hex
(
@
inet_pton
(
$createip
)
);
}
}
array_push
(
$selectspec
[
'arguments'
],
$type
,
$start
,
$count
);
array_push
(
$selectspec
[
'arguments'
],
$type
,
$start
,
$count
);
...
@@ -474,12 +474,12 @@ function qa_db_recent_a_qs_selectspec($voteuserid, $start, $categoryslugs = null
...
@@ -474,12 +474,12 @@ function qa_db_recent_a_qs_selectspec($voteuserid, $start, $categoryslugs = null
" LEFT JOIN ^userpoints AS auserpoints ON aposts.userid=auserpoints.userid"
.
" LEFT JOIN ^userpoints AS auserpoints ON aposts.userid=auserpoints.userid"
.
" JOIN (SELECT postid FROM ^posts WHERE "
.
" JOIN (SELECT postid FROM ^posts WHERE "
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
(
isset
(
$createip
)
?
"createip=
$
AND "
:
""
)
.
(
isset
(
$createip
)
?
"createip=
UNHEX($)
AND "
:
""
)
.
"type=$ ORDER BY ^posts.created DESC LIMIT #,#) y ON aposts.postid=y.postid"
.
"type=$ ORDER BY ^posts.created DESC LIMIT #,#) y ON aposts.postid=y.postid"
.
(
$specialtype
?
''
:
" WHERE ^posts.type='Q'"
);
(
$specialtype
?
''
:
" WHERE ^posts.type='Q'"
);
if
(
isset
(
$createip
))
{
if
(
isset
(
$createip
))
{
$selectspec
[
'arguments'
][]
=
@
inet_pton
(
$createip
);
$selectspec
[
'arguments'
][]
=
bin2hex
(
@
inet_pton
(
$createip
)
);
}
}
array_push
(
$selectspec
[
'arguments'
],
$type
,
$start
,
$count
);
array_push
(
$selectspec
[
'arguments'
],
$type
,
$start
,
$count
);
...
@@ -528,12 +528,12 @@ function qa_db_recent_c_qs_selectspec($voteuserid, $start, $categoryslugs = null
...
@@ -528,12 +528,12 @@ function qa_db_recent_c_qs_selectspec($voteuserid, $start, $categoryslugs = null
" LEFT JOIN ^userpoints AS cuserpoints ON cposts.userid=cuserpoints.userid"
.
" LEFT JOIN ^userpoints AS cuserpoints ON cposts.userid=cuserpoints.userid"
.
" JOIN (SELECT postid FROM ^posts WHERE "
.
" JOIN (SELECT postid FROM ^posts WHERE "
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
(
isset
(
$createip
)
?
"createip=
$
AND "
:
""
)
.
(
isset
(
$createip
)
?
"createip=
UNHEX($)
AND "
:
""
)
.
"type=$ ORDER BY ^posts.created DESC LIMIT #,#) y ON cposts.postid=y.postid"
.
"type=$ ORDER BY ^posts.created DESC LIMIT #,#) y ON cposts.postid=y.postid"
.
(
$specialtype
?
''
:
" WHERE ^posts.type='Q' AND ((parentposts.type='Q') OR (parentposts.type='A'))"
);
(
$specialtype
?
''
:
" WHERE ^posts.type='Q' AND ((parentposts.type='Q') OR (parentposts.type='A'))"
);
if
(
isset
(
$createip
))
{
if
(
isset
(
$createip
))
{
$selectspec
[
'arguments'
][]
=
@
inet_pton
(
$createip
);
$selectspec
[
'arguments'
][]
=
bin2hex
(
@
inet_pton
(
$createip
)
);
}
}
array_push
(
$selectspec
[
'arguments'
],
$type
,
$start
,
$count
);
array_push
(
$selectspec
[
'arguments'
],
$type
,
$start
,
$count
);
...
@@ -576,13 +576,13 @@ function qa_db_recent_edit_qs_selectspec($voteuserid, $start, $categoryslugs = n
...
@@ -576,13 +576,13 @@ function qa_db_recent_edit_qs_selectspec($voteuserid, $start, $categoryslugs = n
" LEFT JOIN ^userpoints AS edituserpoints ON editposts.lastuserid=edituserpoints.userid"
.
" LEFT JOIN ^userpoints AS edituserpoints ON editposts.lastuserid=edituserpoints.userid"
.
" JOIN (SELECT postid FROM ^posts WHERE "
.
" JOIN (SELECT postid FROM ^posts WHERE "
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
qa_db_categoryslugs_sql_args
(
$categoryslugs
,
$selectspec
[
'arguments'
])
.
(
isset
(
$lastip
)
?
"lastip=
$
AND "
:
""
)
.
(
isset
(
$lastip
)
?
"lastip=
UNHEX($)
AND "
:
""
)
.
(
$onlyvisible
?
"type IN ('Q', 'A', 'C')"
:
"1"
)
.
(
$onlyvisible
?
"type IN ('Q', 'A', 'C')"
:
"1"
)
.
" ORDER BY ^posts.updated DESC LIMIT #,#) y ON editposts.postid=y.postid"
.
" ORDER BY ^posts.updated DESC LIMIT #,#) y ON editposts.postid=y.postid"
.
(
$onlyvisible
?
" WHERE parentposts.type IN ('Q', 'A', 'C') AND ^posts.type IN ('Q', 'A', 'C')"
:
""
);
(
$onlyvisible
?
" WHERE parentposts.type IN ('Q', 'A', 'C') AND ^posts.type IN ('Q', 'A', 'C')"
:
""
);
if
(
isset
(
$lastip
))
{
if
(
isset
(
$lastip
))
{
$selectspec
[
'arguments'
][]
=
@
inet_pton
(
$lastip
);
$selectspec
[
'arguments'
][]
=
bin2hex
(
@
inet_pton
(
$lastip
)
);
}
}
array_push
(
$selectspec
[
'arguments'
],
$start
,
$count
);
array_push
(
$selectspec
[
'arguments'
],
$start
,
$count
);
...
@@ -1970,8 +1970,8 @@ function qa_db_ip_limits_selectspec($ip)
...
@@ -1970,8 +1970,8 @@ function qa_db_ip_limits_selectspec($ip)
{
{
return
array
(
return
array
(
'columns'
=>
array
(
'action'
,
'period'
,
'count'
),
'columns'
=>
array
(
'action'
,
'period'
,
'count'
),
'source'
=>
'^iplimits WHERE ip=
$
'
,
'source'
=>
'^iplimits WHERE ip=
UNHEX($)
'
,
'arguments'
=>
array
(
@
inet_pton
(
$ip
)),
'arguments'
=>
array
(
bin2hex
(
@
inet_pton
(
$ip
)
)),
'arraykey'
=>
'action'
,
'arraykey'
=>
'action'
,
);
);
}
}
...
...
qa-include/db/users.php
View file @
e871abe5
...
@@ -53,21 +53,21 @@ function qa_db_user_create($email, $password, $handle, $level, $ip)
...
@@ -53,21 +53,21 @@ function qa_db_user_create($email, $password, $handle, $level, $ip)
{
{
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
$ip
bin
=
@
inet_pton
(
$ip
);
$ip
Hex
=
bin2hex
(
@
inet_pton
(
$ip
)
);
if
(
QA_PASSWORD_HASH
)
{
if
(
QA_PASSWORD_HASH
)
{
qa_db_query_sub
(
qa_db_query_sub
(
'INSERT INTO ^users (created, createip, email, passhash, level, handle, loggedin, loginip) '
.
'INSERT INTO ^users (created, createip, email, passhash, level, handle, loggedin, loginip) '
.
'VALUES (NOW(),
$, $, $, #, $, NOW(), $
)'
,
'VALUES (NOW(),
UNHEX($), $, $, #, $, NOW(), UNHEX($)
)'
,
$ip
bin
,
$email
,
isset
(
$password
)
?
password_hash
(
$password
,
PASSWORD_BCRYPT
)
:
null
,
(
int
)
$level
,
$handle
,
$ipbin
$ip
Hex
,
$email
,
isset
(
$password
)
?
password_hash
(
$password
,
PASSWORD_BCRYPT
)
:
null
,
(
int
)
$level
,
$handle
,
$ipHex
);
);
}
else
{
}
else
{
$salt
=
isset
(
$password
)
?
qa_random_alphanum
(
16
)
:
null
;
$salt
=
isset
(
$password
)
?
qa_random_alphanum
(
16
)
:
null
;
qa_db_query_sub
(
qa_db_query_sub
(
'INSERT INTO ^users (created, createip, email, passsalt, passcheck, level, handle, loggedin, loginip) '
.
'INSERT INTO ^users (created, createip, email, passsalt, passcheck, level, handle, loggedin, loginip) '
.
'VALUES (NOW(),
$, $, $, UNHEX($), #, $, NOW(), $
)'
,
'VALUES (NOW(),
UNHEX($), $, $, UNHEX($), #, $, NOW(), UNHEX($)
)'
,
$ip
bin
,
$email
,
$salt
,
isset
(
$password
)
?
qa_db_calc_passcheck
(
$password
,
$salt
)
:
null
,
(
int
)
$level
,
$handle
,
$ipbin
$ip
Hex
,
$email
,
$salt
,
isset
(
$password
)
?
qa_db_calc_passcheck
(
$password
,
$salt
)
:
null
,
(
int
)
$level
,
$handle
,
$ipHex
);
);
}
}
...
@@ -272,8 +272,8 @@ function qa_db_user_profile_set($userid, $field, $value)
...
@@ -272,8 +272,8 @@ function qa_db_user_profile_set($userid, $field, $value)
function
qa_db_user_logged_in
(
$userid
,
$ip
)
function
qa_db_user_logged_in
(
$userid
,
$ip
)
{
{
qa_db_query_sub
(
qa_db_query_sub
(
'UPDATE ^users SET loggedin=NOW(), loginip=
$
WHERE userid=$'
,
'UPDATE ^users SET loggedin=NOW(), loginip=
UNHEX($)
WHERE userid=$'
,
@
inet_pton
(
$ip
),
$userid
bin2hex
(
@
inet_pton
(
$ip
)
),
$userid
);
);
}
}
...
@@ -286,8 +286,8 @@ function qa_db_user_logged_in($userid, $ip)
...
@@ -286,8 +286,8 @@ function qa_db_user_logged_in($userid, $ip)
function
qa_db_user_written
(
$userid
,
$ip
)
function
qa_db_user_written
(
$userid
,
$ip
)
{
{
qa_db_query_sub
(
qa_db_query_sub
(
'UPDATE ^users SET written=NOW(), writeip=
$
WHERE userid=$'
,
'UPDATE ^users SET written=NOW(), writeip=
UNHEX($)
WHERE userid=$'
,
@
inet_pton
(
$ip
),
$userid
bin2hex
(
@
inet_pton
(
$ip
)
),
$userid
);
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment