Meddelande

Minska
No announcement yet.

IF-sats och include krånglar

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • IF-sats och include krånglar

    Hej,

    Jag är nu så frustrerad att jag överväger att slänga ut datorn genom fönstret.

    Bygger ett litet script för besökare enkelt ska kunna byta språk på sidan.

    Upplägget:
    1) Besökaren väljer språk, valet lagras i en databas
    2) Beroende på valt språk så ska olika filer språk-laddas in. Dessa filer är .txt-filer.

    Rs letar efter besökare i databasen, om träff så kollar den efter valt språk. Om det saknas träff, dvs att besökaren inte valt språk, så ska den tanka in UK.asp som default. Just nu testar jag bara med två språk-filer, men så småningom är det ju tänkt att vara 14 olika filer.

    IF-satsen:
    Kod:
    <%
    IF rs.eof then
    %>
    	<!--#include file ="include/uk.asp"-->
    <%
    ELSE
    	IF rs("sessionLang") = "SE" then
    %>
    		<!--#include file ="include/se.asp"-->
    <%	
    	ELSEIF rs("sessionLang") = "UK" then
    %>
    		<!--#include file ="include/uk.asp"-->
    <%
    	ELSE
    		response.write ""
    	END IF
    END IF
    %>
    Innehållet i t ex uk.asp ser ut såhär:
    <%
    Const MSG_SEARCH_GENERATED = "You search generated the following result:"
    Const MSG_SHOPPINGBASKET_IS_EMTY = "The shopping bag is empty."
    %>

    Innehållet i de olika filerna är ju likt, förutom att språken varierar. Men Const är ju detsamma, och heter likadant.

    Vad händer då?

    Felmeddelande:

    Microsoft VBScript compilation error '800a0411'

    Name redefined

    /include/uk.asp, line 3

    Const MSG_SEARCH_GENERATED = "You search generated the following result:"
    ------^


    Jag skulle förstå felmeddelandet om jag lade in alla include-filerna bredvid varandra, och utan IF-satsen, eftersom samma Const då hade funnits med flera gånger och skapat problem. MEN nu när det finns en IF-sats (och den är korrekt och ger korrekta svar om jag tar bort include-fil-länkarna) så ska den ju bara tanka in en språk-include-fil åt gången. Alltså borde problemet "Name redefined" inte uppstå.

    Eller?

    Tänker jag helt galet? Blir iallafall snart galen. 4 sure.
    http://www.hasthelargehadroncolliderdestroyedearthyet.com/

  • #2
    Äsch, kom på svaret efter att ha ätit lunch.
    Tog bort Const ifrån txt-filerna.
    http://www.hasthelargehadroncolliderdestroyedearthyet.com/

    Kommentera


    • #3
      Har för mig att "#include file" alltid inkluderar filerna, då det läses in innan själva filen exekveras.
      Min alldeles egna directory listing.

      Kommentera


      • #4
        Det stämmer som colione säger. Använd Server.Execute("filnamn.asp") istället.
        Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

        Kommentera


        • #5
          Stämmer.
          Sen kan du även med fördel byta ut alla #INCLUDE FILE till #INCLUDE VIRTUAL då VIRTUAL utgår från roten medan FILE utgår från respektive fils definitiva placering...

          Ja, alltså, enklare beskrivet, du kan copy/paste all din kod enklare mellan olika mappar osv utan att ändra i koden.

          Kommentera

          Working...
          X