@@ -19,9 +19,8 @@ function serendipity_checkCommentToken($token, $cid) {
19
19
20
20
$ goodtoken = false ;
21
21
if ($ serendipity ['useCommentTokens ' ]) {
22
- // Delete any comment tokens older than 1 week.
23
- serendipity_db_query ("DELETE FROM {$ serendipity ['dbPrefix ' ]}options
24
- WHERE okey LIKE 'comment_%' AND name < " . (time () - 604800 ) );
22
+ serendipity_cleanCTokens ();
23
+
25
24
// Get the token for this comment id
26
25
$ tokencheck = serendipity_db_query ("SELECT * FROM {$ serendipity ['dbPrefix ' ]}options
27
26
WHERE okey = 'comment_ " . (int )$ cid . "' LIMIT 1 " , true , 'assoc ' );
@@ -964,16 +963,11 @@ function serendipity_insertComment($id, $commentInfo, $type = 'NORMAL', $source
964
963
function serendipity_commentSubscriptionConfirm ($ hash ) {
965
964
global $ serendipity ;
966
965
967
- // Delete possible current cookie. Also delete any confirmation hashs that smell like 3-week-old, dead fish.
968
- if (stristr ($ serendipity ['dbType ' ], 'sqlite ' )) {
969
- $ cast = "name " ;
970
- } else {
971
- // Adds explicits casting for mysql, postgresql and others.
972
- $ cast = "cast(name as integer) " ;
973
- }
974
-
966
+ // Delete possible current cookie. Also delete any confirmation hashes that smell like dead fish.
967
+ $ threeWeeksAgo = time () - 1814400 ;
968
+ $ nameCast = serendipity_db_cast ('name ' , 'integer ' );
975
969
serendipity_db_query ("DELETE FROM {$ serendipity ['dbPrefix ' ]}options
976
- WHERE okey LIKE 'commentsub_%' AND $ cast < ( " . ( time () - 1814400 ) . " ) " );
970
+ WHERE okey LIKE 'commentsub_%' AND $ nameCast < { $ threeWeeksAgo } " );
977
971
978
972
$ hashinfo = serendipity_db_query ("SELECT value
979
973
FROM {$ serendipity ['dbPrefix ' ]}options
@@ -1226,15 +1220,27 @@ function serendipity_generateCToken($cid) {
1226
1220
1227
1221
global $ serendipity ;
1228
1222
1223
+ serendipity_cleanCTokens ();
1224
+
1225
+ // Issue new comment moderation hash
1229
1226
$ ctoken = bin2hex (random_bytes (16 ));
1230
-
1231
- //Delete any comment tokens older than 1 week.
1232
- serendipity_db_query ("DELETE FROM {$ serendipity ['dbPrefix ' ]}options
1233
- WHERE okey LIKE 'comment_%' AND name < " . (time () - 604800 ) );
1227
+ serendipity_db_query ("INSERT INTO {$ serendipity ['dbPrefix ' ]}options (name, value, okey)
1228
+ VALUES (' " . time () . "', ' " . $ ctoken . "', 'comment_ " . $ cid ."') " );
1234
1229
1235
- // Issue new comment moderation hash
1236
- serendipity_db_query ("INSERT INTO {$ serendipity ['dbPrefix ' ]}options (name, value, okey)
1237
- VALUES (' " . time () . "', ' " . $ ctoken . "', 'comment_ " . $ cid ."') " );
1238
1230
return $ ctoken ;
1239
-
1231
+ }
1232
+
1233
+ /**
1234
+ * Clean over week-old comment tokens from DB
1235
+ *
1236
+ * @return null
1237
+ */
1238
+ function serendipity_cleanCTokens () {
1239
+ global $ serendipity ;
1240
+
1241
+ //Delete any comment tokens older than 1 week.
1242
+ $ oneWeekAgo = time () - 604800 ;
1243
+ $ nameCast = serendipity_db_cast ('name ' , 'integer ' );
1244
+ serendipity_db_query ("DELETE FROM {$ serendipity ['dbPrefix ' ]}options
1245
+ WHERE okey LIKE 'comment_%' AND $ nameCast < {$ oneWeekAgo }" );
1240
1246
}
0 commit comments