Avatar billede jannikf Nybegynder
25. juni 2003 - 21:51 Der er 2 kommentarer og
1 løsning

Event Manager

Nu har jeg fundet et simpelt event program, men er stadig ikke så god til at håndtere ASP. Derfor spørger jeg jer eksperter til råds. Event koderne består af 4 filer hvoraf jeg kun vil benytte 3 af dem.

Jeg vil gerne have det sådan at det hele bliver vist på den samme side. Når man går ind så viser den alle events'ne og derfra kan man adde events uden at skulle logge ind. Når en event er blevet submittet bliver den vist med det samme, og når en event bliver slettet så forsvinder den med det samme.


se evt. http://www.tekken.dk/event/ for eksempel.
username: administrator
pass: admin

alle koderne vedlægger jeg her:

admin.asp

                               
<HTML>

<BODY BGCOLOR=#ffffff>
<P>
<FONT FACE="Verdana, Arial, Helvetica" SIZE=2>

<%
    'Process the submitted info if its there
    If Request.Form("title") <> "" and Request.Form("date") <> "" and Request.Form("description") <> "" Then
    Dim FileOut,FileObject, FilePath
   
    'find the literal path
    FilePath = Server.MapPath("/event") & "\events.txt"

    set FileObject = Server.CreateObject("scripting.filesystemobject")

    'open the text file
    Set FileOut = FileObject.opentextfile(FilePath, 8, true )
   
    'write the info
    FileOut.writeline trim(Request.Form("Title"))
    FileOut.writeline trim(Request.Form("Date"))
    FileOut.writeline trim(Request.Form("Description"))
    FileOut.close
   
    Response.Write("Event Added<br>")
   
    End If
 
%>

    Event Administrator
</FONT>   


<form action="admin.asp" method="post" name="event">

<P><FONT face="Verdana, Arial, Helvetica" size=2>Title:&nbsp; </FONT><FONT
face="Verdana, Arial, Helvetica" size=2><INPUT id=title name=title></FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>
    <br>
    Date:&nbsp; <INPUT id=date name=date value=<%=date()%>></FONT></P>
<P><FONT face=Verdana size=2>Description:&nbsp;</FONT></P>
<P><FONT face="Verdana, Arial, Helvetica" size=2>
<TEXTAREA id=description name=description style="HEIGHT: 122px; WIDTH: 336px">
</TEXTAREA></FONT></P>
<P>
<INPUT id=submit1 name=submit1 type=submit value=Submit>
<INPUT id=reset1 name=reset1 type=reset value=Reset></P></FONT>
</form>

<%
    Dim FileIn, EventDate, EventTitle, Description, Counter
    Counter = 0
   
    'find the path
    FilePath = Server.MapPath("/event") & "\events.txt"

    set FileObject = Server.CreateObject("scripting.filesystemobject")
    Set FileIn = FileObject.OpenTextFile(FilePath, 1, 0, 0 )
   
    While Not FileIn.AtEndOfStream
    'read in all events, display them and add the
    'delete button so you can get rid of them
       
        EventTitle = FileIn.ReadLine
        EventDate = FileIn.ReadLine
        Description = FileIn.ReadLine
       
        If EventTitle <> "" and EventDate <> "" Then
            Response.Write("<form action='delete.asp' method='post' name='delete'>")
            Response.Write("<input type='hidden' value='" & Counter & "' id='Entry' name='Entry'>")
            Response.Write("<FONT FACE='Veranda' SIZE='2'>")
            Response.Write("Date:  " & EventDate & "<br>")
            Response.Write("Title: " & EventTitle & "<br>")
            Response.Write("Description: " & Description & "<br>")
            Response.Write("</font>")
            Response.Write("<input type='submit' value='Delete' id='submit' name='submit'><br>")
            Response.Write("</form>")
            Counter = Counter + 1
        End if
    Wend
%>


</BODY>
</HTML>


default.asp

<html>
<head>
<title>Current Events</title>
</head>
<body>

<table cellpadding=2 cellspacing=2 border=2>
<tr>
<td><h3>Date</h3></td>
<td><h3>Title</h3></td>
<td><h3>Description</h3></td>

<%

'read in the events and format them in a table
    Dim FileIn, EventDate, EventTitle, Description, Counter
    Counter = 0
    'find literal path
    FilePath = Server.MapPath("/event") & "\events.txt"

    set FileObject = Server.CreateObject("scripting.filesystemobject")
    'open text file
    Set FileIn = FileObject.OpenTextFile(FilePath, 1, 0, 0 )
   
    While Not FileIn.AtEndOfStream
   
       
        EventTitle = FileIn.ReadLine
        EventDate = FileIn.ReadLine
        Description = FileIn.ReadLine
       
        If EventTitle <> "" and EventDate <> "" Then
            'format it up
            Response.Write("<tr>")
            Response.Write("<td>")
            Response.Write(EventDate)
            Response.Write("</td>")
            Response.Write("<td>")
            Response.Write(EventTitle)
            Response.Write("</td>")
            Response.Write("<td>")
            Response.Write(Description)
            Response.Write("</td>")
            Response.Write("</tr>")
            Counter = Counter + 1
        End if
    Wend
%>

<a href="login.asp">Admin Login</a>

</body>
</html>

login.asp


<%
'very simple login check
if Request.Form("username") = "administrator" and Request.Form("password") = "admin" then
    Response.Redirect ("admin.asp")
end if
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<Title>Event System Login</title>

</HEAD>
<BODY>


<form action="login.asp" method="post" name="login">
<P>Username: <INPUT id=username name=username></P>
<P>Password: <INPUT id=password name=password type=password></P>
<P>
<INPUT id=submit1 name=submit1 type=submit value=Login></P>
</form>


