ID: 6795
Updated by: sniper
Reported By: [EMAIL PROTECTED]
Old-Status: Closed
Status: Open
Bug Type: Apache related
Assigned To: 
Comments:

Reopened per user request. Problem still exists
with php4.0.4pl1

--Jani

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

[2000-12-30 14:05:49] [EMAIL PROTECTED]
No feedback, considered fixed.

--Jani

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

[2000-12-04 09:01:27] [EMAIL PROTECTED]
Could you please check if this problem exists when
using the PHP 4.0.4RC3:

http://www.php.net/distributions/php-4.0.4RC3.tar.gz

--Jani

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

[2000-09-17 19:49:16] [EMAIL PROTECTED]
There seems to be a problem with the values of $PATH_TRANSLATED under different 
circumstances :-

In your Apache document_root create the following files :-

.htaccess
AddHandler testhandler .test
Action testhandler handler.phtml

handler.phtml
<? print "PATH_TRANSLATED = $PATH_TRANSLATED"; ?>

index.test
Content not used

You will need AllowOverride All (or similar) in the Directory spec for your Apache 
document root (to all adding handlers).

Here is a list of requests and responses

http://localhost/index.test -
    PATH_TRANSLATED = /home/httpd/html/handler.phtml (Incorrect)
http://localhost/handler.phtml -
    PATH_TRANSLATED = /home/httpd/html/handler.phtml (Correct)
http://localhost/index.test/path_info -
    PATH_TRANSLATED = /home/httpd/html/handler.phtml (Incorrect)
http://localhost/handler.phtml/path_info -
    PATH_TRANSLATED = /home/httpd/html/handler.phtml (Incorrect)

The reason I have put incorrect for 3 of the tests is that the value differs from the 
value of PATH_TRANSLATED that Apache provides.  PHP just copies the value of 
SCRIPT_FILENAME over the top of PATH_TRANSLATED.  Please find attached a patch to make 
to responses the same as Apache's version of PATH_TRANSLATED.

http://localhost/index.test -
    PATH_TRANSLATED = /home/httpd/html/index.test (Correct)
http://localhost/handler.phtml -
    PATH_TRANSLATED = /home/httpd/html/handler.phtml (Correct)
http://localhost/index.test/path_info -
    PATH_TRANSLATED = /home/httpd/html/index.test/path_info (Correct)
http://localhost/handler.phtml/path_info -
    PATH_TRANSLATED = /home/httpd/html/path_info (Incorrect)

Not really sure whats going on with the last test - bug in Apache.  There is also a 
pretty big bug in Apache when doing these type of tests from a public_html (~user) 
type of directory.

Rgds Drew Wells

--- php-4.0.2/sapi/apache/mod_php4.c.orig       Sun Aug 20 15:29:00 2000
+++ php-4.0.2/sapi/apache/mod_php4.c    Mon Sep 18 12:16:49 2000
@@ -232,7 +232,7 @@
        register int i;
        array_header *arr = table_elts(((request_rec *) 
SG(server_context))->subprocess_env);
        table_entry *elts = (table_entry *) arr->elts;
-       char *script_filename=NULL;
+       char *script_filename = NULL, *path_translated = NULL;
 
        for (i = 0; i < arr->nelts; i++) {
                char *val;
@@ -241,7 +241,10 @@
                        val = elts[i].val;
                        if (!strcmp(elts[i].key, "SCRIPT_FILENAME")) {
                                script_filename = val;
+                       } else if (!strcmp(elts[i].key, "PATH_TRANSLATED")) {
+                               path_translated = val;
                        }
+
                } else {
                        val = empty_string;
                }
@@ -249,7 +252,7 @@
        }
 
        /* insert special variables */
-       if (script_filename) {
+       if (script_filename && !path_translated) {
                php_register_variable("PATH_TRANSLATED", script_filename, 
track_vars_array ELS_CC PLS_CC);
        }
        php_register_variable("PHP_SELF", ((request_rec *) SG(server_context))->uri, 
track_vars_array ELS_CC PLS_CC);


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


Full Bug description available at: http://bugs.php.net/?id=6795


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to