HTML u. ASP-Code aus Datenbank auslesen

von Aon1961 » Donnerstag, 9. Oktober 2003



Hallo Spezialisten,

wir haben ein eigenes Content-Management-System auf Basis des
SQL-Server's. Das ganze funktioniert auch richtig toll.

Hier kurz eine Erklärung wie wir arbeiten:

Zunächst einmal habe ich eine ASP-Datei, diese bildet den Rumpf des
Formulares. Das heißt, dass der gesamte Programm-Code in dieser Datei
enthalten ist. Der aus der DB ausgelesene Content ist (bis jetzt) nur
"dummes" HTML. Ausgegeben wird der HTML-Code per

Response.Write rsSeitenInhalt("SeitenInhalt").

Wie gesagt, klappt prima!

Jetzt benötige ich allerdings die Möglichkeit "akiven" ASP-Code in der
DB abzuspeichern und auszugeben. Das funktioniert allerdings nicht.
Der Code wird zwar ausgelesen - allerdings nur als "dummes" HTML; soll
heißen, dass die ASP-Funktionen welche mit <% %> begrenzt werden nicht
greifen.

Hat jemand einen heißen Tipp für mich?

Viele Grüße aus der schönen Pfalz

Rainer



Re: HTML u. ASP-Code aus Datenbank auslesen

von Olaf Lüder [MVP] » Donnerstag, 9. Oktober 2003



Hallo Rainer,




Du kannst auf die Execute-Anweisung (evtl. auch auf die Eval-Funktion)
zurückgreifen.


Mit den Script-Begrenzern wirst Du dabei auf Probleme stoßen, Du müßtest
den HTML-Code dann über Response.Write ausgeben.


Evtl. eine asp-Datei aus dem DB-Inhalt erzeugen, cachen (damit das nicht
bei jedem Zugriff erfolgen muß) und dann mittels Server.Execute
einbinden.

--
Gruß, Olaf
MS MVP ASP / ASP.NET



Re: HTML u. ASP-Code aus Datenbank auslesen

von Aon1961 » Freitag, 10. Oktober 2003



Hallo Olaf, ich gebe den Text ja schon mit Response.Write aus.

Das Dokument sieht ungefähr so aus:

<%@ LANGUAGE="VBSCRIPT" %>
<%option explicit%>
<%
Jetzt kommt viel VB-Code der das Auslesen der verschiedenen Seiten
regelt.
VB-Script...
VB-Script...
VB-Script...
VB-Script...
VB-Script...
%>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
Jetzt kommt viel HTML-Code der das Auslesen der verschiedenen Seiten
regelt.
HTML-Code...
HTML-Code...
HTML-Code...
HTML-Code...
HTML-Code...
HTML-Code...
HTML-Code...
Dazwischen immer wieder mal
<%Reponse.Write MyRecSet("SeitenInhalt")%>
HTML-Code...
HTML-Code...
HTML-Code...
HTML-Code...
HTML-Code...
</html>

Solange MyRecSet("SeitenInhalt") nur HTML-Code ist, dann ist's
wunderbar.
Sobald allerdings im MyRecSet("SeitenInhalt") Script-Begrenzer (<% u.
%>) mit drin sind, dann ist's dahin; nix geht mehr!

Schade, dass es net funzt, würde mir sehr viel Arbeit ersparen!

Vielleicht hast ja noch eine Idee?

Viele Grüße aus Zweibrücken

Rainer



Re: HTML u. ASP-Code aus Datenbank auslesen

von Stefan Falz [MVP] » Freitag, 10. Oktober 2003



Hallo Rainer ohne Nachname,




Du musst _alles_ mit Response.Write ausgeben. Auch den HTML-Teil.
Das betrifft aber nicht den ausführenden Teil in deiner ASP-Seite
sondern den in der Datenbank vorgehaltenen Quelltext. In deinem
Skript schreibst du also bspw. folgendes:

Response.Write "Hallo1"
Execute( strCode )
Response.Write "Hallo2"

strCode erhältst du vorher mittels: strCode = objRS.Fields("...")
aus deiner Datenbank. Im Datenbankfeld steht dann bspw. folgendes:

Response.Write "<div ...>"
Set objRS2 = Server.CreateObject("...")
...
Set objRS2 = Nothing
Response.Write "</div ...>"

Es dürfen keine Skriptbegrenzer drin vorkommen.


Und das ist falsch. Hier muss dann Execute MyRecSet("SeitenInhalt")
drinstehen. Siehe: http://www.aspfaq.de/index.asp?FID=14&ELE=1223
Betrifft zwar das Auslesen von Dateien, ist aber genauso auf Daten-
bankinhalte anwendbar.


Abgesehen davon, dass das ziemlich sicherheitskritisch ist, wäre es
ggfs. noch möglich, den Datenbankfeldinhalt temp. in eine Datei zu
schreiben (per FSO, siehe: http://www.aspfaq.de/index.asp?FID=28&ELE=2442 )
und diese Datei dann per Server.Execute( strFilename ) auszuführen.
Dann kannst du den Inhalt so lassen wie er jetzt ist.

--
Tschau, Stefan
MS MVP für ASP / ASP.Net
http://aspnet.codebooks.de/ - Das ASP.Net Codebook (VB.Net)
http://asp.codebooks.de/ - Das ASP Codebook
http://www.aspfaq.de/ - Active Server Pages FAQ




If you have any questions, you can contact us: admin#mofeel.net     Spam Report