mirror of
https://github.com/php/php-src.git
synced 2024-10-16 22:12:33 +00:00
8c4151ad72
[DOC] proto void header_remove([string header_name]) Removes an HTTP header previously set using header() The header_name parameter is optionnal, all headers are removed if it is not set [SAPIs] The header_handler callback in sapi_module_struct has been changed, it now take a new argument. When it is set to SAPI_HEADER_DELETE, sapi_header->header is the name of an header, header_handler has to delete it. When it is set to SAPI_HEADER_DELETE_ALL, header_handler has to delete all headers. When sapi_header_op_enum is SAPI_HEADER_ADD or _REPLACE, sapi_header->header is in the form "Name: value", header_handler has to add or replace the given header. In all cases, header_handler must not free sapi_header or sapi_header->header. SAPI_HEADER_ADD must be returned if the header has been added or replaced, or 0 in other cases.
166 lines
2.6 KiB
PHP
166 lines
2.6 KiB
PHP
--TEST--
|
|
header_remove()
|
|
--SKIPIF--
|
|
<?php include "skipif.inc"; ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
include "include.inc";
|
|
|
|
$php = get_cgi_path();
|
|
reset_env_vars();
|
|
|
|
$f = tempnam(sys_get_temp_dir(), 'cgitest');
|
|
|
|
function test($script) {
|
|
file_put_contents($GLOBALS['f'], $script);
|
|
$cmd = escapeshellcmd($GLOBALS['php']);
|
|
$cmd .= ' -n -dreport_zend_debug=0 -dhtml_errors=0 ' . escapeshellarg($GLOBALS['f']);
|
|
echo "----------\n";
|
|
echo rtrim($script) . "\n";
|
|
echo "----------\n";
|
|
passthru($cmd);
|
|
}
|
|
|
|
test('<?php ?>');
|
|
test('<?php header_remove(); ?>');
|
|
test('<?php header_remove("X-Foo"); ?>');
|
|
test('<?php
|
|
header("X-Foo: Bar");
|
|
?>');
|
|
test('<?php
|
|
header("X-Foo: Bar");
|
|
header("X-Bar: Baz");
|
|
header_remove("X-Foo");
|
|
?>');
|
|
test('<?php
|
|
header("X-Foo: Bar");
|
|
header_remove("X-Foo: Bar");
|
|
?>');
|
|
test('<?php
|
|
header("X-Foo: Bar");
|
|
header_remove("X-Foo:");
|
|
?>');
|
|
test('<?php
|
|
header("X-Foo: Bar");
|
|
header_remove();
|
|
?>');
|
|
test('<?php
|
|
header_remove("");
|
|
?>');
|
|
test('<?php
|
|
header_remove(":");
|
|
?>');
|
|
test('<?php
|
|
header("X-Foo: Bar");
|
|
echo "flush\n";
|
|
flush();
|
|
header_remove("X-Foo");
|
|
?>');
|
|
|
|
@unlink($f);
|
|
?>
|
|
--EXPECTF--
|
|
----------
|
|
<?php ?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
Content-type: text/html
|
|
|
|
----------
|
|
<?php header_remove(); ?>
|
|
----------
|
|
Content-type: text/html
|
|
|
|
----------
|
|
<?php header_remove("X-Foo"); ?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
Content-type: text/html
|
|
|
|
----------
|
|
<?php
|
|
header("X-Foo: Bar");
|
|
?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
X-Foo: Bar
|
|
Content-type: text/html
|
|
|
|
----------
|
|
<?php
|
|
header("X-Foo: Bar");
|
|
header("X-Bar: Baz");
|
|
header_remove("X-Foo");
|
|
?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
X-Bar: Baz
|
|
Content-type: text/html
|
|
|
|
----------
|
|
<?php
|
|
header("X-Foo: Bar");
|
|
header_remove("X-Foo: Bar");
|
|
?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
X-Foo: Bar
|
|
Content-type: text/html
|
|
|
|
|
|
Warning: Header to delete may not contain colon. in %s on line 3
|
|
----------
|
|
<?php
|
|
header("X-Foo: Bar");
|
|
header_remove("X-Foo:");
|
|
?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
X-Foo: Bar
|
|
Content-type: text/html
|
|
|
|
|
|
Warning: Header to delete may not contain colon. in %s on line 3
|
|
----------
|
|
<?php
|
|
header("X-Foo: Bar");
|
|
header_remove();
|
|
?>
|
|
----------
|
|
Content-type: text/html
|
|
|
|
----------
|
|
<?php
|
|
header_remove("");
|
|
?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
Content-type: text/html
|
|
|
|
----------
|
|
<?php
|
|
header_remove(":");
|
|
?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
Content-type: text/html
|
|
|
|
|
|
Warning: Header to delete may not contain colon. in %s on line 2
|
|
----------
|
|
<?php
|
|
header("X-Foo: Bar");
|
|
echo "flush\n";
|
|
flush();
|
|
header_remove("X-Foo");
|
|
?>
|
|
----------
|
|
X-Powered-By: PHP/%s
|
|
X-Foo: Bar
|
|
Content-type: text/html
|
|
|
|
flush
|
|
|
|
Warning: Cannot modify header information - headers already sent by (output started at %s:3) in %s on line 5
|