Avatar billede scooter Nybegynder
21. oktober 1999 - 08:52 Der er 31 kommentarer og
1 løsning

kan et asp-script generere en html-side?

Jeg er nu kommet så vidt i mit postkort-script, at jeg mangler en linie, som kan generere en html-side...

default.asp:
her indtastes oplysninger og et billede vælges - dette sendes til preview.asp

preview.asp:
her genereres postkortet, som det skal se ud, og dette resultat vil jeg gerne kunne "gemme" midlertidigt i en html-fil, som så sendes med sendcard.asp

sendcard.asp: afsender kortet til modtager med html-filen som attachment.
Avatar billede meyer Nybegynder
21. oktober 1999 - 09:05 #1
Du lægger den her ind:
Mailer.ContentType = "text/html"

og så laver du dine html-tags direkte i din:

Mailer.BodyText = "<html><body><table> osv"....

Men som du sikkert har set i mine spørgsmål så er der problemer med at medsende billede i html-siden - hvis du løser det, så lad mig lige høre hvordan :o)

Meyer
Avatar billede meyer Nybegynder
21. oktober 1999 - 09:07 #2
Ellers kan du vel generere en fil med:

server.CreateObject("Scripting.FileSystemObject")

og så attache den - men jeg tror det andet er nemmere :o)

Meyer
Avatar billede pingo Nybegynder
21. oktober 1999 - 09:08 #3
scooter: det kan du gøre med FileSystem Object.

Der er en beskrivelse af at læse og skrive data i en tekst fil her:

http://www.aspdeveloper.net/ASPSamp/Samples/text.asp
Avatar billede meyer Nybegynder
21. oktober 1999 - 09:11 #4
pingo >>> kan man sende billede med i html siden uden at man skal være online for at se grafikken???

Meyer
Avatar billede pingo Nybegynder
21. oktober 1999 - 09:16 #5
meyer: ja - det kan man godt..

men det er en større operation - der skal du ind og læse MIME specifikationen...

Du kan sende din mail som contenttype: text/html;
Avatar billede ij Nybegynder
21. oktober 1999 - 09:29 #6
Hvorfor gemmer du ikke bare Postkort teksten og linket til billedet i en database, og så sender et link til asp siden, som så dannes fra serveren.
Det vil sige at postkortmodtageren trykker på linket, og kommer til en side som viser det personlige postkort.
Avatar billede ij Nybegynder
21. oktober 1999 - 09:31 #7
Hvis der er nogen der kender en komponent som MED GARANTI kan danne mail-body som html, og derved også ligger billeder ind. Vil jeg meget gerne vide det. Jeg har brugt MEGET tid på at finde en sådan.
Avatar billede scooter Nybegynder
21. oktober 1999 - 10:56 #8
meyer>>>> hvis jeg nu vælger at bruge dit løsningsforslag:

Du lægger den her ind:
Mailer.ContentType = "text/html"

og så laver du dine html-tags direkte i din:

Mailer.BodyText = "<html><body><table> osv"....

hvordan kan jeg så få den til automatisk at indsætte html-koden i Mailer.BodyText-delen?

Jeg mener...preview.asp er jo, når den er eksekveret, i ren html-sprog og det er den html-kode, jeg ønsker placeret i Mailer.BodyText-delen...men den er jo ikke ens hver gang, da det er forskellige postkort, der skal sendes...

hvad gør jeg der?
Avatar billede scooter Nybegynder
21. oktober 1999 - 10:59 #9
ij>>>> hvordan laver man et link til asp siden, som så dannes fra serveren??? hvordan dannes siden/linket?

Det er fandme spændende det her!!! :o)
Avatar billede scooter Nybegynder
21. oktober 1999 - 11:00 #10
jeg har før prøvet at bruge et postkort-script fra s (Svend B. Hansen) og Jesper Vels, men det dur sgu ikke...er her andre, der har fået noget nyttig ud af dem?
Avatar billede ij Nybegynder
21. oktober 1999 - 11:07 #11
Du kender jo stien til det asp- script som danner postkortet. Herefter er det bare at sætte en parameter på scriptet.
eks.
postkortlink ="http://www.postkort.dk/scripts/danpostkort.asp?postkortid="&PostkortIdVar

