webForumDet fria alternativet

Flytta om kod... typ. Hjälp!

ASP

6 svar · 419 visningar · startad av blåjeans

Medlem sedan sep. 2005849 inlägg
Frågan#1

Jag ska försöka förklara vad jag håller på med här. Kan ju börja med att säga att jag kan egentligen inte ASP men man lär sig ju inte om man inte försöker!!

Jag använder gästboken från gruvsjö, och nu vill jag göra om den koden lite, så att jag kan använda den som dagbok också. Men då behöver jag ju alltså ta bort själva formuläret och istället flytta det till admin.asp (så att bara jag kan skriva men att inläggen syns i dagbok.asp). Det här borde ju gå!! (eller?) Men jag behöver hjälp för jag har fastnat... nu har jag redan fixat och donat lite så det kan hända att det är nåt fel nånstans, men här är iaf dagbok.asp, dvs där formuläret finns, som inte ska vara kvar där.

<%Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db

If Request.Querystring("do")= "" Then%>

<table border="0" width="400" align="center" cellpadding="3" cellspacing="10">
  <form method="post" action="<%=INC%>?do=add" name="gastbok"  onSubmit="return Gb()">
    <tr> 
      <td colspan="2" style="border-bottom: 1px solid #006666"><font size="3"><b>
	  <p><div align="center"><div class="titel">Dagbok / Journal</div></p></b></font>
	<p>&nbsp;</p>
	  </td>
	  </tr>
    <tr> 
      <td>Ditt namn / Your name:<br><input type="text" name="namn" size="25"></td>
      <td>Rubrik / Title:<br><input type="text" name="rubrik" size="25"></td>
  </tr>
    <tr>
      <td>Din e-mail / Your e-mail:<br><input type="text" name="mail" size="25"></td>
      <td>Hemsida / Homepage:<br><input type="text" name="url" size="25"></td>
    </tr>
    <tr> 
      <td valign="top" colspan="2">Meddelande / Message:<br><textarea name="msg" cols="60" rows="8"></textarea></td>
    </tr>
    <tr> 
      <td colspan="2"><input type="submit" value="Skicka / Send"></td>
    </tr>
  </form>
</table>

<%Set Recset = Server.CreateObject("ADODB.Recordset")

Sidan = Request.QueryString("next")
If Sidan = "" then 
    sida = 1 
Else 
    sida = Sidan 
End If 

With RecSet
    .CursorLocation = 3
    .CacheSize = InlaggPerSida
End With

SQL = "Select * From gastbok Order By datum desc"
RecSet.Open SQL, Conn

If RecSet.EOF Then%>
<br>
<table border="0" width="400" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td><i>Inga inlägg / No entries.</i></td>
  </tr>
</table>
<%Else%>
<br>
<%With RecSet
     .MoveFirst 
     .PageSize = InlaggPerSida
     .AbsolutePage = sida
End With

Sidor =  RecSet.PageCount
If Sidor > 1 Then%>

<table border="0" width="400" align="center" cellpadding="3" cellspacing="0" style="border: 1px solid #006666">
  <tr>
     <td valign="top" bgcolor="#D0F0D6">
     <%For Sid = 1 To Sidor
         If (Int(Sid)) = (Int(sida)) Then%><b><%=FixDigits(Sid,2)%></b><%Else%> <a href="<%=INC%>?next=<%=Sid%>"><%=FixDigits(Sid,2)%></a> <%End If
     Next%>
     </td>
   </tr>
