webForumDet fria alternativet

Sökväg till filer m m

ASP

12 svar · 593 visningar · startad av andre1

Medlem sedan jan. 200513 inlägg
Frågan#1

Jag testar en lokal Asp-app.
Filerna ligger i: C:\inetpub\wwwroot
Var anger jag om jag vill flytta filerna till en annan katalog/mapp
och hur skriver man?
Jag hittar en sträng i en fil:
"Data Source=" & Server.MapPath("meny.mdb")

Min andra fråga gäller ASP i förh. till Frontpage.
Efter att jag redigerat kod i Frontpage fungerar inte asp-filerna,
varför?
Fungerar bra med notepad.

Tack från "Beginner"

Medlem sedan sep. 20011 722 inlägg
#2

Som ett svar på din första frågan: Du får använda dig av objektet File System Objects. IDGs webStudio har en bra guide i ämnet:
http://www.idg.se/webstudio/pub/article.asp?id=90
http://www.idg.se/webstudio/pub/article.asp?id=91

Medlem sedan mars 20032 667 inlägg
#3

Usch, jag får mardrömmar när jag ser länkar till webstudios ASP-skola. Det kommer inre röster som hela tiden upprepar "inloggningsscript, inloggningsscipt". :O

Du kan även läsa om FSO här:
http://webeye.nu/default2.asp?que=asp/default.asp&val=artiklar&filter_group=FSO

Medlem sedan jan. 200513 inlägg
#4

I min "meny.asp" har jag följande:
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath( "\" ) & "(\MinMapp\meny.mdb")

I start-filen "index.asp" har jag denna länk - vilken
inte fungerar. "Sidan kan inte hittas".
<a href="index.asp">Startsida</a>
Behöver hela sökvägen anges här också?

Medlem sedan juli 20011 084 inlägg
#5

Server.MapPath är tänkt att användas på följande sätt:
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("\MinMapp\meny.mdb")

Hur vidare ditt andra problem har med ASP att göra förstår jag inte. Men du ska inte behöva ange hela sökvägen till filer på webbserver om de ligger i samma mapp. Ligger filerna i en undermapp får du länka till mappen ("undermapp/index.asp) ligger filerna ovanför i hierarkin använder du "../index.asp".

Medlem sedan jan. 200513 inlägg
#6

OK - tack för tips.
Jag kör lokalt på min dator för att testa.
Det fungerar att öppna startsidan index.asp (http://127.0.0.1/index.asp).
Men när jag skall öppna en en länk via startsidan, t ex
<a href="index.asp?linkid=8">Boka</a> så får jag fel:
"Sidan kan inte visas"

Så här ser en del av "Select Case"-satsen ut:
linkid = Request.QueryString("linkid")
Case "8"
Server.Execute("userform.asp")

Allt fungerade bra när jag hade alla filer i roten
C:\inetpub\wwwroot\
Det som orsakar problem är alltså att jag flyttade alla filer
till en undermapp, "MinMapp".
Anger säkvägen enl. rek:
"& Server.MapPath"(\MinMapp\meny.mdb"). Men denna sträng
ligger i filen "meny.asp" (inte i index.asp) - har det ngn betydelse?

Medlem sedan jan. 200513 inlägg
#7

Jag löste det på detta sätt
http://127.0.0.1/MinMapp/index.asp
Dvs jag lade till undermappen MinMapp i den lokala
adressen. Men hur fungerar det när man lägger applikationen
på en server - gör man samma då eller skall alla filerna ligga
i roten?

Medlem sedan maj 20012 080 inlägg
#8

Om du vill ha databasen i tex din root kan du byta...

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("\MinMapp\meny.mdb")

mot...

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("\meny.mdb")

Medlem sedan jan. 200513 inlägg
#9

ok.
Men jag vill veta är hur man skriver sökvägen när man inte har filerna i roten (enligt tidigare beskrivn.).

Medlem sedan maj 20012 080 inlägg
#10

Eh... förstår inte riktigt.

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("\MinMapp1\minmapp2\meny.mdb")

Är din webroot c:\inetpub så kommer sökvägen ovan leta efter databasen i

C:\intetpub\MinMapp1\minmapp2\meny.mdb

Dvs du har två kataloger i rooten som heter MINMAPP1 o MINMAPP2

:)

Medlem sedan jan. 200513 inlägg
#11

Frågan var vad jag måste göra om jag flyttar asp-filerna.
Från början ligger dessa i: C:\inetpub\wwwroot
Antag att jag flyttar filerna till C:\inetpub\wwwroot\MinNyaMapp
Hur påverkar detta asp-koden?
T ex har jag följande sträng i en fil:
"Data Source=" & Server.MapPath("meny.mdb") - måste jag ändra något här betr. sökvägen?

Medlem sedan juni 200032 967 inlägg
#12

andre1 skrev:

"Data Source=" & Server.MapPath("meny.mdb") - måste jag ändra något här betr. sökvägen?

Ja, om du inte utgår från roten måste du ändra sökvägen.

Om din databas ligger i en mapp direkt under roten, skriv så här:

"Data Source=" & Server.MapPath("/db/meny.mdb")

, så spelar det ingen roll var dina asp-filer ligger. Det är alltså den inledande slashen som är magisk. Utan den utgår alltid sökvägen ifrån den mapp där filen som körs ligger, och om du flyttar runt filerna stämmer det ju inte.

Medlem sedan feb. 20032 027 inlägg
#13

Ha databasen i en mapp som heter db och ha en fil som du kallar ex dbConn med följande innehåll

<%
Function connect()
	Dim objConn
	Set objConn = Server.CreateObject("ADODB.Connection") 
	objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("/db/dindatabas.mdb") & ";"
	Set connect = objConn
End Function

set objConn = Connect()
%>

inkludera sedan filen dbConn på alla sidor. När du behöver ha ut data så skriver du bara din sql som
Set mittRS=objConn.Execute("select * from nånting")

och har ex hej.asp i en mapp som heter test så är det enklast att skriva /test/hej.asp och vill du komma åt hej.asp i roten från en undermapp så skriv bara /hej.asp

/ anger att du ALLTID utgår från roten

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)