Herefter sætter du bare strengen postkortlink, ind i din messagebody, og voila, så er den i vinkel.
Avatar billede ij Nybegynder
21. oktober 1999 - 11:07 #12
I skal ikke trykke på linket, det eksisterer ikke.
Avatar billede ij Nybegynder
21. oktober 1999 - 11:10 #13
scooter>> Undskyld hvis det ikke var helt klart hvad jeg mente. Det er selvfølgelig ikke en ASP side der bliver dannet på serveren, men en ASP side der danner html, der så bliver sendt tilbage til klienten.
Sorry.
Avatar billede scooter Nybegynder
21. oktober 1999 - 11:12 #14
oooh!!! Klart...det er sgu da også bare mig! :oP

Jeg prøver lige at lege med det, ij
Avatar billede scooter Nybegynder
21. oktober 1999 - 12:05 #15
ARGGGH! Lige nu har jeg:

default.asp - indtastning af oplysninger
preview.asp - her ser man resultatet og kan gå tilbage og rette, eller sende det, hvis tilfredsstillende (sendes til hub.asp)
hub.asp - indsætter oplysningerne i en database med dette script:

<%
Dim sql

Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("\database\postkort.mdb")
sql = "INSERT INTO Postkort (ModtagerNavn,ModtagerEmail,AfsenderNavn,AfsenderEmail,Tekst,Billede) VALUES ('"&Request.Form("nameto")&"','"&Request.Form("addressto")&"','"&Request.Form("namefrom")&"','"&Request.Form("addressfrom")&"','"&Request.Form("txtmsg")&"','"&Request.Form("billede")&"')"
Conn.Execute(sql)

Response.Redirect "sendcard.asp?ID="& KortID & ""

Conn.close
Set Conn = Nothing
%>

men jeg kan ikke få den til at slæbe et ID-nr med over i sendcard.asp.

HELP!!!



Avatar billede scooter Nybegynder
21. oktober 1999 - 12:07 #16
jeg mener, ID'et skal jo være ret unikt, right?!? Noget med autonummerering i db'en??? hvis jeg bruger navn eller andet kan jeg jo risikere at det er en anden "thomas" der bliver slæbt med...?
Avatar billede ij Nybegynder
21. oktober 1999 - 12:21 #17
Du skal jo have fat i ID' et igen efter du har indsat. Det er rigtigt at det er autonummerering.
SQL ="Select id from postkort where modtagernavn ='"& &Request.Form("nameto")&" AND modtageremail ='"&
&Request.Form("addressto")&"'
set res = Conn.execute (SQL)
KortID = res.fields.item("id")

nu kan du så redirecte til sendcard.asp
Avatar billede ij Nybegynder
21. oktober 1999 - 12:26 #18
scooter >>>> Du vil om lidt modtage et postkort fra mig. Sådan kommer det til at fungere.
Avatar billede scooter Nybegynder
21. oktober 1999 - 12:41 #19
ij>>>> Det ser fedt nok ud! tak for det!

Ville det være for meget, at bede dig om at indsætte din stump kode i min:

<%
Dim sql

Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("\database\postkort.mdb")
sql = "INSERT INTO Postkort (ModtagerNavn,ModtagerEmail,AfsenderNavn,AfsenderEmail,Tekst,Billede) VALUES ('"&Request.Form("nameto")&"','"&Request.Form("addressto")&"','"&Request.Form("namefrom")&"','"&Request.Form("addressfrom")&"','"&Request.Form("txtmsg")&"','"&Request.Form("billede")&"')"
Conn.Execute(sql)

Response.Redirect "sendcard.asp?ID="& KortID & ""

Conn.close
Set Conn = Nothing
%>

