Avatar billede sorenmt84 Juniormester
11. juli 2001 - 13:27 Der er 11 kommentarer og
2 løsninger

Hvad er der galt med dette jmail udtræk

<%
id = Request.QueryString( \"id\" )

if request.form(\"navn\") = \"\" then
for each item in request.form
session(item) = request.form(item)
next
session(\"fejl\") = \"Skriv venligst dit navn\"
response.redirect(\"default.asp?side=medlem&subside=info.asp\")
end if

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"db.mdb\") & \";UID=admin;PWD=;\"
Set rs = Conn.execute(\"SELECT * FROM brugere WHERE id=\" & id & \"\'\")
if rs.eof then
for each item in request.form
session(item) = request.form(item)
next
session(\"fejl\") = \"Der er ingen brugere med det angivet id nr.\"
response.redirect(\"default.asp?side=medlem&subside=info\")
else
navn = request.form(\"navn\")
email = request.form(\"email\")
angaaende = request.form(\"andgaaende\")
besked = request.form(\"besked\")
til = rs(\"til\")

on error resume next
Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ISOEncodeHeaders = False
JMail.ServerAddress = \"mail.sejs.dk\"
JMail.FromName = navn
JMail.Sender = \"admin@sejs.dk\"
JMail.Subject = angaaende
JMail.AddRecipient = til
JMail.Priority = 1
JMail.Body = besked & vbcrlf & \"\" & vbcrlf & \"---------------------------------------------\" & vbcrlf & \"sejs.dk\" & vbcrlf & \"www.sejs.dk/bond\"
JMail.Execute

response.write (\"Din mail er nu afstendt<BR><BR>\")
end if
set rs = nothing
conn.close
set conn = nothing
else %>
<p align=\"center\"><% if session(\"fejl\") <> \"\" then
response.write \"<B>\" & session(\"fejl\") & \"</B><BR>\"
end if %>
Avatar billede sorenmt84 Juniormester
11. juli 2001 - 13:27 #1
Den skriver bare at siden ikke kan vises uden en fejl beskrivelse eller lign.
Avatar billede tmceu Praktikant
11. juli 2001 - 13:34 #2
Ligger der noget standard HTML kode før dette?

I så fald, vil du få et problem i de tilfælde hvor du laver en redirect, da du ikke har startet sided med en Response.Buffer = True

Du kan også aktiver debugging på IIS admin eller slå friendly HTTP error messages fra i IE for at få en bedre fejlmeddelelse.

Mvh
Thomas
Avatar billede sorenmt84 Juniormester
11. juli 2001 - 13:37 #3
Jeg bruger Response.Buffer = True i forvejen, dit andet forslag fatter jeg ikke meget af!
Avatar billede tmceu Praktikant
11. juli 2001 - 13:48 #4
Du skriver: \"Den skriver bare at siden ikke kan vises uden en fejl beskrivelse eller lign\"

Dette er en såkaldt friendly error message. Du kan aktivere mere uddybende meddelelser, ved i IE at vælge Tools.Internet Options og på fanebladet Advanced fravælge Show friendly HTTP error messages

Avatar billede tmceu Praktikant
11. juli 2001 - 13:50 #5
- og når du så har gjort det, vil du se en fejlmeddelelse som eks. syntax error, line 13 el. lign som kan hjælpe dig med at finde fejlen.

Hvis du kører ASP fra din egen IIS, kan du også aktivere server-side debugging i IIS admin, som svarer nogenlunde til ovenstående i browseren.
Avatar billede sorenmt84 Juniormester
11. juli 2001 - 14:30 #6
Nej det er ikke slået til!!!
Avatar billede sorenmt84 Juniormester
11. juli 2001 - 14:47 #7
Hvis jeg kører scriptet på min egen computer (Det andet var fra en server) skriver den følgende:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/troldhoej/medlem.asp, line 112

i linie 112:
Set rs = Conn.execute(\"SELECT * FROM brugere WHERE id=\'\" & Request.QueryString(\"id\") &\"\'\")
Avatar billede bimmer_r Nybegynder
11. juli 2001 - 15:18 #8
Skal der ikke laves et RecordSet ?
Avatar billede sorenmt84 Juniormester
11. juli 2001 - 15:27 #9
Det må jeg lige have uddybet??
Avatar billede tmceu Praktikant
11. juli 2001 - 16:07 #10
Er du sikker på at ID er et tekstfelt, den slags er ofte nummeriske og så skal du i stedet anvende

Set rs = Conn.execute(\"SELECT * FROM brugere WHERE id=\" & Request.QueryString(\"id\"))

Og som bimmer_r siger, ser det ud som om der mangler

Set Conn = Server.CreateObject(\"ADODB.Recordset\")

Mvh
Thomas
Avatar billede sorenmt84 Juniormester
11. juli 2001 - 16:09 #11
Dette her virker, men tak for hjælpen!
Avatar billede sorenmt84 Juniormester
11. juli 2001 - 16:09 #12
Der var jeg lige hurtig nok på tasterne:
<% if subside = \"kontakt\" Then %>
<%
id = Request.QueryString( \"id\" )

    set conn = server.createobject(\"ADODB.connection\")
    conn.Open \"DBQ=\"& Server.MapPath(\"spejder.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"
   
    SQL = \"SELECT * FROM brugere WHERE id =\" & id
    Set rs = Conn.Execute(SQL)

navn = Request(\"navn\")
email = Request(\"email\")
angaaende = Request(\"angaaende\")
besked = Request(\"besked\")
til = rs(\"email\")
modtager = rs(\"navn\")


    on error resume next
        Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
        JMail.ContentTransferEncoding = \"8bit\"
        JMail.Charset = \"ISO-8859-1\"
       
        JMail.Priority = 1
        JMail.ServerAddress = \"mail.sejs.dk\"
    JMail.Sender = \"admin@sejs.dk\"
        JMail.Subject = angaaende
    JMail.Body =  besked & vbCrLf & vbCrLf & \"---------------------------------------------\" & vbCrLf & \"Afsenders oplysninger:\" & vbCrLf & \"Navn: \" & navn & vbCrLf & \"E-mail: \" & email & vbCrLf & \"---------------------------------------------\" & vbCrLf & \"Troldhøj Division - Det Danske Spejderkorps\" & vbCrLf & \"www.dds.dk/troldhoej\"
   
        JMail.AddRecipient til
        \' Send it...
        JMail.Execute
        set JMail = nothing
response.write \" Tak.<br><br>Din anbefaling er sendt til \" & modtager

%>
Avatar billede tmceu Praktikant
11. juli 2001 - 16:10 #13
Fejlen Datatyperne stemmer ikke overens i kriterieudtrykket. tyder på at du prøve at bruge et tekstkriterie på et nummerisk felt elller omvendt.

I din SELECT sætning, har du kun et kriterie, og derfor må det være ID der er nummerisk. Du kan evt. også først konvertere Request.QueryString(\"id\")til en integer, ved at bruge CInt(Request.QueryString(\"id\")) - forudsat at feltet ID i databasen er Integer.
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