03. marts 2005 - 10:49Der 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.
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
<%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.
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.
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.
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.