You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Jeff Barrett <jb...@reachtheplanet.com> on 1998/08/19 10:57:05 UTC

mod_include/2872: (mod_include) $variable tests using regular expressions are incorrect when including more than one test situation

>Number:         2872
>Category:       mod_include
>Synopsis:       (mod_include) $variable tests using regular expressions are incorrect when including more than one test situation
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Wed Aug 19 02:00:01 PDT 1998
>Last-Modified:
>Originator:     jb@reachtheplanet.com
>Organization:
apache
>Release:        1.3.1 (unix)
>Environment:
Linux unix.reachtheplanet.com 2.0.35 #2 Thu Jul 23 02:17:07 CDT 1998 i586 unknown
RedHat 5.1
>Description:
1. what i'm trying to accomplish.
2. what i'm doing, specifically, to attempt to accomplish it.
3. the results i'm getting.

1.
  i'm trying to use server-side includes to build and maintain a navigation-button-bar
that is included on pages within a webspace (done).  the bar has buttons to directories
in the webspace.
when a user is viewing content in the "support" directory, for example, the "support" button
will be a different, outstanding button than the other buttons.  this is determined by using a
conditional statement with mod_include to test what directory the user is in ($DOCUMENT_URI)
against each directory/button name as the navigation bar is being built. if it matches, by
regexp SSI-if-statement, the appropriate button will be displayed.
 
2.
  a standard html document within the webspace would contain an include statement
that would call the source navbutton.html document.  this document contains SSI
which "builds" and "tests" each button within the navigation bar and then include it
in the calling document. it will determine whether or not the button should be button.gif
or button_over.gif, depending on whether or not the user is in the corresponding directory
of the webspace.

example; <!--#if expr="\"$DOCUMENT_URI\" >= \"/support/\"" -->

the above example should test true if "/support/" is in "$DOCUMENT_URI" by
regular expression match. therefore, including whatever follows, up until the
next #ifel or #else statement.

3.
the above example works. the problem that pops up is when one tries to use that
statement again.

when the code is used again, BOTH conditions are testing TRUE although only the
second condition should be testing true. (i know this is confusing; see the
code/url example)
>How-To-Repeat:
the following is the exact code i'm using:

<!--begin support button build/test -->
<!--#if expr="\"$DOCUMENT_URI\" >= \"/support/\"" -->
tested true
<!--#set var="navimg" value="support_over.gif" -->
<!--#else -->
<!--#set var="navimg" value="support.gif" -->
<!--#endif -->
<a href="/support">
<img src="/support/<!--#echo var="navimg" -->" width="100" height="25" name="support" border="0"></a><br>
<!--end support button build/test -->

<-- begin next button build/test --> ..............
........ and so on ...

the first above example works if one is viewing documents in /support/* and this is
the FIRST time the #if-condition has been used.

if one views the SECOND button that has been tested... for example, "service", which
would be in the /server/* webspace, BOTH condition one and condition two are
testing TRUE.

this is hard to understand/explain as well.  see the following url for an example:

http://www.reachtheplanet.com/test/navbar.html
>Fix:
i do not have knowledge or suggested ways to fix this issue.
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, ]
[you need to include <ap...@Apache.Org> in the Cc line ]
[and leave the subject line UNCHANGED.  This is not done]
[automatically because of the potential for mail loops. ]
[If you do not include this Cc, your reply may be ig-   ]
[nored unless you are responding to an explicit request ]
[from a developer.                                      ]
[Reply only with text; DO NOT SEND ATTACHMENTS!         ]