[PHP-DEV] Bug #9041 Updated: Extra #! at top of web output. From: sander <email protected>
Date: 08/31/01

ID: 9041
Updated by: sander
Reported By: john <email protected>
Status: Analyzed
Bug Type: *General Issues
Operating System: Solaris 7.
PHP Version: 4.0.4pl1
New Comment:

Diff copied from #8898:

*** sapi/cgi/cgi_main.c.origSun Dec 3 02:09:13 2000
--- sapi/cgi/cgi_main.cWed Jan 24 16:39:34 2001
***************
*** 719,725 ****
  return FAILURE;
  }
  file_handle.filename = argv0;
! } else if (file_handle.handle.fp && file_handle.handle.fp!=stdin) {
  /* #!php support */
  c = fgetc(file_handle.handle.fp);
  if (c == '#') {
--- 719,726 ----
  return FAILURE;
  }
  file_handle.filename = argv0;
! }
! if (file_handle.handle.fp && file_handle.handle.fp!=stdin) {
  /* #!php support */
  c = fgetc(file_handle.handle.fp);
  if (c == '#') {

Previous Comments:
------------------------------------------------------------------------

[2001-06-17 04:41:01] jmoore <email protected>

This will be fixed when we split the commandline and cgi modules apart. moving back to analysed.

- James

------------------------------------------------------------------------

[2001-05-09 11:40:05] john <email protected>

Here's a quick and dirty fix.

18:39 <james``> oK open cgi_main.c
18:39 <james``> and goto line 720
18:40 <james``> See that else if .....
18:40 <james``> } else if (file_handle.handle.fp && file_handle.handle.fp!=stdin) {
18:40 <james``> make it read }
18:41 <james``> and then loose the } 11 lines down

------------------------------------------------------------------------

[2001-02-24 12:06:51] jmoore <email protected>

Suspending this until a decision about what should be the correct behaviour from PHP should be.

------------------------------------------------------------------------

[2001-02-05 16:34:55] john <email protected>

Here are the CGI's I'm using:

----
#!/opt/php/bin/php
<? phpinfo(); ?>
----

---- #!/bin/sh echo Content-type: text/html\\n\\n; echo "foo!" ----

Now this might not help any, but I truss'd the web server process (Netscape, remember.) and here a few snippits output.

sh CGI. read(23, " C o n t e n t - t y p e".., 8192) = 31 send(17, " H T T P / 1 . 1 2 0 0".., 118, 0) = 118 send(17, "\n f o o !\n", 6, 0) = 6

PHP CGI. read(22, " X - P o w e r e d - B y".., 8192) = 5120 send(17, " H T T P / 1 . 1 2 0 0".., 146, 0) = 146 send(17, " # ! / o p t / p h p / b".., 5065, 0) = 5065

Graphic for PHP CGI page. send(19, " H T T P / 1 . 1 2 0 0".., 146, 0) = 146 send(19, " G I F 8 9 a82\0 C\0D5FF".., 2962, 0) = 2962

I can't tell if the web server is inserting this line or if PHP is. However, when I run these two CGIs on the command line, I never see this extra line. I guess I'm thinking that PHP does weird shit when it's not run in a shell.

Any other information I can provide?

------------------------------------------------------------------------

[2001-02-05 16:21:27] jmoore <email protected>

it is in there.. My bad must be somthing else..

James

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/?id=9041

Edit this bug report at http://bugs.php.net/?id=9041&edit=1

-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe <email protected> For additional commands, e-mail: php-dev-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>