Make WordPress Core

Changeset 52144


Ignore:
Timestamp:
11/12/2021 01:08:35 AM (3 years ago)
Author:
hellofromTonya
Message:

Bootstrap/Load: Check $_SERVER['SCRIPT_NAME'] exists before passing to strpos() in wp_fix_server_vars().

If SCRIPT_NAME' does not exist (which can happen in cron jobs), the following happens:

  • PHP 8.1+:
    • Warning: Undefined array key "SCRIPT_NAME"
    • Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated
  • PHP 8.0: Warning: Undefined array key "SCRIPT_NAME"
  • PHP 5.6-7.4: No warning or notice

This commit checks if the key exists before passing it to strpos(). This resolves the warning, notice, and future error.

Follow-up to [3034], [3069], [12732].

Props audrasjb, costdev, hellofromTonya, karpstrucking, mcjambi, sergeybiryukov.
Fixes #54142.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/load.php

    r52087 r52144  
    7777
    7878    // Fix for Dreamhost and other PHP as CGI hosts.
    79     if ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false ) {
     79    if ( isset( $_SERVER['SCRIPT_NAME'] ) && ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false ) ) {
    8080        unset( $_SERVER['PATH_INFO'] );
    8181    }
Note: See TracChangeset for help on using the changeset viewer.