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.