Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Ett Administrations script för webb baserad databas Del 1

Postad 2005-01-08 av Benni Svensson i sektionen ASP.NET, C#, Okategoriserat med 2 Kommentarer | Läst av: 7425, Betyg: 99%

Förord

Del 1 En ofta förekommen fråga är, hur kan jag administrera min databas på webben? Att på ett smidigt sätt lösa detta möter vanligen inga större problem, dock måste man tänka på säkerhet var man placera sin databas och hur man skriver sin kod. Jag vill med denna artikel visa hur jag har löst detta, för mig ett väl fungerande system. Ingenting är ju så pass bra, utan att det kan göras bättre, och Du som läsare hittar säkert falluckor som jag har missat. Hur som helst så börjar vi ifrån början.
Innehåll
  » Problemställning:
  » Bygga databasen:
  » Bygga asp och rutin -filerna
  » Avslut
Relaterade artiklar


Problemställning:


Uppgiften är att skapa en databas, för ett medlemsregister, och registrera namn, adress, stad och intresse. Vi måste också göra ett försök att normalisera databasen, i detta fallet menas det med att undvika upprepande inmatningar.
Det kan alltså se ut så här:


Pelle Johansson
Stora gatan 12
Stockholm

Motorcykel
Dator
Barn

Gösta Linderot
Nya vägen 2
Värnamo

Tjejer
Segling


Per Westling
Enskedevägen 112
Stockholm

Dator
Segling

Osv.

Vad vi upptäcker genast är att städernas namn kan förekomma på flera ställen, och då detta bryter
mot normaliseringsordningen, så betyder det att vi måste ändra det fältet(ifrån text till tal), skapa
en ny tabell som vi lägger som relation till våran huvudtabell.

Detta fungerar väldigt bra, då vi kommer ifrån inmatnings fel, dvs. risken för felstavad inmatning
är borta. Har vi stavat fel i tabellen som rymmer städerna, så är det felstavat överallt(där vi
referera till detta fält), men är lika lätt avhjälpt, genom att det är endast på ett ställe vi behöver
ändra stavningen på.

Nästa problem är värre. Som vi ser så kan man ha olika många intressen, och det gör att vi kan
inte lösa det på samma sätt som med städer. Vad vi måste göra är, att ha en mellantabell, som sparar id ifrån medlemmen och som också
spara id ifrån en tabell med intressen. På detta vis så kan en medlem ha hur många eller hur
få som helst, och dessa teoretiska problem är borta.


Bygga databasen:


I detta exempel så använder jag Access, ett ypperligt program för inte alltför stora applikationer.

Döp databasen till Member.mdb
Vi skall ha fyra tabeller:
t_City
Fältnamn Fälttyp Längd Övrigt
CityID Räknare Primärnyckel
City Text 30

t_Interest
Fältnamn Fälttyp Längd Övrigt
i_Id Räknare Primärnyckel
Interest Text 30

t_MemberInterest
Fältnamn Fälttyp Längd Övrigt
M_ID tal INGEN PRIMÄRNYCKEL
I_ID tal ” ”

t_Member
Fältnamn Fälttyp Längd Övrigt
m_id Räknare Primärnyckel
Name Text 30
Street Text 30
City Tal Främmande nickel till t_City

Det är väldigt viktigt att vi tilldela fälten rätt egenskaper.




Vi måste också upprätta relationerna mellan tabellerna:



Denna bild är nog ganska så självförklarande med tanke på databasens uppbyggnad.


Bygga asp och rutin -filerna


Då databasen nu är färdig, så är det dags att titta på hur administrations systemet är upplagt.



Jag kunde inte låta bli att leka, så det finns en styles.css, väldigt enkel men har Du inte sysslat
med CSS tidigare, så får Du en uppfattning om hur man kan göra.

Det finns en Function.asp där funktionerna är sparade. Här finns två funktioner ” FixaTecken”
för att skydda sig mot SQLInjection (inga enkelfnuttar in i databasen), och shortUrlName, som helt
enkelt plockar fram filnamnet ur en sökväg.

För att slippa skriva för mycket kod, så finns det en Header.asp som includeras i början av varje
ASP-sida och en Foter.asp som ligger sist på varje ASP-sida.

