Port the code to PHP 8.5.

Replace the short open tags and the removed functions (mcrypt, mysql_error,
salt-less crypt). Decode the reCAPTCHA reply as JSON, turn off mysqli
exceptions, drop stripslashes(), and default missing input values.
Fix the misplaced continue in prune_images().
This commit is contained in:
tim
2026-09-25 21:18:58 +02:00
parent 15e81e17cc
commit 00829a0c0d
23 changed files with 145 additions and 130 deletions
+9 -9
View File
@@ -1,4 +1,4 @@
<?
<?php
require_once(realpath(dirname(__FILE__) . '/open_db.lib.php'));
$is_admin = FALSE;
@@ -33,14 +33,14 @@ function check_persistent_login() {
open_db('open');
$cookie_data = $db->real_escape_string($_COOKIE['PersistentAuth']);
list($username, $key) = explode("|", $cookie_data);
list($username, $key) = explode("|", $cookie_data, 2) + array('', '');
$username = $db->real_escape_string($username);
$key = $db->real_escape_string($key);
$query = "SELECT * FROM $table WHERE ".
"username LIKE '".$username."' ".
"LIMIT 1;";
$getid = $db->query($query) or die("Query failed: ".$db->error());
$getid = $db->query($query) or die("Query failed: ".$db->error);
$row = $getid->fetch_assoc();
open_db('close');
@@ -68,11 +68,11 @@ function create_persistent_login($username) {
open_db('open');
$username = $db->real_escape_string($username);
$key = substr(bin2hex(mcrypt_create_iv(100,MCRYPT_DEV_URANDOM)), 0, 200);
$key = bin2hex(random_bytes(100));
// Add session key to database
$query = "INSERT INTO $table " . "(username, session) VALUES ('" . $username."', '" . $key . "');";
$db->query($query) or die("Query failed: ".$db->error());
$db->query($query) or die("Query failed: ".$db->error);
open_db('close');
// Create cookie with key
@@ -86,8 +86,8 @@ function delete_persistent_login() {
$table = "persistent_sessions";
open_db('open');
$cookie_data = $db->real_escape_string($_COOKIE['PersistentAuth']);
list($username, $key) = explode("|", $cookie_data);
$cookie_data = $db->real_escape_string($_COOKIE['PersistentAuth'] ?? '');
list($username, $key) = explode("|", $cookie_data, 2) + array('', '');
$username = $db->real_escape_string($username);
$key = $db->real_escape_string($key);
@@ -95,12 +95,12 @@ function delete_persistent_login() {
$query = "DELETE FROM $table " .
" WHERE username LIKE '" . $username . "'" .
" AND session LIKE '" . $key . "';";
$db->query($query) or die("Query failed: ".$db->error());
$db->query($query) or die("Query failed: ".$db->error);
// Reap old sessions
$query = "DELETE FROM $table " .
" WHERE created < DATE_SUB(now(), INTERVAL 1 YEAR);";
$db->query($query) or die("Query failed: ".$db->error());
$db->query($query) or die("Query failed: ".$db->error);
open_db('close');