webForumDet fria alternativet

Problem med Gästbok...

ASP

3 svar · 349 visningar · startad av ReloadMaster

Medlem sedan aug. 2001239 inlägg
Frågan#1

Tjena jag har ett problem med min gästbok

Bifogar hela koden(så kanske folk hittar andra förbättringar =):

 
<%@ LANGUAGE=VBScript%>

<%
db = Server.MapPath("gbdb.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& db
%>

<html>
<head>
<title>Cruel! Gästbok</title>
</head>

<body bgcolor="#99CCFF" text="000000" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<font face="verdana" size="1">

<%
Const perSida = 10
Dim sida
If Request.QueryString("sida") = "" then
sida = 1
Else
sida = Request.QueryString("sida")
End If

Dim RecSet
Set RecSet= Server.CreateObject("ADODB.Recordset")
RecSet.CursorLocation = 3	'Här kan du byta ut 3 mot adUseClient om du inkluderar filen adobvs.inc
RecSet.CacheSize = perSida

SQLSats = "Select * From gastbok Order By ID Desc"
RecSet.Open SQLSats, Conn

If RecSet.EOF Then
Response.Write"Gästboken är tom =( skriv något snälla!"
Else

RecSet.MoveFirst
RecSet.PageSize = perSida

Dim TotalPages
TotalPages = RecSet.PageCount
RecSet.AbsolutePage = sida
Dim count
Count = 0
Do While Not RecSet.EOF And Count < RecSet.PageSize
If RecSet("email") <> "" Then
%>

<b>Skrivet av:</b>
<a href="mailto:<%=RecSet("email")%>"><%=RecSet("namn")%></a>
<b>Datum</b> <%=RecSet("datum")%>
<br>

<%
End If
If RecSet("hemsida") <> "" Then
%>
<a href="http://<%=RecSet("hemsida")%>" target="_blank"><%=RecSet("hemsida")%></a><br>
<%
End If
Response.Write Replace(Server.HTMLEncode(RecSet("meddelande")),vbCrLf,"<br>")
%>
<br>
<img src="../streck.bmp" border="0">
<p>

<%
Count = Count + 1
RecSet.MoveNext
Loop
RecSet.Close
Set RecSet = Nothing
End If
%>
<img src="../streck.bmp" border="0">
<br>
<br>
<%
If TotalPages <> 1 Then
If (Int(sida)) <> 1 Then
%>
<a href="gastbok.asp?sida=<%=(Int(sida)-1)%>"><- Tillbaka</a>
<%Else%>
<- Tillbaka
<%End If%>
<%
Dim Pages
For Pages = 1 To TotalPages
%>
<%If (Int(Pages)) = (Int(sida)) Then%><b><%=Pages%></b> 
<%Else%>
<a href="gastbok.asp?sida=<%=Pages%>"><%=Pages%></a> 
<%End If%>
<%Next%>

<%
If (Int(sida)) <> (Int(TotalPages)) Then
%>
<a href="gastbok.asp?sida=<%=(Int(sida)+1)%>">Nästa -></a>
<%Else%>
Nästa ->
<%End If%>
<%End If%>
<br>
<%
If Request.Querystring("skriv") = "ja" Then
%>
<img src="../streck.bmp" border="0">
<br>
<form method="POST" action="gastbok.asp?inlagg=kolla">
  Namn: 
<br>
<input type="text" name="namn" size="10">
<br>
  E-mail: 
<br>
<input type="text" name="email" size="10">
 <br>
 Hemsida: (ej [url]Http://[/url])
<br>
  <input type="text" name="hemsida" size="10"></p>
    <p>
   Meddelande:</p>
    <p>
  <textarea rows="4" name="meddelande" cols="25"></textarea></p>
    <p>
  <input type="submit" value="Lägg till" name="send">
  <input type="reset" value="Återställ" name="B2"></p>
</form>
<%Else%>
<a href="?skriv=ja">Skriv meddelande</a>
<%End If%>
<%
If Request.Querystring("inlagg") = "kolla" Then

If Len(Request.Form("namn")) <3 Then
%>

<b><a href="javascript:history.go(-1)">Du måste skriva ett namn</b></a>

<%
ElseIf Len(Request.Form("meddelande")) <6 Then
%>

<b><a href="javascript:history.go(-1)">Du måste skriva ett meddelande med mer än 5 bokstäver</b></a>

<%

ElseIf InStr(Request.Form("email"),"@") = False Then
%>
<a href="javascript:history.go(-1)">Fyll i en riktig epostadress</a>

<%
Else

Session("namn") = Request.Form("namn")
Session("email") = Request.Form("email")
Session("hemsida") = Request.Form("hemsida")
Session("meddelande") = Request.Form("meddelande")

Response.Redirect("gastbok.asp?inlagg=spara")

End if

ElseIf Request.Querystring("inlagg") = "spara" Then

namn = Session("namn")
email = Session("email")
hemsida = Session("hemsida") 
meddelande =  Session("meddelande")
datum = Date
ip = Request.ServerVariables("REMOTE_ADDR")

SQL = "INSERT INTO gastbok (namn, email, hemsida, meddelande, datum, ip)"
SQL = SQL & " VALUES ('" & namn & "', '" & email & "', '" & hemsida & "', '" & meddelande & "', '" & datum & "', '" & ip & "')"
Conn.execute(SQL)

Response.Redirect("gastbok.asp")

End If
%>

</font>

</body>
</html>

<%
Conn.Close
Set Conn = Nothing
%>

Problemet är:
Trots att databasen är tom så är ändå ordet "Nästa" en länk?

2:a problemet:
Finns det ett inlägg i databasen så visar den varken ordet
"Tillbaks" eller "Nästa"

Medlem sedan mars 20001 266 inlägg
#2

Beror inte första problemet på följande rader.

<%
If (Int(sida)) <> (Int(TotalPages)) Then
%>
<a href="gastbok.asp?sida=<%=(Int(sida)+1)%>">Nästa -></a>

<%Else%>
Nästa ->

Betyder väl att den i vilket fall som ehslt skriver ut Nästa.

Andreas

Medlem sedan aug. 2001239 inlägg
#3

AG skrev:

Beror inte första problemet på följande rader.

<%
If (Int(sida)) <> (Int(TotalPages)) Then
%>
<a href="gastbok.asp?sida=<%=(Int(sida)+1)%>">Nästa -></a>

<%Else%>
Nästa ->

Betyder väl att den i vilket fall som ehslt skriver ut Nästa.

Andreas

Jo men om det bara finns <10
inlägg så ska nästa inte vara en länk
Det är där Else borde skriva "Nästa->"

Medlem sedan mars 20001 266 inlägg
#4

Om du skriver:

If (Int(sida)) < (Int(TotalPages)) Then
%>
<a href="gastbok.asp?sida=<%=(Int(sida)+1)%>">Nästa -></a>

<%Else%>
Nästa ->

Borde inte det gå? Betyder ju att så länge sidan du är på är mindre än det totala antalet sidor visas "nästa" som en länk.
Alltså ">" är borttaget.

Andreas

262 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)