Discussion:
Sending headers to server
Miguel Guedes
2013-08-01 14:04:58 UTC
Permalink
Hello List,


I'm running PHP 5.4.9 as CGI (via apache 2.2.22) and can't seem to be
able to send headers to the server.

Both,

header('Status: 500 Internal Server Error');

and,

header('HTTP/1.1 500 Internal Server Error', true, 500);

result in nothing happening on the client side.

What am I missing?
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Karim Geiger
2013-08-01 14:40:20 UTC
Permalink
Post by Miguel Guedes
Hello List,
I'm running PHP 5.4.9 as CGI (via apache 2.2.22) and can't seem to be
able to send headers to the server.
Both,
header('Status: 500 Internal Server Error');
and,
header('HTTP/1.1 500 Internal Server Error', true, 500);
result in nothing happening on the client side.
What am I missing?
Works for me. What happens exactly? Do you get a 200?

Karim
--
Karim Geiger
Auszubildender Fachinformatiker AE

B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
Miguel Guedes
2013-08-02 08:50:19 UTC
Permalink
Hi Karim,
Post by Karim Geiger
Works for me. What happens exactly? Do you get a 200?
That's exactly right - I always get a 200. How can I diagnose this?
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Karim Geiger
2013-08-02 14:29:20 UTC
Permalink
Hi Miguel,
Post by Miguel Guedes
Hi Karim,
Post by Karim Geiger
Works for me. What happens exactly? Do you get a 200?
That's exactly right - I always get a 200. How can I diagnose this?
Try getting the complete header by using curl -v http://url.com and
paste it here. In my example I'm getting this output:

* About to connect() to ****** port 80 (#0)
* Trying 213.***.***.***...
* Connected to ****** (213.***.***.***) port 80 (#0)
Post by Miguel Guedes
GET /test.php HTTP/1.1
User-Agent: curl/7.29.0
Host: ******
Accept: */*
< HTTP/1.1 500 Internal Server Error
< Date: Fri, 02 Aug 2013 14:27:15 GMT
< Server: Apache
< Content-Length: 6
< Connection: close
< Content-Type: text/html; charset=UTF-8
<
* Closing connection 0

What is your output?

Regards

Karim
--
Karim Geiger
Auszubildender Fachinformatiker AE

B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
Miguel Guedes
2013-08-02 14:34:45 UTC
Permalink
Great tip, Karim!
Post by Karim Geiger
Try getting the complete header by using curl -v http://url.com and
paste it here.
What is your output?
Here's my output:

$ curl -v http://localhost/header-test.php
* About to connect() to localhost port 80 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 80 (#0)
Post by Karim Geiger
GET /header-test.php HTTP/1.1
User-Agent: curl/7.29.0
Host: localhost
Accept: */*
< HTTP/1.1 200 OK
< Date: Fri, 02 Aug 2013 14:32:47 GMT
< Server: Apache/2.2.22 (Ubuntu)
< X-Powered-By: PHP/5.4.9-4ubuntu2.2
< Status: 500 Internal Server Error
< Vary: Accept-Encoding
< Content-Length: 0
< Content-Type: text/html
<
* Connection #0 to host localhost left intact

Using the following test script:

<?php

header('Status: 500 Internal Server Error');
header('HTTP/1.1 500 Internal Server Error', true, 500);

?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Karim Geiger
2013-08-02 14:49:11 UTC
Permalink
Hi Miguel,
Post by Miguel Guedes
$ curl -v http://localhost/header-test.php
* About to connect() to localhost port 80 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 80 (#0)
Post by Karim Geiger
GET /header-test.php HTTP/1.1
User-Agent: curl/7.29.0
Host: localhost
Accept: */*
< HTTP/1.1 200 OK
< Date: Fri, 02 Aug 2013 14:32:47 GMT
< Server: Apache/2.2.22 (Ubuntu)
< X-Powered-By: PHP/5.4.9-4ubuntu2.2
< Status: 500 Internal Server Error
< Vary: Accept-Encoding
< Content-Length: 0
< Content-Type: text/html
<
* Connection #0 to host localhost left intact
<?php
header('Status: 500 Internal Server Error');
header('HTTP/1.1 500 Internal Server Error', true, 500);
?>
allright, that's weird. I'm currently not able to reproduce your problem
but I've found out that some others are experiencing the same problem
like you do. They found this solution to work:
header($_SERVER["SERVER_PROTOCOL"] . 'HTTP/1.1 500 Internal Server Error');

Might try this one..

Regards

Karim
--
Karim Geiger
Auszubildender Fachinformatiker AE

B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
Miguel Guedes
2013-08-02 16:03:14 UTC
Permalink
This is strange. I've just found out that the headers are sent
correctly if I access the website outside of localhost. I don't
understand why.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Karim Geiger
2013-08-03 09:46:11 UTC
Permalink
Post by Miguel Guedes
This is strange. I've just found out that the headers are sent
correctly if I access the website outside of localhost. I don't
understand why.
I also don't. I've tried the exactly same code you posted on my
localhost as well and it worked all properly. Weird behaviour, can
anyone explain why this happens?

Regards

Karim
--
Karim Geiger
Auszubildender Fachinformatiker AE

B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
Matijn Woudt
2013-08-03 21:46:50 UTC
Permalink
Post by Karim Geiger
Post by Miguel Guedes
This is strange. I've just found out that the headers are sent
correctly if I access the website outside of localhost. I don't
understand why.
I also don't. I've tried the exactly same code you posted on my
localhost as well and it worked all properly. Weird behaviour, can
anyone explain why this happens?
Regards
Karim
Could it be that you're actually ending up with a different site because
you have configured your vhost to a certain domain?

- Matijn

Matijn Woudt
2013-08-02 13:10:34 UTC
Permalink
Post by Miguel Guedes
Hello List,
I'm running PHP 5.4.9 as CGI (via apache 2.2.22) and can't seem to be
able to send headers to the server.
Both,
header('Status: 500 Internal Server Error');
and,
header('HTTP/1.1 500 Internal Server Error', true, 500);
result in nothing happening on the client side.
What am I missing?
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Did you print some data before using header?

- Matijn
Miguel Guedes
2013-08-02 14:20:48 UTC
Permalink
Post by Matijn Woudt
Did you print some data before using header?
No, not at all. I've PHP configured to complain about notices, warnings
and errors; would've got a warning about headers already sent, which I
don't get.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Loading...