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
3 svar · 349 visningar · startad av ReloadMaster
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"
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
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->"
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