Avatar billede Towle Nybegynder
19. december 2010 - 16:50 Der er 19 kommentarer og
1 løsning

Placering på ny server - stier?

Jeg har haft en database liggende hos TDC Webmore, men er skiftet til UnoEuro (ASP hotel).

I UnoEuro's FAQ står der:

Når du skal åbne adgang til en Access database, skal du bruge en ADO database connection.
Den kan opstilles som følgende:
<%
dim conn

function OpenConn( DBPath )

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath

end function

OpenConn("d:\web\localuser\musikklassikeren.dk\database\shop.mdb")
%>

Det er hermed gjort til indholdet af min connect.asp, som kaldes fra default.asp, men det giver følgende fejl:

Microsoft VBScript compilation error '800a0411'
Name redefined
/musicstore/include/connect.asp, line 2
dim conn
----^

Min database hedder shop.mdb som ligger i mappen /database. Jeg har prøvet at lægge den parallelt med public_html og inde på roden, men stadig uden resultat.

Hvad er der galt?
Avatar billede keysersoze Guru
19. december 2010 - 17:09 #1
fejlen betyder at du allerede ét sted har Dim'et en variabel ved navn conn - så enten skal du ikke Dim'e den igen eller også skal du fjerne den hvor du ellers har den. En anden mulighed kunne være at du på en eller anden måde får inkluderet filen connect.asp flere gange hvilket du selvfølgelig også skal undgå.
Avatar billede Towle Nybegynder
19. december 2010 - 21:55 #2
Det er sort for mig. Jeg aner intet om ASP og ved end ikke hvad det vil sige at Dimme. Dit svar fandt jeg faktisk allerede før jeg skrev spørgsmålet, men da det nok ikke er første gang noget stiller det, er det nok heller ikke første gang du har svaret det samme - hvis det altså var dig ;-)

Det kørte på den anden server og det eneste jeg har gjort er at indsætte den anbefalede kode i connect.asp i stedet for den der var i forvejen. Filen kaldes i øvrigt via en connect.inc, som kun indeholder een linie: <!--#include file = "connect.asp"-->, hvad formålet så end er med det.

Jeg har søgt globalt i alle ASP-filer og "Dim con" forekommer kun det ene sted.

Strengen "connect.asp" finder jeg flere stedet, bl.a. i "visvare.asp" og "visordre.asp" som <!-- #INCLUDE file ="include/connect.asp" -->
Avatar billede keysersoze Guru
19. december 2010 - 23:41 #3
først og fremmest er det en rigtig dårlig idé at kalde filer for .inc i stedet for .asp da det åbner op for at brugere kan se koden i filerne.

Jeg gætter på at du ikke selv har lavet koden, så det letteste må være helt at fjerne linjen så.
Avatar billede Towle Nybegynder
20. december 2010 - 06:30 #4
Helt rigtigt, jeg har ikke selv lavet koden. Den er flere år gammel og stammer fra en system der hed FreeWay.

Det hele starter jo med default.asp og her inkluderes connect.inc (som reelt er connect.asp) både i starten og slutningen. Hvad gør jeg helt præcist?

Indhold af default.asp:

<!--#include file = "include/connect.inc"-->
<%
if application("lukket")=1 then%>
<!-- #INCLUDE file ="lukket.htm" -->
<%response.end
end if

IF session("logged")="" then

    dato=FormatDateTime(Date(),2)
    set tmp=conntemp.execute("SELECT * FROM statistik where dato=#"&dato&"#")

    if tmp.eof then
        conntemp.execute("INSERT INTO [statistik] (hits,dato) values(1,#"&dato&"#)")
    else
        conntemp.execute("update statistik set hits="&tmp("hits")+1&" where dato=#"&dato&"#")
    end if

    session("logged")="1"
end if

SET tmpset = conntemp.execute("SELECT * FROM [adm] WHERE id = 1")

shopnavn = tmpset("shopnavn")
%>
<!--#include file="include/connect.inc"-->
<html>
<head>
<title><%=shopnavn %></title>
</head>
<!--#INCLUDE FILE="frameset3.inc"-->
</html>
Avatar billede keysersoze Guru
20. december 2010 - 10:23 #5
reelt eller ikke reelt, filen bør stadig hedde .asp og ikke .inc da det indebærer nogle sikkerhedsrisici.

