phpcompat icon indicating copy to clipboard operation
phpcompat copied to clipboard

False positive on "WP OAuth Server - Full" when tested against 7.0

Open picasso opened this issue 7 years ago • 2 comments

101 | ERROR | Global variable '$HTTP_RAW_POST_DATA' is deprecated since PHP 5.6 and removed since PHP 7.0 - use php://input instead.
104 | ERROR | Global variable '$HTTP_RAW_POST_DATA' is deprecated since PHP 5.6 and removed since PHP 7.0 - use php://input instead.
109 | ERROR | Global variable '$HTTP_RAW_POST_DATA' is deprecated since PHP 5.6 and removed since PHP 7.0 - use php://input instead.
112 | ERROR | Global variable '$HTTP_RAW_POST_DATA' is deprecated since PHP 5.6 and removed since PHP 7.0 - use php://input instead.

But looking at the lines 101 and 104 you see the following:

if ( ! isset( $HTTP_RAW_POST_DATA ) ) {
	return fopen( 'php://input', 'rb' );
} else {
	return $HTTP_RAW_POST_DATA;
}

And the same for lines 109 and 112:

if ( null === $this->content ) {
	if ( ! isset( $HTTP_RAW_POST_DATA ) ) {
		$this->content = file_get_contents( 'php://input' );
	} else {
		$this->content = $HTTP_RAW_POST_DATA;
	}
}

picasso avatar Feb 24 '17 19:02 picasso

@picasso Have tried testing the code in reverse?

if ( isset( $HTTP_RAW_POST_DATA ) ) {
	return $HTTP_RAW_POST_DATA;
} else {
	return fopen( 'php://input', 'rb' );
}

As the plugin just uses the PHPCompatibility library it is best to report the false positive there: https://github.com/wimg/PHPCompatibility

grappler avatar Feb 24 '17 19:02 grappler

This is actually not a false positive as the variable is found in the code, even though used correctly. All the same, there is an issue open about the principle of these kind of warnings here: https://github.com/wimg/PHPCompatibility/issues/301

jrfnl avatar Feb 24 '17 20:02 jrfnl