Som synes i diagrammet ovan, så finns det en meny, varifrån man navigera till olika filer, beroende
på vad man skall göra(lägga till ny stad/editera stad,nytt intresse/editera intresse eller lägga till ny
medlem/editera medlem.

Oavsett vad Du väljer så uppdateras all information på EN sida, uppdate.asp. Detta gör att det blir
lätt att underhålla systemet.

styles.css:

BODY
{
COLOR: #804040;
FONT-FAMILY: verdana,geneva;
FONT-SIZE: 10pt;
}
TD
{
BORDER-BOTTOM: black thin;
BORDER-LEFT: black thin;
BORDER-RIGHT: black thin;
BORDER-TOP: black thin;
COLOR: #804040;
FONT-FAMILY: trebuchet, verdana, Arial, geneva;
FONT-SIZE: 8pt;
}
A:link
{
COLOR: #004b97;
FONT-WEIGHT:bold;
}

A:visited
{
COLOR: #004b97;
FONT-WEIGHT:bold;
}

A
{
COLOR: #0033ff;
TEXT-DECORATION:none;
}

a:hover
{
font-weight:900 (fet)
COLOR:#804040;
text-decoration: underline overline;
BACKGROUND-COLOR:#FBE2D3;
}
.grey
{
color:white;
font-size: 10pt;
FONT-WEIGHT: bold;
background-color: #804040;
}


Kommentare för styles.css är överflödiga.

Function.asp


<script language=VBScript runat=Server>
Function FixaTecken(sfix)
sfix =Replace(Trim(sfix), "'","''")
sfix = Replace(sfix, "|", "")
FixaTecken = sfix

End Function

Function shortUrlName(strPath)
strPath = Request.ServerVariables("PATH_INFO")
strPath = Mid(strPath, InStrRev(strPath, "/") + 1)
shortUrlName = strPath
End Function

</script>


Även Function.asp talar sitt tydliga språk, vi aktar oss för farliga tecken, replaca dem
helt enkelt.

Header.asp:


<%
Option Explicit
Response.buffer = True
Dim titel,Connection,RS,SQL
If request.Querystring("message")="" then
titel ="Medlemar"
else
titel = request.Querystring("message")
End If

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.MapPath("Member.mdb")

%>


<%=titel%>




Högst upp så står det Option Explicit, och detta är för att Du inte skall missa att dimma några
variabler (dimma=reservera minnesplats).
Därefter så har vi Response.buffer = True vilket innebär att servern inte skall skicka någonting
förrän hela sidan är exekverad.
Därefter kolla vi om querysträngen innehåller någonting, och i så fall så får det bli titeln på våran
sida, eller så skall den vara ”Medlemar”

Slutligen så har jag lagt in en dataconnection här, och i och med att den ligger i header.asp, så är
den inkluderad i alla ASP-sidorna.

Foter.asp:


<%
Connection.Close
Set Connection=Nothing

IF shortUrlName(Request.ServerVariables("PATH_INFO")) <>"MemberMenu.asp" then
%>


[Tillbaka till Menyn]
<% END IF
IF shortUrlName(Request.ServerVariables("PATH_INFO")) = "CityUpdRec.asp" or
shortUrlName(Request.ServerVariables("PATH_INFO")) ="InterestUpdRec.asp" or
shortUrlName(Request.ServerVariables("PATH_INFO")) ="MemberUpdRec.asp"then
%>
[Avbryt och välj ett annat ID]
<%
END IF
%>






Här stänger vi våran Connection. Vi kontrollerar också var vi står någonstans. Beroende på var vi
står, så visas de undre länkarna på olika sätt.

MemberMenu.asp:







Administration för Medlemar






<%'Här tar vi fram lite statistik över hur många poster som finns
'i de olika tabellerna
Dim Number,Number1,Number2
Set Number = connection.Execute("Select Count(*) As Antal FROM t_Member")
Set Number1 = connection.Execute("Select Count(*) As Antal1 FROM t_City")
Set Number2 = connection.Execute("Select Count(*) As Antal2 FROM t_Interest")
%>

Det finns just nu TOTALT: <%= Number("Antal")%> medlemmar inskrivna.

Det finns just nu TOTALT: <%= Number1("Antal1")%> städer inskrivna.

Det finns just nu TOTALT: <%= Number2("Antal2")%> intressen inskrivna.





Välj aktivitet





Städer



Ny stad


Editera stad



Intressen




Nytt intresse


Editera intresse



Medlem




Ny medlem


Editera medlem






<%'Här redirecta vi beroende på vilken knapp som har klickats, lägg märke till message som
'ger titlen till de olika sidorna.
If Len(Request.Form("btnNewCity")) Then Response.Redirect "newCity.asp?message=Medlemar -
Ny Stad"
If Len(Request.Form("btnEditCity")) Then Response.Redirect "editCity.asp?message=Medlemar -
Editera Stad"

If Len(Request.Form("btnNewInterest")) Then Response.Redirect "newInterest.asp?message=
Medlemar - Nytt Intresse"
If Len(Request.Form("btnEditeraInterest")) Then Response.Redirect "editInterest.asp?message=
Medlemar - Editera Intresse"

If Len(Request.Form("btnNewMember")) Then Response.Redirect "newMember.asp?message=
Medlemar - Ny Medlem"
If Len(Request.Form("btnEditeraMember")) Then Response.Redirect "editMember.asp?message=
Medlemar - Editera Medlem"
%>




(OBS koden har på vissa ställen varit tvungen att radbrytas)


Avslut

Högst upp, efter includefilen så har jag tagit fram några SQL:er, för att få lite statistik av hur mycket
som är inlagt I databasen(Number, Number1, Number2)
Därefter så kommer blocket med manöverknapparna, för navigering till de olika sidorna.

Lägg märke till att
referera till sig själv, och
det är tack vare detta system som vi kan redirekta till olika sidor.
Här skickar vi också med den variabel, som bildar ASP-sidornas titlar.
Then Response.Redirect "newCity.asp?message=Medlemar - Ny Stad"

Detta var den första delen, där vi har skissat upp kraven, försökt att normalisera våran databas efter
våran kravspecifikation och slutligen byggt databasen och gjort våra relationer till tabellerna.
Därefter har vi gått igenom den tänkta administrativa webbplatsen, sett hur include-filerna kan snabba
upp kod skrivandet och slutligen börjat bygga de olika filerna.

Del 2 utkommer snart!!!
Benni Svensson
Upp

2 Kommentarer


  1. Robert Biversten
    8 feb 2005

    Hej! Jag saknar koden på funktionerna, Fixatecken + urlShortName. Mycket bra artikel! Vänliga hälsningar Robert Biversten


  2. Benni Svensson
    8 feb 2005

    JAg ber om ursäkt för det slarvet, den koden är nu inlaggd i artiklen. Jag tackar för beröm och betyg.

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 158
27 952
271 704
1 122
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies