Re: CGI error after header("location: some.php");
| From: | Guru P Chaturvedi | Date: | Mon, 05 May 2003 09:51:51 +0000 |
| Subject: | Re: CGI error after header("location: some.php"); | ||
| References: | 1 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-19764@lists.php.net to get a copy of this message | ||
Hi peter,
this can be solved by making few changes to ur IIS/PWS: follow the
instructions below:
Windows NT/2000/XP and IIS 4 or newer
To install PHP on an NT/2000/XP Server running IIS 4 or newer, follow these
instructions. You have two options to set up PHP, using the CGI binary
(php.exe) or with the ISAPI module.
In either case, you need to start the Microsoft Management Console (may
appear as 'Internet Services Manager', either in your Windows NT 4.0 Option
Pack branch or the Control Panel=>Administrative Tools under Windows
2000/XP). Then right click on your Web server node (this will most probably
appear as 'Default Web Server'), and select 'Properties'.
If you want to use the CGI binary, do the following:
a.. Under 'Home Directory', 'Virtual Directory', or 'Directory',
click on
the 'Configuration' button, and then enter the App Mappings tab.
b.. Click Add, and in the Executable box, type: c:\php\php.exe (assuming
that you have unziped PHP in c:\php\).
c.. In the Extension box, type the file name extension you want associated
with PHP scripts. Leave 'Method exclusions' blank, and check the Script
engine checkbox. You may also like to check the 'check that file exists'
box - for a small performance penalty, IIS (or PWS) will check that the
script file exists and sort out authentication before firing up php. This
means that you will get sensible 404 style error messages instead of cgi
errors complaining that php did not output any data.
You must start over from the previous step for each extension you want
associated with PHP scripts. .php and .phtml are common, although .php3 may
be required for legacy applications.
d.. Set up the appropriate security. (This is done in Internet Service
Manager), and if your NT Server uses NTFS file system, add execute rights
for I_USR_ to the directory that contains php.exe.
To use the ISAPI module, do the following:
a.. If you don't want to perform HTTP Authentication using PHP, you can
(and should) skip this step. Under ISAPI Filters, add a new ISAPI filter.
Use PHP as the filter name, and supply a path to the php4isapi.dll.
b.. Under 'Home Directory', click on the 'Configuration' button. Add a new
entry to the Application Mappings. Use the path to the php4isapi.dll as the
Executable, supply .php as the extension, leave Method exclusions blank, and
check the Script engine checkbox.
c.. Stop IIS completely (NET STOP iisadmin)
d.. Start IIS again (NET START w3svc)
Regards,
Guru.
"Peter Misun" <misun@microstep-mis.sk> wrote in message
news:3EB62B74.97965CE6@microstep-mis.sk...
>
> Hi,
>
> I'm running PHP 4.1.2 on W2k Server.
> I have one big problem:
>
> in some script (first.php) a have a html form ("<form ...>"), from where
second.php is called
> in second.php a have some commands doing something with database through
odbc_exec() function and after that calling with
header("location:third.php") the next script third.php
>
> problem is, that in many cases i've got CGI Error message instead of
output from third.php
> but after reloading/refreshing page manually by user, it shows the
third.php without any problems
>
> error message is:
> CGI Error
> The specified CGI application misbehaved by not returning a complete set
of
> HTTP headers. The headers it did return are:
>
> what's wrong? any ideas?
>
> thanks a lot
>
> 5o
>
>