Avatar billede kometen79 Nybegynder
03. marts 2005 - 10:49 Der er 12 kommentarer og
1 løsning

Undgå Name Remaned

Hvordan kan jeg undgå denne her fejl:

Error Type:
Microsoft VBScript compilation (0x800A0411)
Name redefined
/webvizion/Expositus/WWW/Includes/language_file_dk_inc.asp,

Jeg har to filer en på dansk og en på engelsk. Filerne bliver inkluderet i toppen af mit site, jeg har prøvet en masse forskelligt bl.a.:

If session("language_version") 0 1 then
<!--#INCLUDE file="Includes/language_dk.inc" -->
else
<!--#INCLUDE file="Includes/language_uk.inc" -->
end if

Jeg har også prøvet med SELECT CASE. Derudover har jeg prøvet at lave en fil hvor de både står på engelsk og dansk (via. select case) men fejlen bliver ved med at komme.

Det må da kunne lade sig gøre ;)
Avatar billede fennec Nybegynder
03. marts 2005 - 10:57 #1
Du skal flytte alle dim ind på hoved siden, så der ikke er nogen i includefilerne.

dim temp1, temp2, temp3....
If session("language_version") 0 1 then
<!--#INCLUDE file="Includes/language_dk.inc" -->
else
<!--#INCLUDE file="Includes/language_uk.inc" -->
end if
Avatar billede kometen79 Nybegynder
03. marts 2005 - 13:14 #2
Jeg får stadigvæk fejlen, mit script ser således ud:

<%
if session("admin_version") <> "" then
admin_language = session("admin_version")
    SELECT CASE (admin_language)%>
        <%case "1"%>
            <!--#INCLUDE file="../../Includes/language_file_dk_inc.asp" -->
        <%case "2"%>
            <!--#INCLUDE file="../../Includes/language_file_ch_inc.asp" -->
        <%case "3"%>
            <!--#INCLUDE file="../../Includes/language_file_fr_inc.asp" -->
        <%case "4"%>
            <!--#INCLUDE file="../../Includes/language_file_gb_inc.asp" -->
        <%case "5"%>
            <!--#INCLUDE file="../../Includes/language_file_ep_inc.asp" -->
        <%case "6"%>
            <!--#INCLUDE file="../../Includes/language_file_de_inc.asp" -->
    <%END SELECT
else
end if%>


Microsoft VBScript compilation (0x800A0411)
Name redefined
/webdesign/Ekspositus/WWW/Includes/language_file_ch_inc.asp, line 4, column 6
Const strTxtGenClickHere = "Click here"
Avatar billede kometen79 Nybegynder
03. marts 2005 - 13:33 #3
Jeg har også prøvet følgende istedet for:

<%admin_language = session("admin_version")
    SELECT CASE (admin_language)
        case "1"
            server.execute("language_file_dk_inc.asp")
        case "2"
            server.execute("language_file_ch_inc.asp")
        case "3"
            server.execute("language_file_fr_inc.asp")
        case "4"
            server.execute("language_file_eng_inc.asp")
        case "5"
            server.execute("language_file_ep_inc.asp")
        case "6"
            server.execute("language_file_de_inc.asp")
    END SELECT
%>

Men så får jeg en fejl om at den ikke kan exeutes.
Avatar billede kometen79 Nybegynder
03. marts 2005 - 13:37 #4
Error Type:
Server object, ASP 0228 (0x80004005)
The call to Server.Execute failed while loading the page.
Avatar billede fennec Nybegynder
03. marts 2005 - 13:38 #5
Du kan ikke lave konstanter som går igen i includes. En lille forklaring på hvordan include fungere.

Includes bliver hentet ind før noget andet bliver foretaget, så oprettes variabler, og tilsidst afvikles koden. Der bliver altså ikke kørt noget kode inden includes er hentet. Resultatet af din kode her bliver altså:

if session("admin_version") <> "" then
admin_language = session("admin_version")
    SELECT CASE (admin_language)%>
        <%case "1"%>
<%
Const strTxtGenClickHere = "Tryk her"
... andet fra filen
%>
        <%case "2"%>
<%
Const strTxtGenClickHere = "Click here"
... andet fra filen
%>
        <%case "3"%>
<%
Const strTxtGenClickHere = "Fransk for Tryk her"
... andet fra filen
%>
        <%case "4"%>
...
...

Og da alle variabler oprettes inden koden afvikles er det lige meget om de står i en if-sætning. Den prøver derfor at rettet en Const værdi, og det fejler naturligvis.

Execute er heller ikke en løsning, da man ikke kan dele variabler på kryds af de sider.
Avatar billede kometen79 Nybegynder
03. marts 2005 - 13:40 #6
OK, mange tak hvad kan så være løsningen uden jeg skal døbe alle navnene om?
Avatar billede fennec Nybegynder
03. marts 2005 - 13:56 #7
Du skal bare bruge dim i stedet for const, men det giver jo desværre en sikkerhedsrisiko.

dim strTxtGenClickHere, temp1, temp2, temp3....
if session("admin_version") <> "" then
admin_language = session("admin_version")
    SELECT CASE (admin_language)%>
        <%case "1"%>
            <!--#INCLUDE file="../../Includes/language_file_dk_inc.asp" -->
        <%case "2"%>
            <!--#INCLUDE file="../../Includes/language_file_ch_inc.asp" -->
        <%case "3"%>
            <!--#INCLUDE file="../../Includes/language_file_fr_inc.asp" -->
        <%case "4"%>
            <!--#INCLUDE file="../../Includes/language_file_gb_inc.asp" -->
        <%case "5"%>
            <!--#INCLUDE file="../../Includes/language_file_ep_inc.asp" -->
        <%case "6"%>
            <!--#INCLUDE file="../../Includes/language_file_de_inc.asp" -->
    <%END SELECT
else
end if
response.write strTxtGenClickHere
response.write temp1
response.write temp2
response.write temp3
%>

Sprogfilerne skal så bare være:

[language_file_dk_inc.asp]
strTxtGenClickHere = "Tryk her"
temp1 = "en eller anden tekst"
temp2 = "noget andet tekst"
temp3 = "noget helt andet"

[language_file_eng_inc.asp]
strTxtGenClickHere = "Click here"
temp1 = "some text"
temp2 = "some other text"
temp3 = "completly different"
Avatar billede kometen79 Nybegynder
03. marts 2005 - 15:55 #8
Kan du forklarer hvad sikkerhedsrisikoen er?
Avatar billede fennec Nybegynder
03. marts 2005 - 16:29 #9
Før brugte du konstanter, hvilket betyder at du ikke, ved et uheld, kan give dem en ny værdi:
Const strTxtGenClickHere = "Click here"
strTxtGenClickHere = "dette kan man ikke, da det er en konstant variabel"

Nu bruger du almindelige variabler, så du skal passe på du ikke overskriver dem. Du skal altså selv sikre dig at du ikke kommer til at tildele nogen af variablerne fra sprogfilerne en forkert værdi, eller kommer til at ændre dem i koden.
Avatar billede kometen79 Nybegynder
03. marts 2005 - 22:09 #10
Tusind tak for det gode og grundige svar, smid et svar og du får point.
Avatar billede kometen79 Nybegynder
03. marts 2005 - 22:59 #11
Jeg får denne her fejl: Expected identifier
Avatar billede kometen79 Nybegynder
03. marts 2005 - 23:07 #12
Jeg har fundet ud af det
Avatar billede fennec Nybegynder
04. marts 2005 - 08:19 #13
.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester