Raketenwilli: Wahrscheinlich liegt es am Test

Beitrag lesen

Das hier tut es:

<?php
class xTest {
		if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
			foreach ( $_POST as $key => $value ) {
				$body[$key] = filter_var( $value, FILTER_SANITIZE_SPECIAL_CHARS );
			}
		}
		return $body;
	}
}
$_SERVER['REQUEST_METHOD'] = 'POST';
$_POST['foo']='<Foo>';
$_POST['bar']='<Bar>';
print_r( $_POST );
$body=xTest::getBody();
print_r( $body );

Testet Du mit echtem Request oder mit einer Simulation, in dem Du $_POST (wie von mir gezeigt) bzw. $_GET vor dem Test mit Daten befüllst?

Womöglich (sic: womöglich) verwendet das von Dir gezeigte filter_input() nicht $_POST oder $_GET sondern php://input bzw. HTTP_QUERY_STRING.

In dem Fall liegt es am Test, nicht am Skript... Mit der Simulation und filter_input() hatte ich nämlich auch kein Glück.