Artiklar » ASP » Skapa en gästbok med admin-funktion

 
 

Skapa en gästbok med admin-funktion

Författare: finalworld
Datum: den 26 november 2003
Antal lästa: 12142
Ej stjärnmärkt

Lär dig att skapa en gästbok.
Tänk bara på att ditt webbhotell ska stödja ASP.

För att göra denna kurs KRÄVS det att du har access eller liknande databashanterings program.
Databasen får heta "gastbok.mdb" och tabellen får namnet "tblGb"

Fält / Datatyp
ID / Räknare
gbName / text
gbEmail / text
gbMed / PM

Det vi gör nu är att starta ett ASP dokument som vi döper till gastbok.asp, vi börjar med databas-koden:

Kod:
<%

' Deklarerar alla variablar
  Dim strSQL, objRs, Connect

' Skapar en funktion som ska kolla så vi inte använt oss av dumma tecken
  Function fixSafe(strText)
  fixSafe= Trim(Replace(fixSafe&"","",""))
  fixSafe= Trim(Replace(fixSafe&"","'","'"))

  FixaTexten = fixSafe
  End Function

' Välj vart du har lagt din databas någonstans
  Set Connect = Server.CreateObject("ADODB.Connection")
  Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gastbok.mdb")

' Listar från gastboks tabellen och sorterar dom efter ID nummret fast baklänges (desc) så att det sista i databasen kommer först
  strSQL = "SELECT gbName,gbEmail,gbMed,id FROM tblGb ORDER BY id DESC"
  Set objRs = Connect.Execute(strSQL)

%>

' Nu ska vi lista upp alla inläggen i gästboken.
' Vi börjar med att skapa en tabell som är två rader bred och en hög.
' Detta bara för att vi ska få två sidor på gästboken, en för att läsa inläggen och en för att skriva dom. Här skapar vi en tabell bara för att dela upp dom två funktionerna, skriva inlägg och läsa inlägg.

<table width="500" border="0" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="300">

<%

' Nu loopar vi igenom tabellen ända tills att recset inte hittar fler fält
  Do Until objRs.Eof

%>  

' Skriver ut namnet personen som skrivit inlägget
Namn: <% =FixaTexten(objRs(0))%><br>

' Skriver ut epostadressen till personen som skrivit inlägget
Epost: <% =FixaTexten(objRs(1))%><br>

' Skriver ut själva inlägget
Inlägg:<br><% =FixaTexten(objRs(2))%><br>

<hr>

<%
' Gör så att nästa rad i tabellen tas nästa gång loopen börjar om.
  objRs.MoveNext

' Nu loopas det, hoppar nu tillbaka till do until recset.eof raden här ovan och gör om allt
  Loop

' Nu stänger vi databasen
  objRs.Close
  Set objRs= nothing
  Connect.Close
  Set Connect = nothing
%>

</td>

' Nu skapar vi själva formuläret som ska användas för att skriva ett inlägg i gästboken.
<td width="200">
<form name="form" method="post" action="gb_spara.asp"> ' länkad till gb_spara.asp
<div align="center">

Namn:<br>
<input name="name" type="text" id="namn"><br>
Epost:<br>
<input name="email" type="text" id="epost"><br>
Inlägg:<br>
<textarea name="med" rows="5" id="inlagg"></textarea><br><br>

<input type="submit" name="Submit" value="Submit">
</div>
</form></td>
</tr>
</table>



gb_spara.asp
Som på sidan gastbok.asp så startar vi med att öppna databasen igen.
Efter att vi då öppnat databasen så ska vi lägga in informationen som vi skrev i formen på gastbok.asp sida.

Kod:
<%

' Deklarerar alla variablar
  Dim Connect, strName, strEmail, strMed,

' Välj vart du har lagt din databas någonstans
  Set Connect = Server.CreateObject("ADODB.Connection")
  Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gastbok.mdb")

' Skapa variabler så det blir lättare att se.
  strName = fixSafe(Request.Form("name"))
  strEmail = fixSafe(Request.Form("email"))
  strMed = fixSafe(Request.Form("med"))

' Skriver in i databasen.
  SQL = "INSERT INTO tblGb(gbName,gbEmail,gbMed) VALUES('" & strName & "','" & strEmail & "','" & strMed & "');"
  Connect.Execute SQL,,128

' Stänger databasen.
  Connect.Close
  Set Connect = nothing

' När den har skapat inlägget, går den tillbaka till gastbok.asp
  Response.redirect "gastbok.asp"

%>



Grattis, ni har nu byggt eran helt egna gästbok.
Hoppas ni nu har förstått hur det hela ungefär fungerar.

Nu går vi vidare med en liten extrakurs, hur du lägger till ett enkelt adminsystem.
Det vi börjar med är att lägga till en länk till admin sidan i "kod 3".