</table>
<br>
<%End If
X = 0
Do While Not RecSet.EOF And X < RecSet.PageSize%>
<table border="0" width="400" align="center" cellpadding="5" cellspacing="0" style="border: 1px solid #006666">
  <tr>
    <td bgcolor="#D0F0D6" width="400"><b><%=Recset("rubrik")%></b> | <%=Recset("namn")%></td><td align="right" bgcolor="#D0F0D6" width="100"><img src="bilder/klocka.gif" border="0" alt="<%=FormatDateTime(RecSet("datum"),2)%> (<%=FormatDateTime(RecSet("datum"),4)%>)"> <%If RecSet("url") <> "" Then%><a href="<%=RecSet("url")%>" target="_blank"><img src="bilder/homepg.gif" border="0" alt="<%=RecSet("url")%>"></a> <%End If%><%If RecSet("mail") <> "" Then%><a href="mailto:<%=RecSet("mail")%>"><img src="bilder/email.gif" border="0" alt="<%=RecSet("mail")%>"></a><%End If%></td>
  </tr>
  <tr>
    <td colspan="2" bgcolor="#FFFFFF"><%=Link(RecSet("msg"))%></td>
  </tr>
<%If Recset("svar") <> "" Then%>
  <tr> 
    <td colspan="2" bgcolor="#FFFFFF" align="center">
		<table><tr><td width="250" style="border-bottom: 1px solid #990033">&nbsp;</td></tr></table>
	</td>
  </tr> 
  <tr>
    <td colspan="2" bgcolor="#FFFFFF"><b>Svar:</b> <i><%=Replace(RecSet("svar"), vbCrLf, "<br>")%></i></td>
  </tr>
<%End If%>
</table>
<br>
<%X = X+ 1 
Recset.MoveNext
Loop
If Sidor > 1 Then%>

<table border="0" width="400" align="center" cellpadding="3" cellspacing="0" style="border: 1px solid #006666">
  <tr>
     <td valign="top" bgcolor="#D0F0D6">
     <%For Sid = 1 To Sidor
         If (Int(Sid)) = (Int(sida)) Then%><b><%=FixDigits(Sid,2)%></b><%Else%> <a href="<%=INC%>?next=<%=Sid%>"><%=FixDigits(Sid,2)%></a> <%End If
     Next%>
     </td>
   </tr>
</table>

<%End If
Recset.Close
Set Recset = Nothing
End If

ElseIf Request.QueryString("do") = "add" Then

   Namn       = Request.Form("namn")
   Rubrik      = Fixa(Request.Form("rubrik"))
   Mail          = Request.Form("mail")
   Msg	        = Fixa(Request.Form("msg"))
   Ip   	  = Request.Servervariables("REMOTE_ADDR")
   Url   	  = Request.Form("url")
   If Url <> "" Then
     If Left(Url,7) = "http://" Then
       Url = Url
     Else
       Url = "http://" & Url
     End If
   End If

   Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
   Response.Redirect INC
End If

Conn.Close
Set Conn=Nothing%>
</table>
</div>

Om jag har förstått det hela rätt så ska jag först och främst flytta hela <table> där formuläret finns. Och det ser ju finfint ut, så länge man inte klickar på "submit" (eller skicka står det väl än så länge). Men då kommer man till en blank sida. Så jag måste ju flytta nåt mer, det som gör att det blir något av själva inlägget! Det har jag fått berättat för mig att det ska vara:

ElseIf Request.QueryString("do") = "add" Then

   Namn       = Request.Form("namn")
   Rubrik      = Fixa(Request.Form("rubrik"))
   Mail          = Request.Form("mail")
   Msg	        = Fixa(Request.Form("msg"))
   Ip   	  = Request.Servervariables("REMOTE_ADDR")
   Url   	  = Request.Form("url")
   If Url <> "" Then
     If Left(Url,7) = "http://" Then
       Url = Url
     Else
       Url = "http://" & Url
     End If
   End If

   Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
   Response.Redirect INC
End If

Conn.Close
Set Conn=Nothing%>

... och att man ska skriva databasuppkopplingen, men hur och var??

Jag har liksom tappat kollen nu, och kommer inte längre... är det nåt som är jättefel eller går det att fixa till det här? Vore väldigt snällt om nån vill hjälpa mig!! (jag kan inte hjälpa att jag är så envis och måste prova saker jag inte kan nåt om...)
Det blir en massa kod nu men jag vet ju inte vad som behövs och inte... hoppas ni har överseende... :r

Tack på förhand! :)

Medlem sedan sep. 2005849 inlägg
#2

...och såhär ser admin.asp ut (dit koden ska flyttas).

Function Fixa(str)
  Fixa  = Replace(Trim(str),"'","''")
End function

If Request.QueryString("do") = "" Then%>
<div align="center">
      <table width="400" cellpadding="4" cellspacing="0">
        <form name="loggain" method="post" action="admin.asp?do=check">
         <tr>
          <td colspan="2" style="border-bottom: 1px solid #000000"><font size="2"><b>Admin:</b></font></td>
        </tr>
        <tr>
           <td><b>Adminnamn:</b></td>
           <td><input type="text" name="admin1" size="15">
        </tr>
        <tr>
            <td><b>Lösenord:</b></td>
            <td><input type="password" name="admin2" size="15">
        </tr>
        <tr>
            <td style="border-top: 1px solid #000000">&nbsp;</td>
            <td style="border-top: 1px solid #000000"><input type="submit" value="Logga in"></td>
        </tr>
       </form>
      </table>
</div>
<%End If
If Request.QueryString("do") = "check" Then
   If Request.Form("admin1") = Losen1 AND Request.Form("admin2") = Losen2 Then
      Session("gastbok") = Secure
      Session.TimeOut = 40
      Response.Redirect "admin.asp?do=inne"
   Else
      Response.Redirect "admin.asp?mess=fel" 	
   End If
End If
If Request.QueryString("do") = "inne" AND Session("gastbok") = Secure Then%>

<table border="0" width="400" align="center" cellpadding="3" cellspacing="10">
  <form method="post" action="<%=INC%>?do=add" name="gastbok"  onSubmit="return Gb()">
    <tr> 
      <td colspan="2" style="border-bottom: 1px solid #006666"><font size="3"><b>
	  <p><div align="center"><div class="titel">Dagbok / Journal</div></p></b></font>
	<p>&nbsp;</p>
	  </td>
	  </tr>
    <tr> 
     <td>Rubrik:<br><input type="text" name="rubrik" size="60"></td>
  </tr>
   <tr> 
      <td valign="top" colspan="2">Meddelande:<br><textarea name="msg" cols="60" rows="8"></textarea></td>
    </tr>
    <tr> 
      <td colspan="2"><input type="submit" value="Skicka / Send"></td>
    </tr>
  </form>
</table>

<div align="center">
<table width="400" cellpadding="4" cellspacing="0">
  <tr>
     <td align="left" style="border-bottom: 1px solid #000000"><font size="2"><b><a href="admin.asp?do=inne">Dagbokadmin:</a></b></font></td>
     <td align="right" style="border-bottom: 1px solid #000000"><font size="2"><b><a href="admin.asp?do=logut">Logga ut</a></b></font></td>
  </tr>
</table>
</div>
<%If Request.Querystring("action")= "" AND Session("gastbok") = Secure Then%>
<div align="center">
<table width="400" cellpadding="4" cellspacing="0">

<%Set RecSet = Server.CreateObject("ADODB.Recordset")

Const gbaps1 = 15
Sidan = Request.QueryString("sida")
If Sidan = "" then 
    sida = 1 
Else 
    sida = Sidan 
End If 

With RecSet
    .CursorLocation = 3
    .CacheSize = gbaps1 
End With

SQL = "Select * From gastbok Order By datum desc"
RecSet.Open SQL, Conn

If RecSet.EOF Then%>

  <tr>
    <td height="14">Inga inlägg i gästboken!</td>
  </tr>