Jeg kan ikke få det til at virke - mig og SQL-reglerne er ikke så gode venne... :o(

Avatar billede ij Nybegynder
21. oktober 1999 - 12:44 #20
Alt dette forudsætter at du i tabellen postkort har et autonummereringsfelt som hedder ID.
Her er det. Det er fordi du lukker din Conn før du fyrer den anden sql af.

Dim sql

Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("\database\postkort.mdb")
sql = "INSERT INTO Postkort (ModtagerNavn,ModtagerEmail,AfsenderNavn,AfsenderEmail,Tekst,Billede) VALUES ('"&Request.Form("nameto")&"','"&Request.Form("addressto")&"','"&Request.Form("namefrom")&"','"&Request.Form("addressfrom")&"','"&Request.Form("txtmsg")&"','"&Request.Form("billede")&"')"
Conn.Execute(sql)

SQLID ="Select id from postkort where modtagernavn ='"& &Request.Form("nameto")&" AND modtageremail ='"&
&Request.Form("addressto")&"'
set res = Conn.execute (SQLID)
KortID = res.fields.item("id")

Conn.close
Set Conn = Nothing

Response.Redirect "sendcard.asp?ID="& KortID & ""

%>


Avatar billede ij Nybegynder
21. oktober 1999 - 12:46 #21
Alt dette forudsætter at du i tabellen postkort har et autonummereringsfelt som hedder ID.
Her er det. Det er fordi du lukker din Conn før du fyrer den anden sql af.

Dim sql

Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("\database\postkort.mdb")
sql = "INSERT INTO Postkort (ModtagerNavn,ModtagerEmail,AfsenderNavn,AfsenderEmail,Tekst,Billede) VALUES ('"&Request.Form("nameto")&"','"&Request.Form("addressto")&"','"&Request.Form("namefrom")&"','"&Request.Form("addressfrom")&"','"&Request.Form("txtmsg")&"','"&Request.Form("billede")&"')"
Conn.Execute(sql)

SQLID ="Select id from postkort where modtagernavn ='" &Request.Form("nameto")&" AND modtageremail ='"
&Request.Form("addressto")&"'

set res = Conn.execute (SQLID)
KortID = res.fields.item("id")

Conn.close
Set Conn = Nothing

Response.Redirect "sendcard.asp?ID="& KortID & ""

<Font size="12" color=red>BRUG DEN HER IGNORER DEN FOREGÅENDE
</Font>
Avatar billede ij Nybegynder
21. oktober 1999 - 12:47 #22
Det der står til sidst, med font tag omkring, skal du ikke sætte ind.
Jeg troede bare at man kunne bruge htmltags. Men det kan man selvfølgelig ikke når man skal kunne skrive kode til hinanden.Brug den SIDSTE af de to jeg sendte.
Avatar billede ij Nybegynder
21. oktober 1999 - 12:56 #23
der er lige en rettelse.
UNDSKYLD jeg fjumrer.

SQLID ="Select id from postkort where modtagernavn ='" &Request.Form("nameto")&"' AND modtageremail ='"
&Request.Form("addressto")&"'"

Avatar billede scooter Nybegynder
21. oktober 1999 - 13:01 #24
Hmmmm...jeg havde rettet den til, men får stadig denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Extra ) in query expression 'ModtagerNavn ='Scooter' AND ModtagerEmail ='scooter@mailme.dk')'.

/scooter/scootcard/hub.asp, line 12


linie 12 er:

set res = Conn.execute (SQLID)

og det skal lige siges, at mit autonummerede id i db'en hedder KortID

Avatar billede scooter Nybegynder
21. oktober 1999 - 13:03 #25
sådan ser min kode ud nu:

<% Language=VBSCRIPT %>
<%
Dim sql

Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("\database\postkort.mdb")
sql = "INSERT INTO Postkort (ModtagerNavn,ModtagerEmail,AfsenderNavn,AfsenderEmail,Tekst,Billede) VALUES ('"&Request.Form("nameto")&"','"&Request.Form("addressto")&"','"&Request.Form("namefrom")&"','"&Request.Form("addressfrom")&"','"&Request.Form("txtmsg")&"','"&Request.Form("billede")&"')"
Conn.Execute(sql)

