19. november 2009 - 18:06Der er
25 kommentarer og 1 løsning
Kode der ikke virker mere
Hej
Jeg har to stumper kode der har kørt i årevis på en anden server. Nu er siden blevet flyttet til en anden host (windows 2003 Web edition) og nu vil det ikke køre mere
Første returnerer: Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 1]'
/copenhagen/nyheder/nyhederindhold.asp, line 70
Den anden i princippet det samme: Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 1]'
/copenhagen/gaestebog/gaestebogindhold.asp, line 82
Har søgt på nettet - men svarene handler altid om at der er fejl i "array" ... jeg har ikke forstand til at vurdere dette - men synes jo det er mærkeligt at den samme kode har virket før på en anden host - og nu vil den ikke mere .... Nogen der kan se på koderne og vurdere hvad der er galt ... eller er det en indstilling på IIS'en der skal rettes (jeg har selv adgang til serveren)
if Request.QueryString("modus") = "a" and isAdmin = SHOP_LOGIN_KODE then showasadmin = true end if
if not isArray(NYHEDSKATEGORI_ARR) then kategori = -1 else if Request.QueryString("kat") = "" then kategori = 0 'default til 1. kategori else kategori = cInt(Request.QueryString("kat")) end if end if
'showAsAdmin = true 'OBS OBS
'***HOVEDPROGRAM call db_get_list
'***SUBS OG FUNCTIONS
sub db_get_list dim fso dim abs_path dim ff, filecontent dim contentarray dim filesToDelete filesToDelete = ""
set Fso = CreateObject("Scripting.FileSystemObject") if not fso.FolderExists(abs_path) then Response.write "Fejl: Databasefolderen kunne ikke findes på '" & abs_path & "'. Kan ikke fortsætte" Response.End end if
Set f = fso.GetFolder(abs_path) Set fc = f.Files for each afile in fc set ff = Fso.OpenTextFile(abs_path & "/" & afile.name, 1) filecontent = ff.readall ff.close contentarray = split(filecontent, DEL)
doinclude = true
'skal det slettes ? if contentArray(NYH_FLD_VISESTIL) <> "" then if cDate(contentArray(NYH_FLD_VISESTIL)) < Date() then doInclude = false filesToDelete = filesToDelete & afile.name & "¤" end if end if
if not showAsAdmin then if contentArray(NYH_FLD_VISESFRA) <> "" then if cDate(contentArray(NYH_FLD_VISESFRA)) > Date() then doInclude = false end if end if end if
'er der kategorier ? if isarray(NYHEDSKATEGORI_ARR) then 'skal denne kategori vises ? if kategori <> cInt(contentArray(NYH_FLD_KATEGORI)) then doInclude = false end if end if
if doinclude then nyhedsarray(nyhedscnt) = contentArray nyhedscnt = nyhedscnt + 1 end if if nyhedscnt > max_num_of_nyheder then exit for end if next nyhedscnt = nyhedscnt - 1
if filesToDelete <> "" then filesToDelete = left(filesToDelete, len(filesToDelete) -1) filesToDelete = split(filesToDelete, "¤") for ii = 0 to ubound(filesToDelete) call db_slet_record (filesToDelete(ii)) next end if
if Request.QueryString("modus") = "a" and isAdmin = SHOP_LOGIN_KODE then showasadmin = true end if
if not isArray(GAESTEBOGKATEGORI_ARR) then kategori = -1 else if Request.QueryString("kat") = "" then kategori = 0 'default til 1. kategori else kategori = cInt(Request.QueryString("kat")) end if end if
if kategori = -1 then indlaegSkalGodkendes = GAESTEBOGGODK_ARR(0) else indlaegSkalGodkendes = GAESTEBOGGODK_ARR(kategori) end if
if indlaegSkalGodkendes = "J" then indlaegSkalGodkendes = true else indlaegSkalGodkendes = false end if
'showAsAdmin = true 'OBS OBS
'***HOVEDPROGRAM call db_get_list
'***SUBS OG FUNCTIONS
sub db_get_list dim fso dim abs_path dim ff, filecontent dim contentarray dim filesToDelete filesToDelete = ""
set Fso = CreateObject("Scripting.FileSystemObject") if not fso.FolderExists(abs_path) then Response.write "Fejl: Databasefolderen kunne ikke findes pŒ '" & abs_path & "'. Kan ikke forts¾tte" Response.End end if
Set f = fso.GetFolder(abs_path) Set fc = f.Files for each afile in fc set ff = Fso.OpenTextFile(abs_path & "/" & afile.name, 1) filecontent = ff.readall ff.close contentarray = split(filecontent, DEL)
doinclude = true
'skal det slettes ? if contentArray(GB_FLD_VISESTIL) <> "" then if cDate(contentArray(GB_FLD_VISESTIL)) < Date() then doInclude = false filesToDelete = filesToDelete & afile.name & "¤" end if end if
if not showAsAdmin then if contentArray(GB_FLD_VISESFRA) <> "" then if cDate(contentArray(GB_FLD_VISESFRA)) > Date() then doInclude = false end if end if end if
if not showAsAdmin and indlaegSkalGodkendes then if contentArray(GB_FLD_PUBLISERET) <> "J" then doInclude = false end if end if
'er der kategorier ? if isarray(GAESTEBOGKATEGORI_ARR) then 'skal denne kategori vises ? if kategori <> cInt(contentArray(GB_FLD_KATEGORI)) then doInclude = false end if end if
if doinclude then nyhedsarray(nyhedscnt) = contentArray nyhedscnt = nyhedscnt + 1 end if if nyhedscnt > max_num_of_indlaeg then exit for end if next nyhedscnt = nyhedscnt - 1
if filesToDelete <> "" then filesToDelete = left(filesToDelete, len(filesToDelete) -1) filesToDelete = split(filesToDelete, "¤") for ii = 0 to ubound(filesToDelete) call db_slet_record (filesToDelete(ii)) next end if
Er du sikker på at dine include filer bliver indlæst?
Grunden til mit spørgsmål er at du i dine include statements, bruger ParentPath funktionen. Den er som standard slået fra i 2003. Der plejer dog at kommen en anden fejl, men bare for at udelukke den Så tjek lige om dine include filer virkelig bilver indlæst.
Din fejl siger at NYH_FLD_VISESTIL er tom i linjen:
if contentArray(NYH_FLD_VISESTIL) <> "" then
Men du har ikke inkluderet dine include filer, så det er ikke mulligt at se hvad der proppet i NYH_FLD_VISESTIL.
function db_get_record (someFileName) dim contentarray, Fso, ff set Fso = CreateObject("Scripting.FileSystemObject") 'Response.Write server.MapPath(SHOP_PATH_TO_LOG & "/kodenyhedssdb") & "\" & someFileName 'Response.end set ff = Fso.OpenTextFile(server.MapPath(SHOP_PATH_TO_LOG & "\kodenyhedsdb") & "\" & someFileName, 1)
filecontent = ff.readall ff.close set ff = nothing db_get_record = split(filecontent, DEL) end function
sub db_slet_record(someFileName) dim Fso, ff, fullpath
call db_slet_billede (someFileName)
set Fso = CreateObject("Scripting.FileSystemObject")
fullpath = server.MapPath(SHOP_PATH_TO_LOG & "\kodenyhedsdb") & "\" & someFileName if fso.fileexists(fullpath) then Fso.deletefile fullpath, true end if end sub
function db_makenewfilenumber() dim Fso, ff dim lastval, fullpath dim filecontent set Fso = CreateObject("Scripting.FileSystemObject") fullpath = server.MapPath(SHOP_PATH_TO_LOG) & "/lastfilenumberused_nyheder.txt" if not Fso.fileexists(fullpath) then Set ff = Fso.CreateTextFile(fullpath, True) ff.Write("1") ff.Close newval = 1 else set ff = Fso.OpenTextFile(fullpath, 1) filecontent = ff.readall ff.close lastVal = cint(filecontent) newval = lastVal + 1 set ff = Fso.OpenTextFile(fullpath, 2) ff.write(newval) ff.close end if set ff = nothing set Fso = nothing newval = cStr(newval) while len(newval) < 5 newval = "0" & newval wEnd db_makenewfilenumber = newval end function
function db_write_record (aContentArr, optFilename, imageIsSupplied) 'hvis der gives et filnavn bruges dette ' hvis filnavnet er -1 så er det en ny fil dim contentStr, Fso, ff, fullpath
dim newfullimage
set Fso = CreateObject("Scripting.FileSystemObject")
if optFilename = -1 then 'ny fil optFilename = db_makenewfilenumber() '& ".txt" end if
'og så billedet if imageIsSupplied then for each file in upload.Files newfullimage = PATH_TO_NYHEDS_BILLEDER & "/" & optFilename & ".jpg" newtempimage = PATH_TO_NYHEDS_TEMP & "/" & optFilename & ".jpg" 'kopier billeder til temp directoriet i fuld størrelse File.CopyVirtual newtempimage File.Delete 'Lav stort billede og thumb 'makeImageVar (aFileObj, anOrigFileName, 300, IMAGE_THUMB_H, priority, aFrompath, aToPath, remSizeRequest) makeImageVar -1, optFilename & ".jpg", 400, NYHEDS_IMAGE_FULL_H, "H", server.MapPath(PATH_TO_NYHEDS_TEMP) & "\", server.MapPath(PATH_TO_NYHEDS_BILLEDER) & "\" makeImageVar -1, optFilename & ".jpg", 160, NYHEDS_IMAGE_THUMB_H, "H", server.MapPath(PATH_TO_NYHEDS_TEMP) & "\", server.MapPath(PATH_TO_NYHEDS_THUMBS) & "\"
'slet den fulde udgave fullpath = server.MapPath(PATH_TO_NYHEDS_TEMP) & "\" & optFilename & ".jpg" if Fso.fileexists(fullpath) then Fso.DeleteFile fullpath, true end if next 'vi overskriver indholdet af aContentArr's billede og thumb aContentArr(NYH_FLD_BILLEDE) = optFilename & ".jpg" aContentArr(NYH_FLD_THUMB) = optFilename & ".jpg" end if
'så laver vi strengen til filen contentStr = "" for ii = 0 to NYH_LAST_IX - 1 'vi fraregner filnavn contentStr = contentStr & aContentArr(ii) & "¤" next contentStr = left(contentStr, len(contentStr) - 1)
fullpath = server.MapPath(SHOP_PATH_TO_LOG & "/kodenyhedsdb") & "/" & optFilename if fso.fileexists(fullpath) then fso.deletefile fullpath, true end if 'lav en ny fil Set ff = Fso.CreateTextFile(fullpath, True) ff.Write(contentStr) ff.Close set ff = nothing set Fso = nothing db_write_record = optFilename end function
sub db_slet_billede(someFileName) dim Fso, fullpath dim contentArr, oldBillede, oldThumb contentArr = db_get_record(someFileName) oldBillede = contentArr (NYH_FLD_BILLEDE) oldThumb = contentArr (NYH_FLD_THUMB)
set Fso = CreateObject("Scripting.FileSystemObject") 'billedet
if Fso.fileexists(fullpath) then Fso.DeleteFile fullpath, true end if 'thumben fullpath = server.MapPath(PATH_TO_NYHEDS_THUMBS) & "\" & oldthumb if Fso.fileexists(fullpath) then Fso.DeleteFile fullpath, true end if 'skriv tekstfilen tilbage contentArr (NYH_FLD_BILLEDE) = "" contentArr (NYH_FLD_THUMB) = "" call db_write_record (contentArr, someFileName, false) end sub
%>
Nyheder_inc.asp
<% 'DATA DER SKAL S®TTES PR SITE :
'NYHEDS KATEGORIER - de kategorier der skal v¾re tilg¾ngelige i nyheder. 'Angives som en streng hvor hver kategori er adskilt med kommaer. 'Databasen gemmer kun henvisninger til disse titler. F. eks 0 for f¿rste kategori. 'Dvs. titlen kan siden ¾ndres nedenfor uden at databasen skal opdateres 'Hvis der ikke skal anvendes kategorier s¾ttes den til tom streng dvs = "" dim NYHEDS_KATEGORIER NYHEDS_KATEGORIER = ""
'SLUT P DATA DER SKAL S®TTES PR SITE*****************************************************************
Hvad indeholder filecontent i nyhederindhold.asp (linje 63)
Du kan indsætte følgende linjer efter linje 63, for at udskrive resultatet og stoppe udførslen af resten af koden:
Responde.Write(nyhederindhold.asp) Responde.End
contentArray skal mindst indeholde 2 værdier, og der gør den tilsyneladende ikke. Variablen: NYH_FLD_VISESTIL har værdien 1. Så derfor skal vi lige vide hvad filecontent indeholder.
12-3-2005¤¤Kolonnekørsel¤ Ca. 2 min før afgang gives der et signal (råb eller fløjten), hvorefter man begynder at klargøre sig til kørsel. Frontkøreren ligger altid yderst til venstre på egen vejbane. Det er altid frontkøreren, der bestemmer fart og rute, og man følger altid med, såfremt det ikke er i strid med færdselsloven.
Indtag en zig-zag formation fra starten. Du skal holde din plads indtil turen er afsluttet, da det giver størst ro i geleddet, og vores Road Captains ved hvor du/I kører, og samtidig giver det en større sikkerhed for dig og dine venner.
Det er meget vigtigt at du holder din bane/linie. Det vil sige, kører du som venstre mand, må du ikke snitte hjørner eller slingre fra side til side. Hold din plads og kør aldrig i midten af kolonnens to rækker.
Overhal aldrig forankørende i din række.
Hold afstand til forankørende i samme spor. Ca. 10-20 meter ved 50 km/t, derover min 25-40 m. Dette er af hensyn til dig selv og de andre, du kører sammen med. En tommelfingerregel er ½ afstand i meter af hastighed. F.eks. ved 80 km/t = 40 meter.
Er der en, der falder fra under kørslen, kører den der kører bag ved op på dennes plads, dvs. denne række i kolonnen rykker op, venstremænd/kvinder forbliver venstre m/k, og højre m/k, forbliver højre m/k.
Kryds eller skift aldrig række i kolonnen, da det kan give en masse uro i kolonnen og afstedkomme farlige situationer.
Ved indkørsel i en rundkørsel bliver man på sin plads i rækken og kører i afpasset fart ind i denne. Dvs. du bruger den del af vejbanen, som du også kører på ved lige strækninger.
Ved udkørsel til anden vej eller i kryds, hvor der stoppes, rykker kolonnen op, så man holder to og to sammen for straks efter, at man har fortaget svingning, at indtage den plads, man havde ved kørsel.
Ved kørsel på smalle veje kan det være nødvendigt at køre i enkel kolonne. Frontkøreren trækker ind i højre vejbanes del, og resten af venstre række følger efter (indfletning). Her skal man udvise stor forsigtighed. Så snart forholdene er til det, indtages den zig-zag formation man havde igen. Dette bestemmes ligeledes af frontkøreren.
Overhaling på landevej: Det er frontkøreren, der overhaler først, følg ikke efter, før du er sikker på, at det kan gøres på forsvarlig måde.
Overhaling på motorvej: Sidste mand kører ud i den anden bane og lukker af. Derefter kører man ud, når man kan se, at der er klar bane. Hold din position i kolonnen!
Den forankørende er altid ansvarlig for, at den bagved kørende er med. Sænk om nødvendigt farten. Dette gælder ikke ved frafald, her er det sidste mand i kolonnen, der tager kontakt til vedkommende. Resten holder ind ved det første passende sted, hvor man ikke holder til fare for os selv eller den øvrige trafik.
Hvis der kommer et bagfra kommende udrykningskøretøj, kører bagerste mand ind i højre banedel, og resten følger med, indtil køretøjet er passeret, og der igen er klar bane. Derefter indtager man den plads man havde før.
Hastigheden i starten af kolonnen er mest rolig og langsom, så hvis du/I er usikker i kolonnekørsel, skal du placere dig i den forreste del af denne. Er du derimod til det lidt kvikke kørsel, er det bagerst, du skal placere dig. Men uanset hvor du befinder dig i kolonnen, skal du altid være opmærksom, da det ikke er ufarligt at køre på denne måde.
Gruppeparkering. Det ser rigtig godt ud hvis vi parkerer side ved side; dvs. frontkøreren kører hen og bakker sin HD på skrå ind, så baghjulet næsten rører kantstenen. Derefter kører den næste ind osv. Husk på at der ikke er noget, der ser mere sjusket ud end en masse HD'er, der står hulter til bulter.
Man møder altid med fuld tank, og hvis der er spisning på programmet, med tom mave.
Hvis der er nogle forhold, du er usikker på, skal du tale med den Road Captain, der er leder på turen. Så vil han tage hånd om dette. Her tænkes der på usikker i sving, høj fart, det at køre i kolonne osv. Hold dig ikke tilbage, da vi alle skal være med på vores egne vilkår. Så skal det nok komme med tiden. Husk på, at Road Captains ikke er mekanikere, kun vejvisere. Du er selv ansvarlig for, at din HD er i form.
'skal det slettes ? 'if contentArray(NYH_FLD_VISESTIL) <> "" then ' if cDate(contentArray(NYH_FLD_VISESTIL)) < Date() then ' doInclude = false ' filesToDelete = filesToDelete & afile.name & "¤" ' end if 'end if
ikke så godt ..... der ligger en mængde indlæg - ikke så meget i nyhedssiden men mere gæstebogen (formentlig samme problem med den). Det vil tage en krig at editere alle de indlæg....
Når jeg sidder direkte på serveren vises tegnet fint ... det ville det vel ikke hvis ikke det var en del af tegntabellen - eller ???
UTROLIGT ... jeg ville lige teste om det hjalp noget at slette alle filer i biblioteket (indholdet) - og så så at det lå en ws_ftp.log fil i mappen sammen med alt det andet... det er jo bare en log fra ftp-overførslen ... Efter den er slettet virker NYHEDERNE ..... MEN tilsvarende hjalp IKKE i gæstebogen
Kan du ikke teste om filecontent indeholder DEL tegnet. Og hvis ikke så skal denne fil ignoreres eller bedre. Sørge for at der smides en fejltekst i listen, som skriver filnavnet på den fil som indeholder problemet.
Du kan jo teste med if InStr(filecontent, DEL) <= 0 then fejlbesked.
Du kan enten lave et permanent tjek eller bare bruge det til debugging.
HOW... det virker ikke som sidst jeg var her på eksperten ..... har lige fået tildelt mig selv point ... det var ikke meningen.. Hvordan flyttes de til dig ???
Vist ikke til andet end at man skal have plus på kontoen hvis man stiller et spørgsmål.
Synes godt om
Ny brugerNybegynder
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.