</table>
</div>
<div align="center">
<%Else%>

  <tr width="14">
    <td width="150" style="border-bottom: 1px solid #000000"><b>Rubrik:</b></td>
    <td width="90" style="border-bottom: 1px solid #000000"><b>Datum:</b></td>
    <td width="80" style="border-bottom: 1px solid #000000"><b>Namn:</b></td>
    <td align="right" width="80" style="border-bottom: 1px solid #000000">&nbsp;</td>
  </tr>

<%With RecSet
     .MoveFirst 
     .PageSize = gbaps1 
     .AbsolutePage = sida
End With

Sidor =  RecSet.PageCount
Count = 0 
Do While Not RecSet.EOF And Count < RecSet.PageSize %>

  <tr>
    <td><b><%=RecSet("rubrik")%></td>
    <td><%=FormatDateTime(RecSet("Datum"),2)%></b></td>
    <td><%=RecSet("namn")%></b></td>
    <td align="right"><a href="admin.asp?do=inne&action=svara&id=<%=RecSet("id")%>"><img src="bilder/svara.gif" border="0" alt="Svara"></a> <a href="admin.asp?do=inne&action=change&id=<%=RecSet("id")%>"><img src="bilder/update.gif" border="0" alt="Ändra"></a> <a href="admin.asp?do=inne&action=delete&id=<%=RecSet("id")%>" onClick="return confirm('Vill du verkligen ta bort <%=RecSet("rubrik")%>?');"><img src="bilder/trash.gif" border="0" alt="Ta bort"></a></td>
  </tr>
		
<%Count = Count + 1
RecSet.MoveNext
Loop

If Sidor > 1 Then%>
     <tr>
        <td colspan="4" style="border-top: 1px solid #000000"><b>
     <%If Sidor <> 1 Then
     For Sid = 1 To Sidor
     If (Int(Sid)) = (Int(sida)) Then%><font color="#ff0000"><%=Sid%></font><%Else%> <a href="admin.asp?do=inne&sida=<%=Sid%>"><%=Sid%></a> <%End If%>
     <%Next%></b></font>
       </td>
     </tr>

<%End If
End If%> 

</table>
</div>
<%RecSet.Close
Set RecSet = Nothing

End If

ElseIf Request.Querystring("action")= "change" AND Session("gastbok") = Secure Then

Set RecSet = Conn.Execute("Select * From gastbok Where id="& Request.Querystring("id"))%>
<div align="center">
 <table width="400" cellpadding="4" cellspacing="0">
<form method="post" action="admin.asp?do=inne&action=andrat&id=<%=Request.Querystring("id")%>" name="gastbok"  onSubmit="return Gb()">
  <tr>
    <td colspan="2" style="border-bottom: 1px solid #000000"><b>Skrivet av <%=RecSet("namn")%></b> | <%=FormatDateTime(RecSet("datum"),2)%> (<%=FormatDateTime(RecSet("datum"),4)%>) | <%=RecSet("ip")%></td>
  </tr>
  <tr>
    <td><b>Namn:</b></td><td><input type="text" name="namn" size="35" value="<%=RecSet("namn")%>"></td>
  </tr>
  <tr>
    <td><b>Rubrik:</b></td><td><input type="text" name="rubrik" size="35" value="<%=RecSet("rubrik")%>"></td>
  </tr>
  <tr>
    <td><b>Email:</b></td><td><input type="text" name="mail" size="35" value="<%=RecSet("mail")%>"></td>
  </tr>
  <tr>
    <td><b>Hemsida:</b></td><td><input type="text" name="url" size="35" value="<%=RecSet("url")%>"></td>
  </tr>
  <tr>
    <td colspan="2"><b>Inlägg:</b><br><textarea cols="60" rows="10" name="msg" size="45"><%=RecSet("msg")%></textarea></td>
  </tr>
  <tr>
    <td colspan="2"><input type="Submit" name="andra" value="Ändra"></td>
  </tr>
</form>
</table>
</div>
<%RecSet.Close
Set RecSet = Nothing

