File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed
Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -375,6 +375,11 @@ PHP_FUNCTION(http_response_code)
375375 }
376376 RETURN_FALSE ;
377377 }
378+
379+ if (SG (sapi_headers ).http_status_line ) {
380+ php_error_docref (NULL , E_WARNING , "Calling http_response_code() after header('HTTP/...') has no effect" );
381+ }
382+
378383 zend_long old_response_code ;
379384
380385 old_response_code = SG (sapi_headers ).http_response_code ;
Original file line number Diff line number Diff line change 1+ --TEST--
2+ GH-18582: Allow http_response_code() to clear HTTP start-line
3+ --SKIPIF--
4+ <?php
5+ include "skipif.inc " ;
6+ ?>
7+ --FILE--
8+ <?php
9+ include "php_cli_server.inc " ;
10+
11+ php_cli_server_start (<<<'PHP'
12+ http_response_code(401);
13+ header('HTTP/1.1 404 Not Found');
14+ $is_404 = http_response_code(403);
15+ $should_be_404_but_is_403 = http_response_code();
16+ echo $is_404 . PHP_EOL;
17+ echo $should_be_404_but_is_403 . PHP_EOL;
18+ PHP);
19+
20+ $ host = PHP_CLI_SERVER_HOSTNAME ;
21+ $ fp = php_cli_server_connect ();
22+ if (fwrite ($ fp , "GET / HTTP/1.1 \nHost: {$ host }\n\n" )) {
23+ while (!feof ($ fp )) {
24+ echo fgets ($ fp );
25+ }
26+ }
27+ fclose ($ fp );
28+ ?>
29+ --EXPECTF--
30+ HTTP/1.1 404 Not Found
31+ Host: %s
32+ Date: %s
33+ Connection: close
34+ X-Powered-By: %s
35+ Content-type: text/html; charset=UTF-8
36+
37+ <br />
38+ <b>Warning</b>: http_response_code(): Calling http_response_code() after header('HTTP/...') has no effect in <b>%s</b> on line <b>3</b><br />
39+ 404
40+ 403
You can’t perform that action at this time.
0 commit comments