Author: Derick Rethans (derickr)
Date: 2026-05-21T14:26:44+01:00

Commit: 
https://github.com/php/web-master/commit/3618b6955a941a9945b124e2eb1f970f8dc0dc71
Raw diff: 
https://github.com/php/web-master/commit/3618b6955a941a9945b124e2eb1f970f8dc0dc71.diff

Rename our old connect helper method, so that it doesn't clash with the 
PDO::connect method

Changed paths:
  M  include/login.inc
  M  public/entry/event.php
  M  public/entry/svn-account.php
  M  public/entry/user-note.php
  M  public/entry/user-notes-vote.php
  M  public/fetch/allusers.php
  M  public/fetch/cvsauth.php
  M  public/fetch/cvsforwarding.php
  M  public/fetch/email-aliases.php
  M  public/fetch/events.php
  M  public/fetch/user-notes-rss.php
  M  public/fetch/user-notes.php
  M  public/fetch/user-profile.php
  M  public/fetch/user.php
  M  public/forgot.php
  M  public/github-webhook.php
  M  public/manage/event.php
  M  public/manage/user-notes.php
  M  public/manage/users.php
  M  scripts/email-note-summaries
  M  scripts/remove-low-rated-notes
  M  src/DB.php


Diff:

diff --git a/include/login.inc b/include/login.inc
index e7ac61a..b4a7aa3 100644
--- a/include/login.inc
+++ b/include/login.inc
@@ -28,7 +28,7 @@ if (isset($_POST["user"], $_POST["pw"])) {
 }
 
 // Login form, if the user is not yet logged in
