zeev Sun Jan 21 16:06:52 2001 EDT
Modified files:
/php4/sapi/apache mod_php4.c
Log:
Don't overwrite PATH_TRANSLATED if it exists
Index: php4/sapi/apache/mod_php4.c
diff -u php4/sapi/apache/mod_php4.c:1.84 php4/sapi/apache/mod_php4.c:1.85
--- php4/sapi/apache/mod_php4.c:1.84 Wed Jan 3 14:45:11 2001
+++ php4/sapi/apache/mod_php4.c Sun Jan 21 16:06:52 2001
@@ -17,7 +17,7 @@
| PHP 4.0 patches by Zeev Suraski <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: mod_php4.c,v 1.84 2001/01/03 22:45:11 zeev Exp $ */
+/* $Id: mod_php4.c,v 1.85 2001/01/22 00:06:52 zeev Exp $ */
#define NO_REGEX_EXTRA_H
#ifdef WIN32
@@ -225,25 +225,35 @@
array_header *arr = table_elts(((request_rec *)
SG(server_context))->subprocess_env);
table_entry *elts = (table_entry *) arr->elts;
char *script_filename=NULL;
+ zval **path_translated;
+ HashTable *symbol_table;
for (i = 0; i < arr->nelts; i++) {
char *val;
if (elts[i].val) {
val = elts[i].val;
- if (!strcmp(elts[i].key, "SCRIPT_FILENAME")) {
- script_filename = val;
- }
} else {
val = empty_string;
}
php_register_variable(elts[i].key, val, track_vars_array ELS_CC
PLS_CC);
}
- /* insert special variables */
- if (script_filename) {
- php_register_variable("PATH_TRANSLATED", script_filename,
track_vars_array ELS_CC PLS_CC);
+ /* If PATH_TRANSLATED doesn't exist, copy it from SCRIPT_FILENAME */
+ if (track_vars_array) {
+ symbol_table = track_vars_array->value.ht;
+ } else if (PG(register_globals)) {
+ /* should never happen nowadays */
+ symbol_table = EG(active_symbol_table);
+ } else {
+ symbol_table = NULL;
+ }
+ if (symbol_table
+ && !zend_hash_exists(symbol_table, "PATH_TRANSLATED",
+sizeof("PATH_TRANSLATED"))
+ && zend_hash_find(symbol_table, "SCRIPT_FILENAME",
+sizeof("SCRIPT_FILENAME"), (void **) &path_translated)) {
+ php_register_variable("PATH_TRANSLATED", Z_STRVAL_PP(path_translated),
+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);
}
--
PHP CVS 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]