Solved

CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Posted on 2006-11-21
11
410 Views
Last Modified: 2013-11-18
U run this simple php script:

<?php

$a = file_get_contents("http://img.microsoft.com/windows/images/homepage/products/winFamLogo_XP.gif");
echo $a;

?>

and I get the error

CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers.

the only way it works is to change the path to gif file to an actual path with a gif or jpg file..
but it cannot work with urls..
any one knows how to fix this ?
0
Comment
Question by:MaRiOsGR
  • 5
  • 2
  • 2
  • +1
11 Comments
 
LVL 29

Expert Comment

by:TeRReF
ID: 17987316
Try this:
<?php
ob_start();
$a = file_get_contents("http://img.microsoft.com/windows/images/homepage/products/winFamLogo_XP.gif");
echo $a;
ob_end_flush();
?>
0
 
LVL 2

Author Comment

by:MaRiOsGR
ID: 17987427
I have to fix it to work globaly, not just change some code in one file.

0
 
LVL 29

Expert Comment

by:TeRReF
ID: 17987817
Then you should either use the ISAPI version of PHP or if the solution works for one file, you can change the php.ini setting output_buffering to On:
output_buffering = On
0
 
LVL 6

Expert Comment

by:aescnt
ID: 17988541
*shrug*
What other PHP files do it?
Putting an appropriate content type header (header("Content-type: image/gif")) might help.
(And no, there's no "global" way to automate this.. sorry :))

Btw, I'm don't quite understand why ob_start/ob_end_flush will fix it. I know it will buffer the output and flush it anyway, which is the same as not doing it at all. (I don't think doing "echo $a" will flush in the middle of echo'ing $a, so I don't think there's a need for output buffering.)
0
 
LVL 2

Author Comment

by:MaRiOsGR
ID: 17988768
the header header("Content-type: image/gif" is needed only when
I change this ("http://img.microsoft.com/windows/images/homepage/products/winFamLogo_XP.gif");
to a local file like("mypic.gif");

The problem was shown after an upgrade in the php version...

I test the script in a linux server and it works fine, the problem happens only in the windows box...

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 6

Expert Comment

by:aescnt
ID: 17988830
Hmm, file_get_contents() might be producing an error that you're not seeing. try making a php file with `<?php $a = file_get_contents("http://www.google.com"); echo $a; ?>` and see what the output is.

This is just a hunch, but the fopen wrappers might not be enabled on your windows installation of PHP, and thus produces an error. Not sure why it would give that CGI error though.
0
 
LVL 2

Author Comment

by:MaRiOsGR
ID: 17994116
aescnt that gives me tha same output...

CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers.


I try to use at the vhost options to use ISAPI for php works.
then reaload the page and I get this error:

The connection was reset

The connection to the server was reset while the page was loading.

I turned off the firewall just in case but nothing changed..
0
 
LVL 2

Author Comment

by:MaRiOsGR
ID: 17994260
A possible sollution found,

it is a bug of php 4.4.2 and it doenst allow the includ of http://
we will update to 4.4.4 version tonight.

I will reply with the result.
0
 
LVL 2

Author Comment

by:MaRiOsGR
ID: 18150996
The update fixed everything it was a bug of php 4.4.2
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
ID: 18473038
PAQed with points refunded (500)

Computer101
EE Admin
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

These days socially coordinated efforts have turned into a critical requirement for enterprises.
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now