-if (!$cuser || !$cpw || !verify_password(DB::connect(), $cuser,$cpw)) {
+if (!$cuser || !$cpw || !verify_password(DB::connectFromEnvironment(), 
$cuser,$cpw)) {
     $_SESSION = [];
     session_destroy();
 
diff --git a/public/entry/event.php b/public/entry/event.php
index aa3f096..f92fbe3 100644
--- a/public/entry/event.php
+++ b/public/entry/event.php
@@ -23,7 +23,7 @@ function day($in) {
   return strftime('%A',mktime(12,0,0,4,$in,2001));
 }
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $valid_vars = 
['sdesc','ldesc','email','country','category','type','url','sane','smonth','sday','syear','emonth','eday','eyear','recur','recur_day'];
 foreach($valid_vars as $k) {
diff --git a/public/entry/svn-account.php b/public/entry/svn-account.php
index 02a9c2b..a5fc997 100644
--- a/public/entry/svn-account.php
+++ b/public/entry/svn-account.php
@@ -63,7 +63,7 @@
   die('Username is too long. It must have 1-16 characters.');
 }
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 if (!is_emailable_address($email))
   die("that email address does not appear to be valid");
diff --git a/public/entry/user-note.php b/public/entry/user-note.php
index b4ec32e..28fba93 100644
--- a/public/entry/user-note.php
+++ b/public/entry/user-note.php
@@ -56,7 +56,7 @@ function validateUser($user) {
 unset($note_lc);
 /* End SPAM Checks ******************************************/
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 /*
 After a discussion in #php about the
diff --git a/public/entry/user-notes-vote.php b/public/entry/user-notes-vote.php
index 10b99f1..fc15513 100644
--- a/public/entry/user-notes-vote.php
+++ b/public/entry/user-notes-vote.php
@@ -155,7 +155,7 @@ function vote_validate_request(PDO $dbh) {
 
 // Initialize global PDO database handle
 try {
-    $dbh = DB::connect();
+    $dbh = DB::connectFromEnvironment();
 } catch(PDOException $e) {
     $jsonResponse->message = "The server could not complete this request. 
Please try again later...";
     echo json_encode($jsonResponse);
diff --git a/public/fetch/allusers.php b/public/fetch/allusers.php
index ba4090f..9f01024 100644
--- a/public/fetch/allusers.php
+++ b/public/fetch/allusers.php
@@ -26,7 +26,7 @@ function error($text, $status)
 
 (!isset($_GET['token']) || md5($_GET['token']) != 
"d3fbcabfcf3648095037175fdeef322f") && error("token not correct.", 401);
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $stmt = $pdo->prepare("SELECT name, username FROM users WHERE enable AND 
cvsaccess");
 if (!$stmt->execute()) {
diff --git a/public/fetch/cvsauth.php b/public/fetch/cvsauth.php
index 519d620..f41e1df 100644
--- a/public/fetch/cvsauth.php
+++ b/public/fetch/cvsauth.php
@@ -85,7 +85,7 @@ function is_valid_cvsauth_token($token) {
        exit_forbidden(E_UNKNOWN);
 }
 
-$db = DB::connect();
+$db = DB::connectFromEnvironment();
 if (!verify_username($db, $username)) {
        exit_forbidden(E_USERNAME);
 }
diff --git a/public/fetch/cvsforwarding.php b/public/fetch/cvsforwarding.php
index e4fc67f..111259e 100644
--- a/public/fetch/cvsforwarding.php
+++ b/public/fetch/cvsforwarding.php
@@ -9,7 +9,7 @@
   die("token not correct.");
 
 // Connect and generate the list from the DB
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 $res = $pdo->safeQuery("SELECT username,email,spamprotect FROM users WHERE 
email != '' AND cvsaccess");
 foreach ($res as $row) {
   echo "$row[username]@php.net: ",
diff --git a/public/fetch/email-aliases.php b/public/fetch/email-aliases.php
index 3609cd0..98bdf93 100644
--- a/public/fetch/email-aliases.php
+++ b/public/fetch/email-aliases.php
@@ -27,7 +27,7 @@ function error($text, $status)
 // original token defined in ansible vault and in fetch-aliases-from-main.sh 
script on php-smtp4:~/emailsync
 (!isset($_GET['token']) || sha1($_GET['token']) != 
"1789734af16d0fe009375e1f4dbe11e02c5919bc") && error("token not correct.", 401);
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $stmt = $pdo->prepare("SELECT username, email FROM users WHERE enable = 1 AND 
email != '' ORDER BY username");
 if (!$stmt->execute()) {
diff --git a/public/fetch/events.php b/public/fetch/events.php
index 71246b6..5fe50bb 100644
--- a/public/fetch/events.php
+++ b/public/fetch/events.php
@@ -14,7 +14,7 @@
 if (!isset($_REQUEST['token']) || md5($_REQUEST['token']) != 
"19a3ec370affe2d899755f005e5cd90e")
   die("token not correct.");
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 // Set default values
 if (!isset($cm)) $cm = (int)strftime('%m');
diff --git a/public/fetch/user-notes-rss.php b/public/fetch/user-notes-rss.php
index ea62828..84fec4b 100644
--- a/public/fetch/user-notes-rss.php
+++ b/public/fetch/user-notes-rss.php
@@ -6,7 +6,7 @@
 require_once __DIR__ . '/../../include/functions.inc';
 require_once __DIR__ . '/../../vendor/autoload.php';
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 if (isset($_GET['limit']) && is_numeric($_GET['limit']) && $_GET['limit'] <= 
1000) {
   $limit = $_GET['limit'];
diff --git a/public/fetch/user-notes.php b/public/fetch/user-notes.php
index 7cc3576..399e129 100644
--- a/public/fetch/user-notes.php
+++ b/public/fetch/user-notes.php
@@ -8,7 +8,7 @@
 if (!isset($_REQUEST['token']) || md5($_REQUEST['token']) != 
"19a3ec370affe2d899755f005e5cd90e")
   die("token not correct.");
 
-$dbh = DB::connect();
+$dbh = DB::connectFromEnvironment();
 
 $query  = "SELECT DISTINCT 
note.id,note.sect,note.user,note.note,UNIX_TIMESTAMP(note.ts) AS ts,";
 $query .= "SUM(votes.vote) AS up, (COUNT(votes.vote) - SUM(votes.vote)) AS 
down,";
diff --git a/public/fetch/user-profile.php b/public/fetch/user-profile.php
index a5ef9f2..2cfb224 100644
--- a/public/fetch/user-profile.php
+++ b/public/fetch/user-profile.php
@@ -36,7 +36,7 @@ function render($result)
 
 $USERNAME = filter_input(INPUT_GET, "username", FILTER_SANITIZE_STRING, 
FILTER_FLAG_STRIP_HIGH);
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $stmt = $pdo->prepare("
   SELECT u.username, COALESCE(up.markdown, '') AS markdown, COALESCE(up.html, 
'') AS html
diff --git a/public/fetch/user.php b/public/fetch/user.php
index 2478954..5813abc 100644
--- a/public/fetch/user.php
+++ b/public/fetch/user.php
@@ -28,7 +28,7 @@ function error($text, $status)
 
 $USERNAME = filter_input(INPUT_GET, "username", FILTER_SANITIZE_STRING, 
FILTER_FLAG_STRIP_HIGH);
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $stmt = $pdo->prepare("SELECT userid, name, email, username, spamprotect, 
use_sa, greylist, enable FROM users WHERE username = ? AND cvsaccess LIMIT 1");
 if (!$stmt->execute([$USERNAME])) {
diff --git a/public/forgot.php b/public/forgot.php
index 51a9efe..7d68c77 100644
--- a/public/forgot.php
+++ b/public/forgot.php
@@ -20,7 +20,7 @@ function random_password() {
 
 head("forgotten password");
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 if ($id && $key) {
   if ($n1 && $n2) {
diff --git a/public/github-webhook.php b/public/github-webhook.php
index 6224ae6..0afe5b9 100644
--- a/public/github-webhook.php
+++ b/public/github-webhook.php
@@ -301,7 +301,7 @@ function handle_push_mail($payload) {
         return;
     }
 
-    $dbh = DB::connect();
+    $dbh = DB::connectFromEnvironment();
 
     $pusherName = $payload->pusher->name;
     foreach ($payload->commits as $commit) {
diff --git a/public/manage/event.php b/public/manage/event.php
index f56af93..82d09ce 100644
--- a/public/manage/event.php
+++ b/public/manage/event.php
@@ -28,7 +28,7 @@
 $type = [1=>'single',2=>'multi',3=>'recur'];
 
 head("event administration");
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $id = $_REQUEST['id'] ?? false;
 $action = $_REQUEST['action'] ?? false;
diff --git a/public/manage/user-notes.php b/public/manage/user-notes.php
index bdb2bac..91f9a8d 100644
--- a/public/manage/user-notes.php
+++ b/public/manage/user-notes.php
@@ -38,7 +38,7 @@
 
 Your note has been removed from the online manual.';
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $action = (isset($_REQUEST['action']) ? preg_replace('/[^\w\d\s_]/', '', 
$_REQUEST['action']) : '');
 $id = (isset($_REQUEST['id']) ? intval($_REQUEST['id']) : '');
diff --git a/public/manage/users.php b/public/manage/users.php
index f40c584..b065434 100644
--- a/public/manage/users.php
+++ b/public/manage/users.php
@@ -61,7 +61,7 @@ function csrf_validate(&$mydata, $name) {
 
 head("user administration");
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 # ?username=whatever will look up 'whatever' by email or username
 if ($username) {
diff --git a/scripts/email-note-summaries b/scripts/email-note-summaries
index 5a03be6..6690d36 100755
--- a/scripts/email-note-summaries
+++ b/scripts/email-note-summaries
@@ -7,7 +7,7 @@ require_once __DIR__ . '/../vendor/autoload.php';
 
 define('LIMIT', 10);
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 /** --[ pages with most notes ] ------------------- **/
 
diff --git a/scripts/remove-low-rated-notes b/scripts/remove-low-rated-notes
index 3b05b4f..6d31bd5 100755
--- a/scripts/remove-low-rated-notes
+++ b/scripts/remove-low-rated-notes
@@ -8,7 +8,7 @@ require_once __DIR__ . '/../vendor/autoload.php';
 define('RATING_THRESHOLD', "-5");
 define('AGE_THRESHOLD', '1 year');
 
-$pdo = DB::connect();
+$pdo = DB::connectFromEnvironment();
 
 $query = "SELECT COUNT(*) FROM note";
 $total = $pdo->single($query);
diff --git a/src/DB.php b/src/DB.php
index 0309ed6..91a59c0 100644
--- a/src/DB.php
+++ b/src/DB.php
@@ -6,7 +6,7 @@
 
 final class DB extends PDO
 {
-    public static function connect(string $dsn, ?string $username = null, 
?string $password = null, ?array $options = null): static
+    public static function connectFromEnvironment(): static
     {
         $connectionConfig = 'mysql:host=' . self::getHost() . ';port=' . 
self::getPort() . ';dbname=' . self::getDatabase();
 

Reply via email to