webForumDet fria alternativet

ASP från databas

21 svar · 488 visningar · startad av skarbratt

skarbrattMedlem sedan juli 2000325 inlägg
#1

Går det att matta in tex "Response.Write("hej")" i en databas och sedan få "hej" utskrivet på skärmen?

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#2

allting går, frågan är bara varför du skulle vilja göra det?

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#3

har nämligen gjort ett adminverktyg där jag kan mata in text på sidan, ladda upp bilder etc...

Men jag skulle också vilja ha en möjlighet att tex skriva "Response.Write("Hej")"

Självklart är det inte till Response jag skall skriva här utan snarare hämta data från databasen.

Kan jag få något tips på hur jag skall göra?

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#4

du får nog göra så att du hämtar datat (aspkoden) från databasen, skriver till en ny asp-fil med filesystemobject och includar den filen eller skapar länkar någonstans. om man kör iis5 kan man ju alltid köra en server.transfer eller server.execute på den nya filen...

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#5

Evale och Execute då?

Går inte de att använda på något sätt...?

------------------
fencing for you?
http://www.fencing4u.nu/

spangoMedlem sedan juni 20008 205 inlägg
#6

Osäker på vbscript, men i JScript ser det ut så här:

eval("Response.Write(\"Hej!\");");

------------------
-- spango
Livet står på lur alldeles bakom knuten.

skarbrattMedlem sedan juli 2000325 inlägg
#7

Får följande felmeddelande när jag kör:
Körningsfel i Microsoft VBScript error '800a000d'

Inkompatibla typer: 'eval'

/xdin/main.asp, line 188

		<%
			hej = "Hej!"
			eval("Response.Write(hej)")
		%>

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#8

jo, med det beror på att spango ju skrev att det var jscript, och du försöker köra i ett vbscript-block.

<script language="jscript" runat="server">
eval("Response.Write(\"Hej!\");");
</script>

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#9

det funkar, lite...

Problemet är att "Hej!" lägger sig längst upp på sidan...

Fick visserligen

<%
hej = "Hej!"
eval("Response.Write(hej)")
%>

att fungera efter att jag installerade en nyare script engin ...

------------------
fencing for you?
http://www.fencing4u.nu/

skarbrattMedlem sedan juli 2000325 inlägg
#10

Men lyckas inte samanställa des som jag vill ha det...

Låt oss säga ttt jag har sparat "Response.Redirect("http://emission.till.kung.nu")" i min databas och vill nu hämta ut det.

text = franDB
eval("text")

Skall det gå att lägga in långa stycken tex ett sql kommando?

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#11

ta bort citationstecknen.

du kör eval på strängen "text" och det är ju inte det du vill göra, väl? det är ju variabeln text du vill använda.

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#12

Nja

<%
hej = "Hej!"
hej = Response.Write(hej)
eval(hej)
%>

Så ser koden ut... Och då fungerar det ju bra

Skriver jag däremot så här:

<%
hej = Response.Write("Hej!")
eval(hej)
%>

så fungerar det inte, eftersom det blir fel när " kommer in i bilden vi hej!

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#13

det ska ju va en sträng ju...

hej = "Response.Write(""Hej!"")"
eval(hej)

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#14

Det funkar bra...

Men det är tyvärr inte det här enkla som är svårt (brukar visserligen vara så).

Utan vad jag undra är om du har en SQL sträng kan du då få den en att fungera?

Typ

<%
						SET inc  = Server.CreateObject("ADODB.RecordSet")
						SET inc1 = Server.CreateObject("ADODB.RecordSet")
						SET inc2 = Server.CreateObject("ADODB.RecordSet")
						SET inc3 = Server.CreateObject("ADODB.RecordSet")
						
						' Open a standard connection to the database.
						SET con2=Server.CreateObject("ADODB.Connection")
						con2.Open   "Provider=MSDASQL;" & _
		        	"DRIVER={Microsoft Access Driver (*.mdb)};" & _
		        	"DBQ=" & server.mappath("..\database\xdin.mdb") & ";" & _
		        	"UID=;PWD=;"
	        	
	        	
						counter = 0
						SQL = "SELECT * FROM r_subAreas, Publish WHERE r_subAreas.subID = 14 AND r_subAreas.PageID = publish.pageID  AND publish.shown = True AND publish.startDate <= now AND publish.endDate > now  ORDER BY publish.startDate DESC;"
    				'Response.Write(sql)
    				inc.Open SQL, con2, adOpenStatic, , adCmdText
    					
    				Do until inc.EOF or counter = 5 
    				
    				pageID = inc("pageID")
    				    				
    				SQL = "SELECT * FROM pages, Headers WHERE  pages.PageId = "&pageID&" AND pages.tableID = 'Headers' AND pages.ItemId = Headers.IDNum;"
    				'Response.Write(sql)
    				inc2.Open SQL, con2, adOpenStatic, , adCmdText
    					header = inc2("Header")	
    				inc2.Close
    				    				
    				SQL = "SELECT * FROM pages, Ingress WHERE  pages.PageId = "&pageID&" AND pages.tableID = 'Ingress' AND pages.ItemId = Ingress.IDNum;"
    				'Response.Write(sql)
    				inc2.Open SQL, con2, adOpenStatic, , adCmdText
    					Ingress = inc2("Ingress")	
    				inc2.Close
    				
    				Response.Write("<P><B>" & header & "</B><BR>" & Ingress & "<A HREF='page.asp?item=1&sub=14&page=" & pageID & "'>Läs mer..</A>")

    					counter = counter + 1
    					inc.MoveNext
    					LOOP
    					inc.Close
    				%>

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#15

om du ska köra eval på ett helt scriptblock så får du inte ha <% och %>.

då kommer du få 'expected statement'-felet.

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#16

men annars skall det fungera?

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#17

tror det.

har bara använt eval teoretiskt i min hjärna, men det bör göra det.

bästa sättet att få reda på det är väl att testa? ;)

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

skarbrattMedlem sedan juli 2000325 inlägg
#18

Ville bara kontrollera lite först, men snart blir det live...

Och vi får hoppas det fungarar...

------------------
fencing for you?
http://www.fencing4u.nu/

skarbrattMedlem sedan juli 2000325 inlägg
#19

Aj då

Har lagrat:

hej = "Response.Write(""Hej!"")"
Response.Write(hej)

i databasen hämtar ssedan ut på följande sätt:

<%
SQL = "SELECT * FROM SQL WHERE  SQL.IDNum = 5;"
RS3.Open SQL, con1, adOpenStatic, , adCmdText
	eval(RS3("SQLText"))
%>

Och då funkar det inte...

Skriver jag däremot så här, funkar det.

Response.Write("Hej!")

Och det bord väll betda att det finns ganska stora begränsningar i evale

att den bara klarar att göra en rad i taget.

------------------
fencing for you?
http://www.fencing4u.nu/

@ndersMedlem sedan juni 200032 969 inlägg
#20

'funkar inte' säger ganska lite...

vad händer rent konkret på raden eval(RS3("SQLText"))?

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
mannen, myten, mutanten.</A>

143 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)