<a href="admin.asp">Admin</A>

Denna kod snutt kan vi slänga längst ner i koden.
För att fina till det lite kan man ju slänga in en eller två<br> innan...
Nu skapar vi en fil vid namn "admin.asp", denna fil lägger vi i samma mapp som alla andra filer som ingår i kursen.
Nu börjas det med kodning igen då.. :)

Kod:

<% If Session("inloggad") <> "ja" Then %>

' Länkad till admin.asp
<form name="form" method="post" action="admin.asp?loggain=ja">

Lösenord<br>
<input name="los" type="password" id="los"><br>

<input type="submit" name="Submit" value="Submit"></form><br>

<%

' Om fel lösen har fyllts i kommer det sägas här
  Response.Write(Session("fel"))
  Else

%>

<a href="admin.asp?loggaut=ja">Logga ut</a>
<% End If %>



Det vi börjar mer är att skapa ett formulär där lösenord ska skrivas in, detta så ingen obehörig kan inträda..
Som du ser så har vi lagt in en "if" fråga oxå, detta är till för att om du har loggats in så ska du slippa se inloggningen igen.
När lösenordet är inskrivet och submit knappen trycks så ser du att du kommer att skickas till samma sida igen, förutom att variabeln "ja" skickas med.

Nu skriver vi in nästa kod, denna kod lägger vi över "kod 5" i samma fil, asså admin.asp.

Kod:
<%

' Om nu en querystring("loggain") skickades med och den va "ja"
  If Request.Querystring("loggain") = "ja" Then

' Kontrollerar om det är rätt lösenord, du kan ju ändra lösenordet genom ändra "aspsidan"
  If Request.Form("los") = "aspsidan" Then

  Session("inloggad") = "ja"

  Else

' Om inte rätt lösen skrevs så händer detta
  Session("fel") = "Du skrev fel lösen !"

  End If
  End If

' Om en querystring("loggaut") har skickats då kommer du bli utloggad och sessionerna stängs.
  If Request.Querystring("loggaut") = "ja" Then Session.Abandon

%>



Som ni ser så har jag gjort så att det bara kan finnas ett lösen till admin sidan.
Om man vill göra det lite mer advancerat så kan man lägga lösenordet/orden i en databas
så kan flera få egna lösen, men detta blir en annan kurs.

Nu kommer vi till funktionerna, typ som att tabort inlägg i gästboken.
I denna kurs så kommer jag bara att demostrera hur man tar bort inlägg, inte hur man redigerar dom
detta kommer kanske i en senare kurs.

Nu kommer ska lägga till en länk bredvid alla inläggen, typ såhär.

Kod:
<%

  If Session("inloggad") = "ja" Then
  Response.Write("<A HREF=""gastbok.asp?bort=ja&id="& objRs("id") "&""">Ta bort</A>")
  End If

%>



Dessa tre rader lägger vi ovanför raden som innehåller detta Namn: <%=objRs("gbName")%> i "kod 2"
Den kan placeras på andra ställen oxå om ni vill, men det är upp till er.

Nu ovanför <a href="admin.asp?loggaut=ja">Logga ut</a> i "kod 5" så skriver vi detta.
<A HREF="gastbok.asp">Tillbaka till gästboken för att redigera</A>

Nu måste vi fixa raderakoden oxå innan vi avslutar kursen.
Denna kodsnutt lägger vi in i "kod 1" under denna rad

Kod:
<%

  if Request.Querystring("bort") = "ja" Then

' Välj vart du har lagt din databas någonstans
  Set Connect = Server.CreateObject("ADODB.Connection")
  Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gastbok.mdb")

  strSQL = "DELETE FROM tblGb WHERE id = "& Request.Querystring("id")
  Connect.Execute(strSQL)

  End if

%>


Så, nu borde allt fungera som det ska, vill du sen logga ut så klickar du bara på admin länken i gästboken
och sen på logga ut länken.
Detta är ju inget krav eftersom det är en session som gör dig inloggad och den dör själv efter ett tag.
Hoppas ni har fattat på ett ungefär hur det fungerar nu, självklart kan ni ändra om efter behov.

Lycka till.........
 
     

  » Logga in  
 
Användarnamn

Lösenord

 
     

  » Bli medlem  
  Bli medlem på ASPsidan!  
     

     
  Microsoft  
     

  » Partners  
  Comsolvia  
     
  » ANNONS  
  ingen annons än  
     

  » Senast online  
  Endast för inloggade  
  Antal inloggade: 1  
     

Copyright © 2007 www.ASPsidan.se
ingen sponsrar längre ASPsidan med Dedikerad Server
ASPsidan RSS
   
 XHTML / CSS
Det tog 0,0781 sekunder att ladda sidan