Som forsøgt skrevet i #3 så fjern linjen med dim conn.
Avatar billede Towle Nybegynder
21. december 2010 - 06:48 #6
Nu har jeg fjernet dim conn, men så siger den:

Microsoft VBScript runtime error '800a01a8'
Object required: 'conntemp'
/musicstore/Default.asp, line 11

- se default.asp i starten af tråden.
Avatar billede keysersoze Guru
21. december 2010 - 09:57 #7
Du skal initialisere et object ved navn conntemp før du kan benytte det - mon ikke du bare har fået overskrevet lidt for meget i dit forsøg på at tilpasse din nye database-connection? Jeg tror det er lettest hvis du går tilbage til din originale kode og så bare tilpasser stien til databasen på den.
Avatar billede Towle Nybegynder
21. december 2010 - 17:23 #8
Det eneste jeg har ændret er at fjerne den dim du anbefalede, samt at at rette stien til databasen i connect.asp, så den ny lyder:

<%
dim conn

function OpenConn( DBPath )

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath

end function

OpenConn("d:\web\localuser\musikklassikeren.dk\database\shop.mdb")
%>

Nu går fejlmeddelelsen på linie 11 i default.asp, som lyder:

set tmp=conntemp.execute("SELECT * FROM statistik where dato=#"&dato&"#")

Så nej, jeg har ikke rettet for meget; kun de to nævnte ting (fjerne dim og aændre databasesti).
Avatar billede keysersoze Guru
21. december 2010 - 17:59 #9
så bliver jeg nødt til at vide hvor du sætter "conntemp" - er den ikke initialiseret, som fx din "Conn" bliver i din connect.inc, vil det ikke fungere og har aldrig kunnet fungere, heller ikke på den gamle server.
Avatar billede Towle Nybegynder
21. december 2010 - 18:13 #10
Her må jeg melde fisk. Det virkede på den gamle server og jeg har absolut ingen forstand på ASP.
Avatar billede keysersoze Guru
21. december 2010 - 18:33 #11
så prøv at giv os den originale connect.inc fra dit gamle webhotel.
Avatar billede Towle Nybegynder
22. december 2010 - 05:50 #12
Indhold af \musicstore\include\connect.inc:

<!--#include file = "connect.asp"-->
Avatar billede keysersoze Guru
22. december 2010 - 07:45 #13
og det originale indhold af connect.asp fra det gamle webhotel?
Avatar billede Towle Nybegynder
22. december 2010 - 10:13 #14
Ups, det må vente til i aften, når jeg kommer hjem.
Avatar billede Towle Nybegynder
23. december 2010 - 06:42 #15
Jeg må nok indrømme, at jeg har været et fjols. Jeg manglede at uploade noget af det der hørte til. Nu har jeg uploadet en frisk kopi uden ændringer:

http://danacordbutik.dk/musicstore/, som er et inaktivt domæne med ASP. Shoppen vises, men melder fejl i "betal.asp". Der er ikke betalingsmodul på dette domæne, så det er jo nok derfor.

Vores aktive domæne med ny shop, er et PhP-domæne og når jeg uploader hertil, får jeg "access forbidden" og det er vel logisk nok.
Avatar billede keysersoze Guru
23. december 2010 - 11:30 #16
det lyder meget realistisk.
Avatar billede Towle Nybegynder
23. december 2010 - 12:41 #17
Hmmm, du forsøgte, så selvfølgelig skal du have point. Du samler på dem, kan jeg se ;-)
Avatar billede Towle Nybegynder
23. december 2010 - 12:42 #18
Øhhh, hvordan er det nu liiige, det der med pointgivning?
Avatar billede Towle Nybegynder
23. december 2010 - 12:44 #19
Tsk, tsk, kan nu se at jeg skulle have sat et flueben. Så bliver du nødt til at skrive igen for at få dem.
Avatar billede keysersoze Guru
23. december 2010 - 16:46 #20
jeg skal lægge et svar hvis du skal tildele mig point - og det kommer her.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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