</BODY>
</HTML>

delete.asp

<%@ Language=VBScript %>
<HTML>
<HEAD>
<Title>Event Deleted</title>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>

<%
'read all the info into dynamic arrays
'then write the file excluding the one
'the user wanted deleted
    Dim FileIn, FileOut
    Dim Counter, EventNumber, Max
    'the dynamic arrays
    Dim EventTitle()'very useful little guys
    Dim EventDate()
    Dim Description()
   
    'get the # of the entry to delete
    EventNumber = Request.Form("Entry")
    Counter = 0
    Max = 0
    'get the literal file path
    FilePath = Server.MapPath("/event") & "\events.txt"

    set FileObject = Server.CreateObject("scripting.filesystemobject")
    'open the file
    Set FileIn = FileObject.OpenTextFile(FilePath, 1, 0, 0 )
   
    While Not FileIn.AtEndOfStream
        'read everything into the arrays
       
        'resize the arrays, keeping the info
        'that's already in them
        ReDim Preserve EventTitle(Max)
        ReDim Preserve EventDate(Max)
        ReDim Preserve Description(Max)
       
        EventTitle(Max) = FileIn.ReadLine
        EventDate(Max) = FileIn.ReadLine
        Description(Max) =FileIn.ReadLine
        Max = Max + 1
    Wend
   
    'open the text file for writing
    Set FileOut = FileObject.CreateTextFile(FilePath,true)

    For Counter = 0 to Max-1
       
        'write every entry BUT the one to be deleted
        If Counter = abs(EventNumber) Then
            'print the one that's to be deleted
            'to the screen
            Response.Write "Title: " & EventTitle(Counter) & "<br>"
            Response.Write "Date: " & EventDate(Counter)& "<br>"
            Response.Write "Description: <br>" & Description(Counter)& "<br>"
            Response.Write "<h3>Event Deleted</h3>" & "<br>"
        Else
            FileOut.WriteLine EventTitle(Counter)
            FileOut.WriteLine EventDate(Counter)
            FileOut.WriteLine Description(Counter)
        End If
        'Counter = Counter + 1
       
    Next
%>
</BODY>
</HTML>

Der er meget at gå igennem, derfor er der 120 point til den der løser mit problem.
Avatar billede somaliomar Praktikant
28. juni 2003 - 14:37 #1
Hvorfor benytter du dig ikke af en database? Det gør det hele meget nemmere.
Avatar billede somaliomar Praktikant
28. juni 2003 - 15:14 #2
En løsning er, at lave en Access-database (db.mdb) med en tabel (events) med 4 kollonner (eventId, eventTitle, eventDescription og eventDate). Koden til default.asp kan derefter se sådan ud:

<%
strConnString = "Driver={Microsoft Access Driver (*.mdb)};" & _
  "DBQ=" & Server.MapPath(".") & "\db.mdb;"
Set dbConn = CreateObject("ADODB.Connection")
dbConn.Open strConnString

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
  strTitle = Request.Form("title")
  strDesc = Request.Form("description")
  strSQL = "INSERT INTO Events (eventTitle, eventDescription, eventDate) VALUES('" & strTitle & "', '" & strDesc & "', now())"
  dbConn.Execute(strSQL)
End If

%>

<html>
<head>
<title>Events</title>
</head>
<body>

<table width="100%">
  <tr>
    <td width="200">
    <form action="<%=request.serverVariables("SCRIPT_NAME")%>" method="post">
      <table width="100%">
        <tr>
          <td>Title</td>
        </tr>
        <tr>
          <td><input type="text" name="title" size="24"></td>
        </tr>
        <tr>
          <td>Date</td>
        </tr>
        <tr>
          <td><input type="text" name="date" size="24"></td>
        </tr>
        <tr>
          <td>Description</td>
        </tr>
        <tr>
          <td><textarea rows="5" name="description" cols="20"></textarea></td>
        </tr>
        <tr>
          <td><input type="submit" value="Submit"> <input type="reset" value="Reset"></td>
        </tr>
      </table>
    </form>
    </td>
    <td valign="top">
    <form action="<%=Request.serverVariables("SCRIPT_NAME")%>" method="post">
      <table width="100%">
        <tr>
          <td width="70">Date</td>
          <td width="150">Title</td>
          <td>Description</td>
          <td width="50">Delete</td>
        </tr>
       
        <%
        strSQL = "SELECT * FROM Events"
        Set rs = dbConn.Execute(strSQL)
        While Not rs.EOF
        %>
       
        <tr>
          <td><%=rs("eventDate")%></td>
          <td><%=rs("eventTitle")%></td>
          <td><%=rs("eventDescription")%></td>
          <td><a href="delete.asp?eventId=<%=rs("eventId")%>">delete</a></td>
        </tr>
       
        <%
          rs.MoveNext
        Wend
       
        rs.Close
        Set rs = Nothing
        dbConn.Close
        Set dbConn = Nothing       
        %>
      </table>
    </form>   
    </td>
  </tr>
</table>

</body>

</html>


Og koden til delete.asp kunne se sådan ud:

<%
EventId = Request("eventId")

If Len(EventId) <> 0 Then
strConnString = "Driver={Microsoft Access Driver (*.mdb)};" & _
          "DBQ=" & Server.MapPath(".") & "\db.mdb;"
strSQL = "DELETE FROM Events WHERE eventId = " & EventId
Set dbConn = CreateObject("ADODB.Connection")
dbConn.Open strConnString
dbConn.Execute(strSQL)
dbConn.Close
set dbConn = Nothing
End If

Response.redirect "default.asp"
%>


God fornøjelse :D
Avatar billede jannikf Nybegynder
29. juni 2003 - 15:33 #3
Tak for hjælpen....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester