Avatar billede kpl Nybegynder
12. november 2002 - 22:18 Der er 5 kommentarer og
1 løsning

Script der driller?

Hej - jeg har rodet hele aften med at få dette gæstebogs script til at fungere.
Eneste fejl er, at man ikke kan "poste" en ny meddelse (add). Hvad kan der være galt - fejlen i  browseren siger 500 fejl og siden kan ikke vises.

Dog vises de allerede indtastede poster fint og selve formen vises også, men når man trykker på send sker der ikke noget?


<%
Const adOpenKeyset = 1
Const adLockOptimistic = 3

strMode = Request.QueryString("mode")

tempConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\home\minwebsite\db\guestbook.mdb"
If Request.Form("Gem") <> "" Then

strError = ""
strNavn = Trim(Request.Form("Navn"))
strEmail = Trim(Request.Form("Email"))
strKommentar = Trim(Request.Form("Kommentar"))
If Len(strNavn) = 0 Then
  strError = "<li>Please write your name</li>"
ElseIf validateEmail(strEmail) = False Then
  strError = "<li>Please write your e-mail address</li>"
ElseIf Len(strKommentar) = 0 Then
  strError = "<li>You have to write a comment - please</li>"
End If
If Len(strError) = 0 Then
  Set rs = Server.CreateObject("ADODB.RecordSet")
  strSQL = "SELECT * FROM Guestbook WHERE (ID = 0)"
  rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic
  If (rs.BOF Or rs.EOF) Then
  rs.AddNew
  rs("Navn") = Server.HTMLEncode(strNavn)
  rs("Email") = Server.HTMLEncode(strEmail)
  rs("Kommentar") = Server.HTMLEncode(strKommentar)
  rs("Dato") = Now()
  rs.Update
  End If
  rs.Close
  Set rs = Nothing
Else
  strError = "<p><ul><font color=#FF0000>" & strError & "</font></ul></p>"
  strMode = "add"
End If
End If
%>

<html>

<head>
<title></title>
</head>

<body>
<p align="left"><img border="0" src="guestb5.gif">

<br>
<br><table border="0" width="500" cellspacing="0" cellpadding="3" style="border-left: 1px solid rgb(0,0,0); border-right: 1px solid rgb(0,0,0); border-top: 1px solid rgb(0,0,0); border-bottom: 2px solid rgb(0,0,0)">
    <tr>
      <td width="500" bgcolor="#000064"><p>&nbsp;</td>
    </tr>
    <tr>
      <td width="472">
<%
Select Case strMode
Case "add"
%>
<form method="POST" action="guestbook.asp" style="font-family: Verdana; font-size: 10pt">
<table border="0" width="456" cellspacing="0" cellpadding="2">
        <tr>
          <td valign="middle" align="left" colspan="2" width="413"><font face="verdana" size="1"><br>Please
            fill out this form:<strong>
  <%=strError%></strong></font></td>
        </tr>
        <tr>
          <td valign="middle" align="left" width="104"><div align="right"><p><strong><font face="verdana" size="1">Name</font></strong>
            </div>
          </td>
          <td valign="middle" align="left" width="340"><input type="text" name="Navn" size="40" value="<%=strNavn%>"></td>
        </tr>
        <tr>
          <td valign="middle" align="left" width="104"><div align="right"><p><strong><font face="verdana" size="1">E-mail
              address</font></strong>
            </div>
          </td>
          <td valign="middle" align="left" width="340"><input type="text" name="Email" size="40" value="<%=strEmail%>"></td>
        </tr>
        <tr>
          <td valign="top" align="left" width="104"><div align="right"><p><strong><font face="verdana" size="1">Your
              comments</font></strong>
            </div>
          </td>
          <td valign="middle" align="left" width="340"><textarea rows="5" name="Kommentar" cols="50"><%=strKommentar%></textarea></td>
        </tr>
        <tr>
          <td valign="middle" align="left" colspan="2" width="413"><br>
          <input type="submit" value="Send" name="Gem" style="font-family: Verdana; font-size: 10pt"> <input type="button" value="Reset" name="Annuller" onClick="java script:location.href='guestbook.asp'" style="font-family: Verdana; font-size: 10pt"></td>
        </tr>
      </table>
