webForumDet fria alternativet

Option Explicit

ASPur ASP

52 svar · 1 700 visningar · startad av ade · sida 2 av 3

Frågan, av ade

Jag får detta felmedelande på mitt nya forumprojet :) Microsoft VBScript compilation error '800a0400' Expected statement /forum1.0/Default.asp, line 10 Option Explicit ^ rad 10: Option Explicit

Läs frågan i sin helhet →
Medlem sedan mars 20033 686 inlägg
#21
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
SQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster FROM tblForum WHERE threadParent=0 ORDER BY threadDateTime DESC"

Set rs = Conn.Execute(SQL)
%>
<html>
 <body>
  <table border="0">
   <tr>
    <td colspan="3">
     <a href="form.asp">Skriv ett nytt inlägg</a>
    </td>
   </tr>    <tr>
    <td>
     <b>Rubrik</b>
    </td>
    <td>
     <b>Datum</b>
    </td>
    <td>
     <b>Vem?</b>
    </td>
   </tr>
   <%
if rs.EOF or rs.BOF then
   %>
   <tr>
    <td colspan="3">
     <b>Det finns inga inlägg i forumet</b>
    </td>
   </tr>
   <%
else
  do while not rs.EOF
   %>
   <tr>
    <td>
     <b><a href="readThread.asp?threadID=<%=rs("ID")%>"><%=rs("Fält7")%></a></b>
    </td>
    <td>
     <b>Postat av: <%=rs("Fält4")%></b>
    </td>
    <td>
     <b>Inlägg: <%=rs("Fält6")%></b>
    </td>
   </tr>
   <%
   rs.MoveNext
  loop
end if
  %>
  </table>
 </body>
</html>
<%
Conn.Close
Set Conn = nothing
%> 
</body>
</html>

Har inte testat den, så jag vet inte om ä:na kan skapa problem. Men jag skulle döpa om fälten du har till lite logiska namn, och inte till Fält1, fält2, fält3 osv. Även om det inte är du som döpt dem. ;)

Medlem sedan juli 20041 081 inlägg
#22

ska jag göra om databasen? jag har skrivit thredid och de under fält1 ska jag skriva över fält1 istället?

Medlem sedan juli 20041 081 inlägg
#23

fick detta felmedelande:
Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

/forum1/Default.asp, line 6

rad 6:

Set rs = Conn.Execute(SQL)
Medlem sedan mars 20033 686 inlägg
#24

Det är under Design du skall döpa dem till namnen du vill ha.

När du, efter att ha döpt dem till "fält1" osv, skriver in något skapar du en post.

Medlem sedan juli 20041 081 inlägg
#25

jag ska göra om db:n nu..

Medlem sedan juli 20041 081 inlägg
#26

1000 TACK till magnus.. felet var följande:

option explicit skulle bort och jag hade gjort fel med databasen...

tack ännu en gång..

Medlem sedan mars 20033 686 inlägg
#27

Jag tog mig friheten att göra om lite. Delvis döpa om fälten i databasen och anpassa koden. Resultat: http://midgetzinc.net.loopiadns.com/test/test.asp

Databasen finns här:

http://midgetzinc.net.loopiadns.com/test/forum.mdb

Redigering: Det hade du redan fixat ser jag. ;)

Medlem sedan juli 20041 081 inlägg
#28

okej.. mitt funkar lite grann

kan inte skapa en tråd

Medlem sedan juli 20041 081 inlägg
#29

kan du skcika den postform.asp du gjorde? om du har gjort en..

Medlem sedan mars 20033 686 inlägg
#30

Nja. Min kod är ju bara den som skriver ut trådarna.

Posta koden till sidan som skapar ny tråd så får vi väl kolla på den också. ;)

Förövrigt kan du redigera dina inlägg när du kommer på något, istället för att skriva ett nytt. :)

Medlem sedan juli 20041 081 inlägg
#31
<% strDummy = "Ingen angiven" 'Text som vi stoppar in om användaren inte har fyllt i ett fält.

lngThreadParent = Request.Form("threadParent")
'Kontrollera om det är ett svar
if lngThreadParent = "" then lngThreadParent = 0
'Slut på kontroll

'Lägg in formulär-fälten i variablar och kontrollera efter ogiltiga tecken
strThreadPoster = Replace(Request.Form("threadPoster"), "'", "''")
strThreadPosterEmail = Replace(Request.Form("threadPosterEmail"), "'", "''")
strThreadHeadline = Replace(Request.Form("threadHeadline"), "'", "''")
strThreadText = Replace(Request.Form("threadText"), "'", "''")
dtmThreatDateTime = Now()
'Slut på kontroll