ElseIf Request.Querystring("action") = "andrat" AND Session("gastbok") = Secure Then
   Namn		= Request.Form("namn")
   Rubrik        = Fixa(Request.Form("rubrik"))
   Mail	           = Request.Form("mail")
   Url              = Request.Form("url")
   Msg            = Fixa(Request.Form("msg"))

   Conn.execute("Update gastbok Set namn='" & Namn & "',rubrik='" & Rubrik & "',mail='" & Mail & "',url='" & Url & "',msg='" & Msg & "'  Where id = "& Request.Querystring("id"))
   Response.Redirect "admin.asp?do=inne"
ElseIf Request.Querystring("action") = "delete" AND Session("gastbok") = Secure Then
   Conn.Execute("Delete * From gastbok Where id=" & Request.Querystring("id"))
   Response.Redirect "admin.asp?do=inne"
ElseIf Request.Querystring("action") = "svara" AND Session("gastbok") = Secure Then

Set RecSet = Conn.Execute("Select * From gastbok Where id="& Request.Querystring("id"))%>
<div align="center">
 <table width="400" cellpadding="4" cellspacing="0">
<form method="post" action="admin.asp?do=inne&action=svarat&id=<%=RecSet("id")%>" name="answer">
  <tr>
    <td colspan="2" style="border-bottom: 1px solid #000000"><b>Skrivet av <%=RecSet("namn")%></b> | <%=FormatDateTime(RecSet("datum"),2)%> (<%=FormatDateTime(RecSet("datum"),4)%>)</td>
  </tr>
  <tr>
    <td colspan="2" style="border-bottom: 1px solid #000000"><%=Replace(RecSet("msg"), vbCrLf, "<br>")%></td>
  </tr>
  <tr>
    <td colspan="2"><b>Skriv ditt svar här:</b><br><textarea cols="60" rows="10" name="svar"><%=RecSet("svar")%></textarea></td>
  </tr>
  <tr>
    <td colspan="2"><input type="Submit" name="andra" value="Posta svaret"></td>
  </tr>
</form>
</table>
</div>
<%ElseIf Request.Querystring("action") = "svarat" AND Session("gastbok") = Secure Then
   Svar	= Fixa(Request.Form("svar"))

   Conn.Execute("Update gastbok Set Svar='"& Svar &"' Where id=" & Request.Querystring("id"))
   Response.Redirect "admin.asp?do=inne"
End If

ElseIf Request.Querystring("do") = "logut" Then
   Session.Abandon
   Response.Redirect "admin.asp"
End If

Conn.Close
Set Conn = Nothing%>

Jag vet, massor med kod igen...

Medlem sedan juli 200412 913 inlägg
#3

Man skulle kunna använda svars-funktionen väl!? ...det skriver man ju in i admin, och sedan hamnar den koden där... ja... om man då justerar den lite bara så är det ju fixat hur lätt som helst. Problemet blir ju då att få dit datum och så också, sedan om man kanske ska redigera allt det i admin också...

Medlem sedan sep. 2005849 inlägg
#4

det har du rätt i.... det kanske går... får kolla det!! :) Haha, smart i så fall... tänkte sådär nån gång också men... jag tror jag glömde bort det lika fort. :OO

Medlem sedan sep. 2005849 inlägg
#5

...eller jag vet inte egentligen, för det där kommer ju bara upp när det finns inlägg och då måste jag ju ändå hålla på och ändra i koden. Så om det går på det första sättet vore det undebart.
Någon som vet??

Medlem sedan sep. 2005849 inlägg
#6

Har jag gett mig på en omöjlig uppgift? :l

Om det inte är nån som kan hjälpa mig, så kanske det finns nån som har nåt bra tips på ett dagboksscript som ser ut ungefär som den gästboken? Bara väldigt enkelt, bara rutor med texten... och en inloggningsruta för admin.

Medlem sedan sep. 2005849 inlägg
#7

*bump*

Någon som kan hjälpa mig? *beeedjande ögon...* :OO

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)