</form>
<%
Case Else
strAddLine = "<p><img src=add.gif width=16 height=16><font face=verdana size=1><a href=guestbook.asp?mode=add>Add Your Comments to the Guest Book!</font></strong></a></p>"
Response.Write strAddLine
strSQL = "SELECT * FROM Guestbook ORDER BY Dato DESC;"
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open tempConn
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
  Response.Write "<table width=100% border=0 cellpadding=1 cellspacing=1>"
  Do While Not rs.EOF
  dtmDato = rs("Dato")
  dtmDato = FormatDateTime(dtmDato,vbLongDate) & " kl. " & FormatDateTime(dtmDato,vbLongTime)
  Response.Write "<tr bgcolor=#C0C0C0><td width=""100%""><font face=verdana size=1>" & dtmDato & "</td></tr>"
  If Len(rs("Email")) > 0 Then
    Response.Write "<tr><td><font face=verdana size=1><strong><a href=mailto:" & rs("Email") & ">" & rs("Navn") & "</a> writes:</strong></td></tr>"
  Else
    Response.Write "<tr><td><font face=verdana size=1><strong>" & rs("Navn") & " writes:</strong></td></tr>"
  End If
  Response.Write "<tr><td><font face=verdana size=1>" & rs("Kommentar") & "<br>&nbsp;</td></tr>"
  rs.MoveNext
  Loop
  Response.Write "</table>"
Else
  Response.Write "<p><font face=verdana size=1>Empty...</font></p>"
End If
myConn.Close
Set myConn = Nothing

End Select
%>
</tr>
  </table>
<br>


</body>
</html>
<script language="VBScript" runat="Server">
Function validateEmail(strEmail)
validateEmail = True
If Len(strEmail) < 6 Then
  validateEmail = False
End If
If InStr(1, strEmail, "@", 1) < 2 Then
  validateEmail = False
End If
If InStr(1, strEmail, ".", 1) = 0 Then
  validateEmail = False
End If
pos = InStr(1, strEmail, "@", 1)
If pos < 2 Then
  validateEmail = False
  Else
  pos = InStr(pos+1, strEmail, "@")
  If pos > 0 Then
  validateEmail = False
  End If
End If
End Function
</script>
Avatar billede eagleeye Praktikant
12. november 2002 - 22:22 #1
Prøv iIE at slå denne fra:
funktioner -> internetindstillinger -> avanceret -> fjern kryds i "ved meddelelse om uskadelige http-fejl"

Det skulle give en bedre fejl kode/beskrivelse.
Avatar billede korup Nybegynder
12. november 2002 - 22:23 #2
Mangler der ikke et " mellem = og d:....

Din.
------------------
tempConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\home\minwebsite\db\guestbook.mdb"
If Request.Form("Gem") <> "" Then

Min.
------------------
tempConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="d:\home\minwebsite\db\guestbook.mdb"
If Request.Form("Gem") <> "" Then

/korup
Avatar billede kpl Nybegynder
12. november 2002 - 22:30 #3
Jeg får denne fejl (som jeg ikke fatter, da databasen ligger i en speciel mappe \db\ hvor databaser skal ligge (Webhotel hos Azero):


Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.

/guestbook.asp, line 32
Avatar billede eagleeye Praktikant
12. november 2002 - 22:39 #4
Så det fordi du ikke har skrive rettigheder til databasen eller den folder databasen ligger i:

Se mere her:
http://activedeveloper.dk/aspdigital/kapitel2/updateable_query.asp
Avatar billede t0pd0g Nybegynder
13. november 2002 - 12:31 #5
den er god nok... ring til azero så fikser de det for dig..
Avatar billede kpl Nybegynder
27. november 2002 - 22:59 #6
Beklager mit sene svar - troede den var lukket - Sorry - Fejlen var hos Azero
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