'Kontrollera om formulär-fälten var tomma.
if strThreadName = "" then strThreadName = strDummy
if strThreadPosterEmail = "" then strThreadPosterEmail = strDummy
if strThreadHeadline = "" then strThreadHeadline = strDummy
if strThreadText = "" then strThreadText = strDummy
'Slut på kontoll

'Skapa databas-anslutningen
Set objConn = Server.CreateObject("ADODB.Connection")
'forum.mdb skall bytas ut mot vad din databas-fil heter.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
objConn.Open strConn

'Skapa SQL-strängen för ett nytt inlägg.
strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES(" & dtmThreatDateTime & ", '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"
'Kör SQL-strängen mot databasen
objConn.Execute(strSQL)

'Stäng databasen
objConn.Close
Set objConn = nothing

'Gå till tråd-listningen
Response.Redirect("default.asp")
%>
Medlem sedan dec. 199917 055 inlägg
#32

ade skrev:

option explicit skulle bort och jag hade gjort fel med databasen...

Nu har jag bara skumläst tråden, men varför ta bort option explicit? Sätt den rätt istället och dimma objekten precis som föreslaget. Option Explicit ska dock sitta allra först mig veterligen d.v.s:

<% Option Explicit %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%
Dim objConn 'as object
Dim strConn 'as string
Dim strSQL 'as string
Dim rstForum 'as recordset
Medlem sedan mars 20033 686 inlägg
#33

Rikard: Om du skumläst på rätt ställe hade du sett min fråga. ;)

icaaq: Vad skall det vara bra för egentligen? Att dimma alltså. Har gjort alla möjliga script och aldrig använt mig av det.

Kanske du kan svara på den? :)

ade Vad är det som inte fungerar då?

Medlem sedan juli 20041 081 inlägg
Medlem sedan mars 20033 686 inlägg
#35

Det verkar som om du missat enkelfnuttar.

Posta koden för sidan som skickar texten till databasen.

Medlem sedan juli 20041 081 inlägg
#36

du får hela

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%
strDummy = "Ingen angiven" 'Text som vi stoppar in om användaren inte har fyllt i ett fält.

lngThreadParent = Request.Form("threadParent")
'Kontrollera om det är ett svar
if lngThreadParent = "" then lngThreadParent = 0
'Slut på kontroll

'Lägg in formulär-fälten i variablar och kontrollera efter ogiltiga tecken
strThreadPoster = Replace(Request.Form("threadPoster"), "'", "''")
strThreadPosterEmail = Replace(Request.Form("threadPosterEmail"), "'", "''")
strThreadHeadline = Replace(Request.Form("threadHeadline"), "'", "''")
strThreadText = Replace(Request.Form("threadText"), "'", "''")
dtmThreatDateTime = Now()
'Slut på kontroll

'Kontrollera om formulär-fälten var tomma.
if strThreadName = "" then strThreadName = strDummy
if strThreadPosterEmail = "" then strThreadPosterEmail = strDummy
if strThreadHeadline = "" then strThreadHeadline = strDummy
if strThreadText = "" then strThreadText = strDummy
'Slut på kontoll

'Skapa databas-anslutningen
Set objConn = Server.CreateObject("ADODB.Connection")
'forum.mdb skall bytas ut mot vad din databas-fil heter.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
objConn.Open strConn

'Skapa SQL-strängen för ett nytt inlägg.
strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES(" & dtmThreatDateTime & ", '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"
'Kör SQL-strängen mot databasen
objConn.Execute(strSQL)

'Stäng databasen
objConn.Close
Set objConn = nothing

'Gå till tråd-listningen
Response.Redirect("default.asp")
%> 
</body>
</html>
Medlem sedan mars 20015 287 inlägg
#37

magnusfernstrom: Läste du inte detta?
Skriv nu ingenting du ångrar, hehe. ;)
http://www.webforum.nu/showthread.php?s=&postid=76616#post76616

Medlem sedan mars 20033 686 inlägg
#38

Vad skulle jag ångra?

Jaja, jag läste väl lite snabbt då. :r

Medlem sedan mars 20033 686 inlägg
#39

Byt:

strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES(" & dtmThreatDateTime & ", '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"

mot:

strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES('" & dtmThreatDateTime & "', '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"

'" & dtmThreatDateTime & "' - Enkelfnuttar alltså :)

Medlem sedan mars 20015 287 inlägg
#40

Detta:

magnusfernstrom skrev:

icaaq: Vad skall det vara bra för egentligen? Att dimma alltså. Har gjort alla möjliga script och aldrig använt mig av det.

Inget illa ment dock.

Åter till tråden,

Om man ser hur det ser ut idb:n nu så stämmer nog det där bättre, dock bör egentligen datumfältet både i db och kod hanteras som just ett datumfält.

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