Avatar billede lukasolsen Nybegynder
22. marts 2005 - 19:15 Der er 40 kommentarer og
1 løsning

Problemer med tagwall

Hej eksperter,

Når jeg trykker på 'Gem beskeden' i min tagwall, får jeg følgende fejl:
Error Type:
Sun ONE ASP VBScript runtime (0x800A000D)
Type mismatch
/communications_version_1/default.asp, line 38

Linje 38 ligger mellem:
website = request.form("website") Og err = 0

Hvad er problemet ?`


___________________________________________________
<%
response.write("<table width='630' align='center' cellpadding='3' cellspacing='0' class='textnavigation'>")
  response.write("<tr>")
    response.write("<td>Communications</td>")
  response.write("</tr>")
response.write("</table>")
response.write("<br>")

'Åbner databasen
set conn = opendb()
strMode = Request.QueryString("mode")

select CASE strMode
CASE "addmessage"


author = request.cookies("nick")
email = request.cookies("email")

    if request.form("mode") = "insert" then
 
      topic = replace(request.form("topic"),"'","''")
      body = replace(request.form("body"),"'","''")
      bodyStr = replace(body,vbcrlf,"<br>")
      author = request.form("nick")
      email = request.form("email")
    website = request.form("website")

      err = 0

      if author = "" then
      err = 1
      errormsg = "<br>Du skal skrive dit nick"
      end if

      if instr(email,"@") = 0 or instr(email,".") = 0 or email = "" then
      err = 1
      errormsg = errormsg + "<br>Email-adressen er ikke gyldig"
      end if

      if topic = "" then
      err = 1
      errormsg = errormsg + "<br>Du skal skrive et emne"
      end if


    if err = 0 then

      SQL = "insert into communications(author, email, website, topic, body, ip) values('"
      SQL = SQL & author & "','"
      SQL = SQL & email & "','"
    SQL = SQL & website & "','"
      SQL = SQL & topic & "','"
      SQL = SQL & bodyStr & "','"
      SQL = SQL & Request.ServerVariables("REMOTE_ADDR") & "')"

      set RSinsert = conn.Execute(SQL)

      if request.form("remember") = "true" then
      Response.cookies("nick") = author
      Response.Cookies("nick").Expires = Date+365
      Response.cookies("email") = email
      Response.Cookies("email").Expires = Date+365
      end if
      response.redirect("default.asp")
      end if
      end if


  response.write("<form name='form1' method='post' action='default.asp?mode=addmessage'><input type='hidden' name='mode' value='insert'>")
  response.write("<table width='630' align='center' cellpadding='3' cellspacing='0' class='textnormal'>")
    response.write("<tr>")
    response.write("<td width='153'>Nick / Handle: </td>")
      response.write("<td width='455'><input name='author' type='text' class='textfields' id='author' value=' " & author & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td>E-mail:</td>")
    response.write("<td width='455'><input name='email' type='text' class='textfields' id='email' value=' " & email & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
  response.write(" <td>Website:</td>")
    response.write("<td height='24' width='455' valign='top'><input name='website' type='text' class='textfields' id='website' value=' " & website & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
  response.write(" <td height='24'>Overskift:</td>")
  response.write("<td valign='bottom'><input name='website' type='text' class='textfields' id='website' value=' " & website & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td valign='top'>Besked:</td>")
    response.write("<td width='455' valign='top' class='textsmall'>")
    response.write("<textarea name='body' cols='86' class='textareas'  onselect='storeCaret(this);' onchange='storeCaret(this);countLetters(this);' onclick='storeCaret(this);' onkeydown='storeCaret(this);countLetters(this);' onkeyup='storeCaret(this);countLetters(this);'></textarea>")
    response.write("Din besked må maksimalt være på 700 tegn - du har <span id='lettercount'>700</span> tegn tilbage.")
    response.write("<br>")
    response.write("<td width='2'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td height='36' valign='top'>Husk mine informationer:<br>")
      response.write("<font color ='cccccc'>(Ved brug af Cookies)</font></td>")
    response.write("<td height='40' valign='top'><input name='remember' type='checkbox' class='checkbox' id='remember' value='checkbox'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td></td>")
    response.write("<td><input name='Submit' type='submit' class='submitfield' value='Gem beskeden'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td height='40' valign='bottom'> &raquo;<a href='default.asp'> Tilbage til Communications</a></td>")
    response.write("<td></td>")
  response.write("</tr>")
response.write("</table>")
response.write("</form>")

%>
Avatar billede Slettet bruger
22. marts 2005 - 20:12 #1
Jeg er ikke 100% sikker men passer navnet website med det navn der står i databsen og i input feltet?

DDD
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 20:38 #2
Yep, det gør det
Avatar billede busschou Praktikant
22. marts 2005 - 21:15 #3
tja ordet website burde vel ikke være reserveret...prøv evt kalde det noget andet måske
Men er det i øvrigt bevidst at begge dine <td> "website" og "overskrift" indeholder et input felt med navnet "website"?
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:18 #4
Det gør de da heller ikke ?
Avatar billede busschou Praktikant
22. marts 2005 - 21:23 #5
response.write(" <td>Website:</td>")
    response.write("<td height='24' width='455' valign='top'><input name='website' type='text' class='textfields' id='website' value=' " & website & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
  response.write(" <td height='24'>Overskift:</td>")
  response.write("<td valign='bottom'><input name='website' type='text' class='textfields' id='website' value=' " & website & " '  size='86'></td>")
response.write("</tr>")
Avatar billede busschou Praktikant
22. marts 2005 - 21:23 #6
der er da to stk <input name='website'
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:23 #7
Tror nu ikke at det hjælper at skifte website navnet i databasen ud :)
Avatar billede busschou Praktikant
22. marts 2005 - 21:26 #8
jeg mener heller ikke du skal skifte ud i databasen
Men jeg fik engang lignende fejl og der hjalp det at rette navnet i koden
Fejlen siger vel at der er en Type Mismatch
Det må vel betyde at der i lænjen
website = request.form("website")
gælder at website er en type og request.form("website") er af en anden
Men jeg er ikke 110%
Jeg ville blot prøve at skrive
website1 = request.form("website")
og se hvad som sker
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:29 #9
Godt set. Har rettet det med at der var 2 website :)
Avatar billede busschou Praktikant
22. marts 2005 - 21:29 #10
nogen gange stirrer man sig jo blind :o)
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:30 #11
Der sker intet. Den samme fejl udskrives bare igen!
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:30 #12
Avatar billede busschou Praktikant
22. marts 2005 - 21:38 #13
har du mere kode? for linje 39 passer ikke med den linje du siger i det kode du har postet?
har du evt forsøgt udskrive de forskellige request for debuging?
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:38 #14
Nu har jeg prøvet helt at fjerne website for koden, men samme fejl kommer!
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:39 #15
Linje 39 er lingen ovenover denne her:
err = 0
Avatar billede busschou Praktikant
22. marts 2005 - 21:39 #16
fejlen kommer jo uanset hvad der tastes også selvom intet tastes
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:40 #17
Så må fejlen jo ligge i noget andet ?
Avatar billede busschou Praktikant
22. marts 2005 - 21:45 #18
Jeg har ikke forstand på den "fejlside" som fremkommer
Men har du ikke mulighed for at lave nogle udkrifter undervejs for at tjekke hvor den kikser?
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:47 #19
Nej, det har jeg ikke, for ved ikke hvordan man gør :)
Avatar billede busschou Praktikant
22. marts 2005 - 21:50 #20
kan det hænge sammen med du henter cookies ud i navne som du derefter henter ud i fra din form..... måske? wierd.
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:51 #21
Har også prøvet at fjerne cookies og det hjalp ikke!
Avatar billede busschou Praktikant
22. marts 2005 - 21:52 #22
har du mod på at poste hele koden...altså hele den ene fil?
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 21:57 #23
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Communications Version 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!--#include file="functions.asp" -->
<link href="stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>

<%
response.write("<table width='630' align='center' cellpadding='3' cellspacing='0' class='textnavigation'>")
  response.write("<tr>")
    response.write("<td>Communications</td>")
  response.write("</tr>")
response.write("</table>")
response.write("<br>")
response.write("<br>")

'Åbner databasen
set conn = opendb()
strMode = Request.QueryString("mode")

select CASE strMode
CASE "addmessage"


author = request.cookies("nick")
email = request.cookies("email")

    if request.form("mode") = "insert" then
   
      topic = replace(request.form("topic"),"'","''")
      body = replace(request.form("body"),"'","''")
      bodyStr = replace(body,vbcrlf,"<br>")
      author = request.form("nick")
      email = request.form("email")
    website = request.form("website")
 
      err = 0

      if author = "" then
      err = 1
      errormsg = "<br>Du skal skrive dit nick"
      end if

      if instr(email,"@") = 0 or instr(email,".") = 0 or email = "" then
      err = 1
      errormsg = errormsg + "<br>Email-adressen er ikke gyldig"
      end if

      if topic = "" then
      err = 1
      errormsg = errormsg + "<br>Du skal skrive et emne"
      end if


    if err = 0 then

      SQL = "insert into communications(author, email, website, topic, body, ip) values('"
      SQL = SQL & author & "','"
      SQL = SQL & email & "','"
    SQL = SQL & website & "','"
      SQL = SQL & topic & "','"
      SQL = SQL & bodyStr & "','"
      SQL = SQL & Request.ServerVariables("REMOTE_ADDR") & "')"

      set RSinsert = conn.Execute(SQL)

      if request.form("remember") = "true" then
      Response.cookies("nick") = author
      Response.Cookies("nick").Expires = Date+365
      Response.cookies("email") = email
      Response.Cookies("email").Expires = Date+365
      end if
      response.redirect("default.asp")
      end if
      end if


response.write("<form name='form1' method='post' action='default.asp?mode=addmessage'><input type='hidden' name='mode' value='insert'>")
  response.write("<table width='630' align='center' cellpadding='3' cellspacing='0' class='textnormal'>")
    response.write("<tr>")
    response.write("<td colspan='2'><font color='#990000'>" & errormsg & "</font><br><br></td>")
        response.write("</tr>")
        response.write("<tr>")
    response.write("<td width='153'>Nick / Handle: </td>")
      response.write("<td width='455'><input name='author' type='text' class='textfields' id='author' value=' " & author & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td>E-mail:</td>")
    response.write("<td width='455'><input name='email' type='text' class='textfields' id='email' value=' " & email & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
  response.write(" <td>Website:</td>")
    response.write("<td height='24' width='455' valign='top'><input name='website' type='text' class='textfields' id='website' value=' " & website & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
  response.write(" <td height='24'>Overskift:</td>")
  response.write("<td valign='bottom'><input name='topic' type='text' class='textfields' id='topic' value=' " & topic & " '  size='86'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td valign='top'>Besked:</td>")
    response.write("<td width='455' valign='top' class='textsmall'>")
    response.write("<textarea name='body' cols='86' class='textareas'  onselect='storeCaret(this);' onchange='storeCaret(this);countLetters(this);' onclick='storeCaret(this);' onkeydown='storeCaret(this);countLetters(this);' onkeyup='storeCaret(this);countLetters(this);'></textarea>")
  response.write("<br>")
    response.write("Din besked må maksimalt være på 700 tegn - du har <span id='lettercount'>700</span> tegn tilbage.")
    response.write("<br>")
    response.write("<td width='2'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td height='36' valign='top'>Husk mine informationer:<br>")
      response.write("<font color ='cccccc'>(Ved brug af Cookies)</font></td>")
    response.write("<td height='40' valign='top'><input name='remember' type='checkbox' class='checkbox' id='remember' value='checkbox'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td></td>")
    response.write("<td><input name='Submit' type='submit' class='submitfield' value='Gem beskeden'></td>")
response.write("</tr>")
  response.write("<tr>")
    response.write("<td height='40' valign='bottom'> &raquo;<a href='default.asp'> Tilbage til Communications</a></td>")
    response.write("<td></td>")
  response.write("</tr>")
response.write("</table>")
response.write("</form>")

%>
<%
CASE ELSE
%>

<table width="630" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td height="20" align="center" valign="top" class="textheader"><a href="default.asp?mode=addmessage">Tilf&oslash;j besked</a></td>
  </tr>
  <tr>
    <td>
   

    </td>
  </tr>
  <tr>
    <td align="center" valign="top" class="textnormal">
    <%


   
    %></td>
  </tr>
</table>
<p><br> 
<%
END SELECT
closedb()
%>
</p>
</body>
</html>
Avatar billede busschou Praktikant
22. marts 2005 - 22:05 #24
har du nogle variable i din functions.asp som overlapper dem i denne fil?
Avatar billede busschou Praktikant
22. marts 2005 - 22:09 #25
en anden fejl er i din tabel under Nick
Der giver du den name="auther" ....
Men i din kode siger du
auther = request.form("nick")
Så du må vælge hvad du vil kalde for hvad :o)
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 22:09 #26
Ved ikke. Min functions ser sådan her ud:


<%
    'Opkald til databasen
    Function opendb()
    SQLserveradr="localhost"
    SQLlogin="team_nopanic_dk"
    SQLdatabase="team_nopanic_dk"
    SQLpassword="41AwDZy2pjn37bkb"

    Set Conn = Server.CreateObject("ADODB.Connection")

    conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
    conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=16386"

    Conn.Open conStr
    set opendb = conn
    End function

    Function closedb ()
        conn.close
        Set conn = nothing
    End Function
%>

  <!-- Spærring ved for mange tegn -->
  <script type='text/javascript'>
  function storeCaret(textEl) {
  if (textEl.createTextRange){
  textEl.caretPos = document.selection.createRange().duplicate();
  }
  }

  var maxletters = 700;
  function countLetters(tbbody){
  if(tbbody.value.length >= maxletters){
  tbbody.value = tbbody.value.substring(0, maxletters);
  }
  document.getElementById('lettercount').innerHTML = (maxletters - tbbody.value.length);
  }

  function addSmiley(strTag){
  var textEl = mainForm._ctl11_tbbody;
  if(textEl.createTextRange && textEl.caretPos){
  var caretPos = textEl.caretPos;
  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? strTag + ' ' : strTag;
  }else{
  textEl.value = strTag;
  }
  }
  </script>
Avatar billede busschou Praktikant
22. marts 2005 - 22:12 #27
ok lige en mente.... du har lige postet din database kode
Avatar billede busschou Praktikant
22. marts 2005 - 22:17 #28
ved ikke om det er et problem
Men kan du både sige
Set Conn = Server.CreateObject("ADODB.Connection")
i dine funktioner og så
set conn = opendb()
i default.asp ?
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 22:22 #29
DOH! Det er femte gang jeg gør det !!
er ikke for kvik, men har ændret password :)

Ved ikke om man kan sige begge ting. Jeg er ikke programmør!
Kan man da ikke det, det har virket fint nok før ?
Avatar billede busschou Praktikant
22. marts 2005 - 22:25 #30
skal en funktion ikke retunere noget mens en sub ikke retunerer noget?
jeg ville lave dine opendb() og closedb() som sub´s
Så åbner og lukker de for Conn
i din default burde du så bare kunne droppe
set conn = opendb() og blot skrive opendb()
Jeg vil tro at du så stadig kan referere til Conn og således bliver den ikke erklæret dobbelt
Avatar billede busschou Praktikant
22. marts 2005 - 22:27 #31
jeg er heller ikke super ASP ekspert men jeg prøver selv erfaringsmæssig at undgå overlappende navne.
Fik du min kommentar 22:09:17?
Der er problemet at du både har en "nick" og en "auther" ?
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 22:34 #32
RE: 22:09:17?
Den er rettet :)

RE: 22:25:43
Ved bare at skrive opendb() får jeg bare en fejlmeddelse
Avatar billede busschou Praktikant
22. marts 2005 - 22:35 #33
ok men hvad så med at flytte din åbning af databasen ned til der hvor du laver din forespørgsel?
Der er i hvert fald ingen grund til at den bliver åbnet før alle dine tjek på navn og email mm... og måske kan det være at det giver lidt mere info :)
Avatar billede busschou Praktikant
22. marts 2005 - 22:36 #34
så din
set conn = opendb()
kommer lige oven over din
set RSinsert = conn.Execute(SQL)
Avatar billede lukasolsen Nybegynder
22. marts 2005 - 22:42 #35
Stadig samme fejl :(
Avatar billede busschou Praktikant
22. marts 2005 - 22:44 #36
Det jeg ville have gjort med din functions var:
------------------------------------------------------
<%
    Dim Conn
   
    'Opkald til databasen
    Sub opendb()
    SQLserveradr="localhost"
    SQLlogin="team_nopanic_dk"
    SQLdatabase="team_nopanic_dk"
    SQLpassword="41AwDZy2pjn37bkb"

    Set Conn = Server.CreateObject("ADODB.Connection")

    conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
    conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=16386"

    Conn.Open conStr
    End Sub

    Sub closedb ()
        Conn.close
        Set Conn = nothing
    End Sub
%>
-------------------------
Så burde Conn være erklæret idet du includer din functions
Avatar billede busschou Praktikant
22. marts 2005 - 22:45 #37
Når jeg umiddelbart copy/paster din kode og dropper database forbindelsen så virker det
De eneste fejl det gav mig var at den hele tiden sagde "indtast navn" fordi din Nick hed Auther....
Så det må næsten være noget af databasen som laver fejl
Avatar billede busschou Praktikant
22. marts 2005 - 22:49 #38
så burde du nemlig kunne skrive
------
call opendb()
set RSinsert = conn.Execute(SQL)
Avatar billede busschou Praktikant
22. marts 2005 - 23:05 #39
nå smutter til køjs
pøj pøj med det
Avatar billede lukasolsen Nybegynder
23. marts 2005 - 09:18 #40
Nu har jeg fundet fejlen.

SUN ONE ASP VB Kan ikke kende forskel på sin egne Err Og mine Err, derfor er det også sat til et reseveret ord. Man kunne ellers godt engang nøjes med at skrive Err, men ikke efter de gin hen til SUN ONE ASP VB

Anyway - jeg klarede den ved at skrive et i for (interger) foran alle mine Err. Altså ierr.
Og nu virker det så :)
Smid lige et svar, jeg syntes du har fuldt fortjent dem :)
Avatar billede busschou Praktikant
23. marts 2005 - 09:23 #41
ok der kan man bare se
Men hvad fik da løst et par andre små ting undervejs :o) godt det virker
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