diff options
Diffstat (limited to 'admin.php')
-rw-r--r-- | admin.php | 345 |
1 files changed, 288 insertions, 57 deletions
@@ -3,14 +3,11 @@ // TEMPORARY SECURITY PATCH: if ($user->userid != "Dries") exit(); - /* * Account administration: */ function account_display($order = "username") { - global $PHP_SELF; - $sort = array("ID" => "id", "fake e-mail address" => "femail", "homepage" => "url", "hostname" => "last_host", "last access date" => "last_access", "real e-mail address" => "email", "real name" => "name", "status" => "status", "theme" => "theme", "username" => "userid"); $show = array("ID" => "id", "username" => "userid", "$order" => "$sort[$order]", "status" => "status"); @@ -18,11 +15,10 @@ function account_display($order = "username") { $result = db_query("SELECT u.id, u.userid, u.$sort[$order], u.status FROM users u ORDER BY $sort[$order]"); ### Generate output: - $output .= "<H3>Accounts:</H3>\n"; $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; $output .= " <TR>\n"; $output .= " <TH ALIGN=\"right\" COLSPAN=\"". (sizeof($show) + 1) ."\">\n"; - $output .= " <FORM ACTION=\"$PHP_SELF?section=accounts\" METHOD=\"post\">\n"; + $output .= " <FORM ACTION=\"admin.php?section=accounts\" METHOD=\"post\">\n"; $output .= " <SELECT NAME=\"order\">\n"; foreach ($sort as $key=>$value) { $output .= " <OPTION VALUE=\"$key\"". ($key == $order ? " SELECTED" : "") .">Sort by $key</OPTION>\n"; @@ -91,7 +87,6 @@ function account_view($name) { $result = db_query("SELECT * FROM users WHERE userid = '$name'"); if ($account = db_fetch_object($result)) { - $output .= "<H3>Accounts:</H3>\n"; $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; $output .= " <TR><TD ALIGN=\"right\"><B>ID:</B></TD><TD>$account->id</TD></TR>\n"; $output .= " <TR><TD ALIGN=\"right\"><B>Username:</B></TD><TD>$account->userid</TD></TR>\n"; @@ -114,8 +109,6 @@ function account_view($name) { * Log administration: */ function log_display($order = "date") { - global $PHP_SELF, $anonymous; - $colors = array("#FFFFFF", "#FFFFFF", "#90EE90", "#CD5C5C"); $fields = array("date" => "id DESC", "username" => "user", "message" => "message DESC", "level" => "level DESC"); @@ -123,11 +116,10 @@ function log_display($order = "date") { $result = db_query("SELECT l.*, u.userid FROM logs l LEFT JOIN users u ON l.user = u.id ORDER BY l.$fields[$order]"); ### Generate output: - $output .= "<H3>Logs:</H3>\n"; $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; $output .= " <TR>\n"; $output .= " <TH ALIGN=\"right\" COLSPAN=\"4\">\n"; - $output .= " <FORM ACTION=\"$PHP_SELF?section=logs\" METHOD=\"post\">\n"; + $output .= " <FORM ACTION=\"admin.php?section=logs\" METHOD=\"post\">\n"; $output .= " <SELECT NAME=\"order\">\n"; foreach ($fields as $key=>$value) { $output .= " <OPTION VALUE=\"$key\"". ($key == $order ? " SELECTED" : "") .">Sort by $key</OPTION>\n"; @@ -145,7 +137,7 @@ function log_display($order = "date") { $output .= " </TR>\n"; while ($log = db_fetch_object($result)) { - $output .= " <TR BGCOLOR=\"". $colors[$log->level] ."\"><TD>". date("D d/m, H:m:s", $log->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($log->userid, 1) ."</A></TD><TD>". substr($log->message, 0, 44) ."</TD><TD ALIGN=\"center\"><A HREF=\"$PHP_SELF?section=logs&op=view&id=$log->id\">more</A></TD></TR>\n"; + $output .= " <TR BGCOLOR=\"". $colors[$log->level] ."\"><TD>". date("D d/m, H:m:s", $log->timestamp) ."</TD><TD ALIGN=\"center\">". format_username($log->userid, 1) ."</A></TD><TD>". substr($log->message, 0, 44) ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?section=logs&op=view&id=$log->id\">more</A></TD></TR>\n"; } $output .= "</TABLE>\n"; @@ -154,14 +146,12 @@ function log_display($order = "date") { } function log_view($id) { - ### Perform query: $result = db_query("SELECT l.*, u.userid FROM logs l LEFT JOIN users u ON l.user = u.id WHERE l.id = $id"); if ($log = db_fetch_object($result)) { - $output .= "<H3>Logs:</H3>\n"; $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; $output .= " <TR><TD ALIGN=\"right\"><B>Level:</B></TD><TD>$log->level</TD></TR>\n"; - $output .= " <TR><TD ALIGN=\"right\"><B>Date:</B></TD><TD>". date("l, F d, Y - H:i A", $log->timestamp) ."</TD></TR>\n"; + $output .= " <TR><TD ALIGN=\"right\"><B>Date:</B></TD><TD>". format_date($log->timestamp, "extra large") ."</TD></TR>\n"; $output .= " <TR><TD ALIGN=\"right\"><B>User:</B></TD><TD>". format_username($log->userid, 1) ."</TD></TR>\n"; $output .= " <TR><TD ALIGN=\"right\"><B>Message:</B></TD><TD>$log->message</TD></TR>\n"; $output .= " <TR><TD ALIGN=\"right\"><B>Hostname:</B></TD><TD>$log->hostname</TD></TR>\n"; @@ -176,20 +166,18 @@ function log_view($id) { function ban_check($mask, $category) { $ban = ban_match($mask, $category); - $output .= "<H3>Status:</H3>\n"; $output .= "". ($ban ? "Matched ban '<B>$ban->mask</B>' with reason: <I>$ban->reason</I>.<P>\n" : "No matching bans for '$mask'.<P>\n") .""; print $output; } function ban_new($mask, $category, $reason) { ban_add($mask, $category, $reason, &$message); - $output .= "<H3>Status:</H3>\n"; $output .= "$message\n"; print $output; } function ban_display($category = "") { - global $PHP_SELF, $type2index; + global $type2index; ### initialize variable: $category = $category ? $category : 1; @@ -198,11 +186,10 @@ function ban_display($category = "") { $result = db_query("SELECT * FROM bans WHERE type = $category ORDER BY mask"); ### Generate output: - $output .= "<H3>Bans:</H3>\n"; $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; $output .= " <TR>\n"; $output .= " <TH COLSPAN=\"3\">\n"; - $output .= " <FORM ACTION=\"$PHP_SELF?section=bans\" METHOD=\"post\">\n"; + $output .= " <FORM ACTION=\"admin.php?section=bans\" METHOD=\"post\">\n"; $output .= " <SELECT NAME=\"category\">\n"; for (reset($type2index); $cur = current($type2index); next($type2index)) { $output .= " <OPTION VALUE=\"$cur\"". ($cur == $category ? " SELECTED" : "") .">Sort by ". key($type2index) ."</OPTION>\n"; @@ -219,7 +206,7 @@ function ban_display($category = "") { $output .= " </TR>\n"; while ($ban = db_fetch_object($result)) { - $output .= " <TR><TD>$ban->mask</TD><TD>$ban->reason</TD><TD ALIGN=\"center\"><A HREF=\"$PHP_SELF?section=bans&op=delete&category=$category&id=$ban->id\">delete</A></TD></TR>\n"; + $output .= " <TR><TD>$ban->mask</TD><TD>$ban->reason</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?section=bans&op=delete&category=$category&id=$ban->id\">delete</A></TD></TR>\n"; } $output .= " <TR><TD COLSPAN=\"3\"><SMALL>%: matches any number of characters, even zero characters.<BR>_: matches exactly one character.</SMALL></TD></TR>\n"; @@ -227,7 +214,7 @@ function ban_display($category = "") { $output .= "<BR><HR>\n"; $output .= "<H3>Add new ban:</H3>\n"; - $output .= "<FORM ACTION=\"$PHP_SELF?section=bans\" METHOD=\"post\">\n"; + $output .= "<FORM ACTION=\"admin.php?section=bans\" METHOD=\"post\">\n"; $output .= "<B>Banmask:</B><BR>\n"; $output .= "<INPUT TYPE=\"text\" NAME=\"mask\" SIZE=\"35\"><P>\n"; $output .= "<B>Type:</B><BR>\n"; @@ -243,7 +230,7 @@ function ban_display($category = "") { $output .= "<BR><HR>\n"; $output .= "<H3>Ban check:</H3>\n"; - $output .= "<FORM ACTION=\"$PHP_SELF?section=bans\" METHOD=\"post\">\n"; + $output .= "<FORM ACTION=\"admin.php?section=bans\" METHOD=\"post\">\n"; $output .= "<B>Banmask:</B><BR>\n"; $output .= "<INPUT TYPE=\"text\" NAME=\"mask\" SIZE=\"35\"><P>\n"; $output .= "<B>Type:</B><BR>\n"; @@ -259,21 +246,219 @@ function ban_display($category = "") { } /* + * Comments administration: + */ + +function comment_edit($id) { + $result = db_query("SELECT c.*, u.userid FROM comments c LEFT JOIN users u ON c.author = u.id WHERE c.cid = $id"); + + $comment = db_fetch_object($result); + + $output .= "<FORM ACTION=\"admin.php?section=comments&op=save&id=$id\" METHOD=\"post\">\n"; + + $output .= "<P>\n"; + $output .= " <B>Author:</B><BR>\n"; + $output .= " ". format_username($comment->userid, 1) ."\n"; + $output .= "</P>\n"; + + $output .= "<P>\n"; + $output .= " <B>Subject:</B><BR>\n"; + $output .= " <INPUT TYPE=\"text\" NAME=\"subject\" SIZE=\"50\" VALUE=\"". stripslashes($comment->subject) ."\"><BR>\n"; + $output .= "</P>\n"; + + $output .= "<P>\n"; + $output .= "<B>Comment:</B><BR>\n"; + $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"comment\">". stripslashes($comment->comment) ."</TEXTAREA><BR>\n"; + $output .= "</P>\n"; + + $output .= "<P>\n"; + $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save comment\">\n"; + $output .= "</P>\n"; + $output .= "</FORM>\n"; + + print $output; +} + +function comment_save($id, $subject, $comment) { + db_query("UPDATE comments SET subject = '". addslashes($subject) ."', comment = '". addslashes($comment) ."' WHERE cid = $id"); + watchdog(1, "modified comment `$subject'."); +} + +function comment_display($order = "date") { + ### Initialize variables: + $fields = array("author" => "author", "date" => "timestamp DESC", "subject" => "subject"); + + ### Perform SQL query: + $result = db_query("SELECT c.*, u.userid FROM comments c LEFT JOIN users u ON u.id = c.author ORDER BY c.$fields[$order] LIMIT 50"); + + ### Display stories: + $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; + $output .= " <TR>\n"; + $output .= " <TH ALIGN=\"right\" COLSPAN=\"5\">\n"; + $output .= " <FORM ACTION=\"admin.php?section=comments\" METHOD=\"post\">\n"; + $output .= " <SELECT NAME=\"order\">\n"; + foreach ($fields as $key=>$value) { + $output .= " <OPTION VALUE=\"$key\"". ($key == $order ? " SELECTED" : "") .">Sort by $key</OPTION>\n"; + } + $output .= " </SELECT>\n"; + $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Update\">\n"; + $output .= " </FORM>\n"; + $output .= " </TH>\n"; + $output .= " </TR>\n"; + + $output .= " <TR>\n"; + $output .= " <TH>subject</TH>\n"; + $output .= " <TH>author</TH>\n"; + $output .= " <TH>operations</TH>\n"; + $output .= " </TR>\n"; + + while ($comment = db_fetch_object($result)) { + $output .= " <TR><TD><A HREF=\"discussion.php?id=$comment->sid&cid=$comment->cid&pid=$comment->pid\">$comment->subject</A></TD><TD>". format_username($comment->userid, 1) ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?section=comments&op=edit&id=$comment->cid\">edit</A></TD></TR>\n"; + } + + $output .= "</TABLE>\n"; + + print $output; +} + +/* + * Statistics administration: + */ +function stats_display() { + # + # Story statistics: + # + $result = db_query("SELECT s.subject, c.sid, COUNT(c.sid) AS count, u.userid FROM comments c, stories s LEFT JOIN users u ON s.author = u.id WHERE s.id = c.sid GROUP BY c.sid ORDER BY count DESC LIMIT 20;"); + while ($stat = db_fetch_object($result)) $output1 .= "<I><A HREF=\"discussion.php?id=$stat->sid\">$stat->subject</A></I> by ". format_username($stat->userid, 1) .": ". format_plural($stat->count, "comment", "comments") ."<BR>\n"; + admin_box("Story statistics", $output1); + + # + # Poster statistics: + # + $result = db_query("SELECT u.userid, COUNT(s.author) AS count FROM stories s LEFT JOIN users u ON s.author = u.id GROUP BY s.author ORDER BY count DESC LIMIT 20"); + while ($stat = db_fetch_object($result)) $output2 .= "". format_username($stat->userid) .": ". format_plural($stat->count, "story", "stories") ."<BR>\n"; + admin_box("Poster statistics", $output2); + + # + # Category statistics: + # + $result = db_query("SELECT category, COUNT(category) AS count FROM stories GROUP by category ORDER BY count DESC"); + while ($stat = db_fetch_object($result)) $output3 .= "$stat->category: ". format_plural($stat->count, "story", "stories") ."<BR>\n"; + admin_box("Category statistics", $output3); + + # + # Theme statistics: + # + $result = db_query("SELECT theme, COUNT(id) AS count FROM users GROUP BY theme ORDER BY count DESC"); + while ($stat = db_fetch_object($result)) $output4 .= "<I>$stat->theme</I>-theme: ". format_plural($stat->count, "user", "users") ."<BR>\n"; + admin_box("Theme statistics", $output4); +} + +/* + * Diary administration: + */ +function diary_edit($id) { + $result = db_query("SELECT d.*, u.userid FROM diaries d LEFT JOIN users u ON d.author = u.id WHERE d.id = $id"); + + $diary = db_fetch_object($result); + + $output .= "<FORM ACTION=\"admin.php?section=diaries&op=save&id=$id\" METHOD=\"post\">\n"; + + $output .= "<P>\n"; + $output .= " <B>Author:</B><BR>\n"; + $output .= " ". format_username($diary->userid, 1) ."\n"; + $output .= "</P>\n"; + + $output .= "<P>\n"; + $output .= "<B>Diary entry:</B><BR>\n"; + $output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"text\">". stripslashes($diary->text) ."</TEXTAREA><BR>\n"; + $output .= "</P>\n"; + + $output .= "<P>\n"; + $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save diary entry\">\n"; + $output .= "</P>\n"; + $output .= "</FORM>\n"; + + print $output; +} + +function diary_save($id, $text) { + db_query("UPDATE diaries SET text = '". addslashes($text) ."' WHERE id = $id"); + watchdog(1, "modified diary entry #$id."); +} + +function diary_display($order = "date") { + ### Initialize variables: + $fields = array("author" => "author", "date" => "timestamp DESC"); + + ### Perform SQL query: + $result = db_query("SELECT d.*, u.userid FROM diaries d LEFT JOIN users u ON u.id = d.author ORDER BY d.$fields[$order] LIMIT 50"); + + ### Display stories: + $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; + $output .= " <TR>\n"; + $output .= " <TH ALIGN=\"right\" COLSPAN=\"5\">\n"; + $output .= " <FORM ACTION=\"admin.php?section=diaries\" METHOD=\"post\">\n"; + $output .= " <SELECT NAME=\"order\">\n"; + foreach ($fields as $key=>$value) { + $output .= " <OPTION VALUE=\"$key\"". ($key == $order ? " SELECTED" : "") .">Sort by $key</OPTION>\n"; + } + $output .= " </SELECT>\n"; + $output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Update\">\n"; + $output .= " </FORM>\n"; + $output .= " </TH>\n"; + $output .= " </TR>\n"; + + $output .= " <TR>\n"; + $output .= " <TH>subject</TH>\n"; + $output .= " <TH>author</TH>\n"; + $output .= " <TH>operations</TH>\n"; + $output .= " </TR>\n"; + + while ($diary = db_fetch_object($result)) { + $output .= " <TR><TD><A HREF=\"diary.php?op=view&name=$diary->userid\">$diary->userid on ". format_date($diary->date, "small") ."</A></TD><TD>". format_username($diary->userid, 1) ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?section=diaries&op=edit&id=$diary->id\">edit</A></TD></TR>\n"; + } + + $output .= "</TABLE>\n"; + + print $output; +} + +/* + * Home administration: + */ +function home_display() { + print "<BR><BR><BIG><CENTER><A HREF=\"\">home</A></CENTER></BIG>\n"; +} + +/* + * Misc administration: + */ +function misc_display() { + print "<BIG>Upcoming features:</BIG>"; + print "<UL>\n"; + print " <LI>backup functionality</LI>\n"; + print " <LI>thresholds settings</LI>\n"; + print " <LI>...</LI>\n"; + print "</UL>\n"; +} + + +/* * Story administration: */ function story_edit($id) { - global $PHP_SELF, $anonymous, $categories; + global $categories; - $result = db_query("SELECT stories.*, users.userid FROM stories LEFT JOIN users ON stories.author = users.id WHERE stories.id = $id"); + $result = db_query("SELECT s.*, u.userid FROM stories s LEFT JOIN users u ON s.author = u.id WHERE s.id = $id"); $story = db_fetch_object($result); - $output .= "<FORM ACTION=\"$PHP_SELF?section=stories&op=save&id=$id\" METHOD=\"post\">\n"; + $output .= "<FORM ACTION=\"admin.php?section=stories&op=save&id=$id\" METHOD=\"post\">\n"; $output .= "<P>\n"; $output .= " <B>Author:</B><BR>\n"; - if ($story->userid) $output .= " <A HREF=\"admin.php?section=accounts&op=view&id=$story->author\">$story->userid</A>\n"; - else $output .= " $anonymous\n"; + $output .= " ". format_username($story->userid) ."\n"; $output .= "</P>\n"; $output .= "<P>\n"; @@ -323,18 +508,11 @@ function story_edit($id) { } function story_save($id, $subject, $abstract, $updates, $article, $category, $status) { - global $PHP_SELF; - - ### Add submission to SQL table: db_query("UPDATE stories SET subject = '". addslashes($subject) ."', abstract = '". addslashes($abstract) ."', updates = '". addslashes($updates) ."', article = '". addslashes($article) ."', category = '". addslashes($category) ."', status = '$status' WHERE id = $id"); - - ### Add log entry: watchdog(1, "modified story `$subject'."); } function story_display($order = "date") { - global $PHP_SELF; - ### Initialize variables: $status = array("deleted", "pending", "public"); $fields = array("author" => "author", "category" => "category", "date" => "timestamp DESC", "status" => "status DESC"); @@ -343,11 +521,10 @@ function story_display($order = "date") { $result = db_query("SELECT s.*, u.userid FROM stories s LEFT JOIN users u ON u.id = s.author ORDER BY s.$fields[$order]"); ### Display stories: - $output .= "<H3>Stories:</H3>\n"; $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\">\n"; $output .= " <TR>\n"; $output .= " <TH ALIGN=\"right\" COLSPAN=\"5\">\n"; - $output .= " <FORM ACTION=\"$PHP_SELF?section=stories\" METHOD=\"post\">\n"; + $output .= " <FORM ACTION=\"admin.php?section=stories\" METHOD=\"post\">\n"; $output .= " <SELECT NAME=\"order\">\n"; foreach ($fields as $key=>$value) { $output .= " <OPTION VALUE=\"$key\"". ($key == $order ? " SELECTED" : "") .">Sort by $key</OPTION>\n"; @@ -367,7 +544,7 @@ function story_display($order = "date") { $output .= " </TR>\n"; while ($story = db_fetch_object($result)) { - $output .= " <TR><TD><A HREF=\"discussion.php?id=$story->id\">$story->subject</A></TD><TD>". format_username($story->userid, 1) ."</TD><TD>$story->category</TD><TD ALIGN=\"center\">". $status[$story->status] ."</TD><TD ALIGN=\"center\"><A HREF=\"$PHP_SELF?section=stories&op=edit&id=$story->id\">edit</A></TD></TR>\n"; + $output .= " <TR><TD><A HREF=\"discussion.php?id=$story->id\">$story->subject</A></TD><TD>". format_username($story->userid, 1) ."</TD><TD>$story->category</TD><TD ALIGN=\"center\">". $status[$story->status] ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?section=stories&op=edit&id=$story->id\">edit</A></TD></TR>\n"; } $output .= "</TABLE>\n"; @@ -376,15 +553,75 @@ function story_display($order = "date") { } function info_display() { - phpinfo(); + include "includes/config.inc"; + + $output .= "sitename: $sitename<BR>\n"; + $output .= "e-mail address: $contact_email<BR>\n"; + $output .= "signature: $contact_signature<BR>\n"; + $output .= "send e-mail notifications: $notify<BR>\n"; + $output .= "allowed HTML tags: <I>". htmlspecialchars($allowed_html) ."</I><BR>\n"; + $output .= "anonymous user: $anonymous<BR>\n"; + $output .= "submission post threshold: $submission_post_threshold<BR>\n"; + $output .= "submission dump threshold: $submission_dump_threshold<BR>\n"; + + admin_box("$sitename settings", $output); } -include "function.inc"; -include "admin.inc"; +include "includes/config.inc"; +include "includes/function.inc"; +include "includes/admin.inc"; admin_header(); switch ($section) { + case "stories": + switch ($op) { + case "edit": + story_edit($id); + break; + case "Save story": + story_save($id, $subject, $abstract, $updates, $article, $category, $status); + story_edit($id); + break; + case "Update": + story_display($order); + break; + default: + story_display(); + } + break; + case "comments": + switch ($op) { + case "edit": + comment_edit($id); + break; + case "Save comment": + comment_save($id, $subject, $comment); + comment_edit($id); + break; + case "Update": + comment_display($order); + break; + default: + comment_display(); + } + break; + case "diaries": + switch ($op) { + case "edit": + diary_edit($id); + break; + case "Save diary entry": + diary_save($id, $text); + diary_edit($id); + break; + case "Update": + diary_display($order); + break; + default: + diary_display(); + } + break; case "accounts": switch ($op) { case "view": @@ -397,8 +634,11 @@ switch ($section) { account_display(); } break; + case "misc": + misc_display(); + break; case "bans": - include "ban.inc"; + include "includes/ban.inc"; switch ($op) { case "Add ban": ban_new($mask, $category, $reason); @@ -428,26 +668,17 @@ switch ($section) { log_display(); } break; - case "stories": - switch ($op) { - case "edit": - story_edit($id); - break; - case "Save story": - story_save($id, $subject, $abstract, $updates, $article, $category, $status); - story_edit($id); - break; - case "Update": - story_display($order); - break; - default: - story_display(); - } + case "stats": + stats_display(); break; case "info": info_display(); + break; + case "home": + home_display(); + break; default: - print "Welcome to the adminstration page!"; + print "<BR><BR><CENTER>Welcome to the adminstration center!</CENTER>\n"; } admin_footer(); |