SQLID ="Select KortID from Postkort where ModtagerNavn ='"&Request.Form("nameto")&"' AND ModtagerEmail ='"&Request.Form("addressto")&"')"

set res = Conn.execute (SQLID)
KortID = res.fields.item("id")

Conn.close
Set Conn = Nothing

Response.Redirect "sendcard.asp?ID="& KortID & ""


%>
Avatar billede ij Nybegynder
21. oktober 1999 - 13:06 #26
Det er fordi at der er en eksta parantes i :
SQLID ="Select KortID from Postkort where ModtagerNavn ='"&Request.Form("nameto")&"' AND ModtagerEmail ='"&Request.Form("addressto")&"')"

Ret den til.

SQLID ="Select KortID from Postkort where ModtagerNavn ='"&Request.Form("nameto")&"' AND ModtagerEmail ='"&Request.Form("addressto")&"'"



Avatar billede scooter Nybegynder
21. oktober 1999 - 13:07 #27
ok, nu virker det!!! :o) Koden er:

<%
Dim sql

Set Conn = Server.CreateObject("ADODB.connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("\database\postkort.mdb")
sql = "INSERT INTO Postkort (ModtagerNavn,ModtagerEmail,AfsenderNavn,AfsenderEmail,Tekst,Billede) VALUES ('"&Request.Form("nameto")&"','"&Request.Form("addressto")&"','"&Request.Form("namefrom")&"','"&Request.Form("addressfrom")&"','"&Request.Form("txtmsg")&"','"&Request.Form("billede")&"')"
Conn.Execute(sql)

SQLID ="Select KortID from Postkort where ModtagerNavn ='"&Request.Form("nameto")&"' AND ModtagerEmail ='"&Request.Form("addressto")&"'"

set res = Conn.execute (SQLID)
KortID = res.fields.item("KortID")

Conn.close
Set Conn = Nothing

Response.Redirect "sendcard.asp?ID="& KortID & ""
Conn.close
Set Conn = Nothing


%>
Avatar billede ij Nybegynder
21. oktober 1999 - 13:08 #28
Virker det hele.
Har du fået fat i id'et i den side du kalder også?
Avatar billede scooter Nybegynder
21. oktober 1999 - 14:49 #29
du er cool!!! Nu virker det! tak!
Avatar billede ij Nybegynder
21. oktober 1999 - 15:02 #30
Må jeg gerne få dine point?
Avatar billede ij Nybegynder
21. oktober 1999 - 15:03 #31
Tak for kortet, det ser jo godt ud.

Ja hvis du skal have adgang til at slette, så skal du lave et helt adminstrationsmodul. Med mindre du vil gå ind i access og slette manuelt.
Du kan også skrive at kortet vil være tilgængeligt i x antal dage, og lægge noget kode der tjekker datoerne for postkortet i databasen. Og herefter slette alle der er mere end x antal dage gammelt. Dette kode kan du bare lægge i din default.asp, som så vil blive kørt hvergang en bruger er på dit site.
Forresten så skal du lave om på din nøgle til databasen. Lav et nøglefelt, som er et tekstfelt.
Lav herefter en nøgle som består af
dato + tidspunkt + asc(emailbruger).
Det andet virker ikke hvis en person vælger at sende et kort til en person 2 gange. Så vil der altid blive returneret det gamle id, og derfor et link til det gamle kort.
Avatar billede scooter Nybegynder
21. oktober 1999 - 15:39 #32
what?? det sidste der forstod jeg ikke ret meget af...kun at man ikke kan sende til det samme navn og email to gange - det har jeg tænkt over...hvordan løses det? Gerne meget uddybet... ;o) Eller skal jeg nu oprette et nyt spg.? *suk* jeg er ret fattig på points... :o(
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
Kurser inden for grundlæggende programmering

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