]> granicus.if.org Git - php/commitdiff
- replaced some old code to access server variables
authorUwe Steinmann <steinm@php.net>
Fri, 10 Mar 2000 11:36:27 +0000 (11:36 +0000)
committerUwe Steinmann <steinm@php.net>
Fri, 10 Mar 2000 11:36:27 +0000 (11:36 +0000)
ext/hyperwave/hg_comm.c
ext/hyperwave/hw.c

index a3fe28265d6043bbdfc784f2c29f1073cbf677bd..aab3d3f7c98c68ff4db089be1fc581d0dea031f0 100644 (file)
@@ -590,13 +590,26 @@ char *fnInsAnchorsIntoText(char *text, DLIST *pAnchorList, char **bodytag, char
        int laststart=0;
 
 /* The following is very tricky and depends on how rewriting is setup on your webserver.
-   If you skip the scriptname in the url you will have to map each hyperwave name to http://<hwname>.
-   This may not always be a good idea. The best solution is probably to provide a prefix for such
-   a case which is an optional parameter to hw_gettext hw_pipedocument.
+   If you skip the scriptname in the url you will have to map each hyperwave name
+   to http://<hwname>. This may not always be a good idea. The best solution is
+   probably to provide a prefix for such
+   a case which is an optional parameter to hw_gettext() or hw_pipedocument().
+   FIXME: Currently, the variable SCRIPT_NAME is empty thouht SCRIPT_URL is
+   not. In our case this is OK, since as mentioned above it is better to have no
+   SCRIPT_NAME than to have if rewriting is on.
 */
        if(urlprefix) {
                scriptname = urlprefix;
        } else {
+               zval **script_name;
+               if (zend_hash_find(&EG(symbol_table), "SCRIPT_NAME", sizeof("SCRIPT_NAME"), (void **) &script_name)==FAILURE)
+                       scriptname = NULL;
+               else {
+                       convert_to_string_ex(script_name);
+                       scriptname = (*script_name)->value.str.val;
+               }
+
+#if 0
 #if APACHE
                {
                int j;
@@ -604,13 +617,15 @@ char *fnInsAnchorsIntoText(char *text, DLIST *pAnchorList, char **bodytag, char
                table_entry *elts = (table_entry *)arr->elts;
 
                for (j=0; j < arr->nelts; j++) {
-                       if(0 == strcmp(elts[j].key, "SCRIPT_NAME"))
+                       if((0 == strcmp(elts[j].key, "SCRIPT_NAME")) ||
+                          (0 == strcmp(elts[j].key, "SCRIPT_URL")))
                        break;
                }
                scriptname = elts[j].val;
                }
 #else
                scriptname = getenv("SCRIPT_FILENAME");
+#endif
 #endif
        }
 
index 1e6013c09ad688a957e331f19a900b52209d7be4..45016d47e62055bbb23d62f8a1ee1460bbef66cc 100644 (file)
@@ -205,9 +205,9 @@ PHP_MINIT_FUNCTION(hw) {
        HwSG(le_document) = register_list_destructors(_free_hw_document,NULL);
        hw_module_entry.type = type;
 
-//     REGISTER_LONG_CONSTANT("HW_ATTR_LANG", HW_ATTR_LANG, CONST_CS | CONST_PERSISTENT);
-//     REGISTER_LONG_CONSTANT("HW_ATTR_NR", HW_ATTR_NR, CONST_CS | CONST_PERSISTENT);
-//     REGISTER_LONG_CONSTANT("HW_ATTR_NONE", HW_ATTR_NONE, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("HW_ATTR_LANG", HW_ATTR_LANG, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("HW_ATTR_NR", HW_ATTR_NR, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("HW_ATTR_NONE", HW_ATTR_NONE, CONST_CS | CONST_PERSISTENT);
        return SUCCESS;
 }