Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function make_date($datenumber, $timenumber) {
- if (!$datenumber) return "";
- $d = (int) $datenumber;
- $n = (int) $timenumber;
- $second = $n % 100;
- $minute = ($n / 100) % 100;
- $hour = (int) ($n / 10000);
- $day = $d % 100;
- $month = ($d / 100) % 100;
- $year = (int) ($d / 10000);
- if ($second >= 60) {$second -= 60; $minute ++;}
- if ($minute >= 60) {$minute -= 60; $hour ++;}
- if ($hour >= 24) {$day += ($hour / 24); $hour %= 24;}
- if (!checkdate($month, $day, $year)) return "";
- switch ($month) {
- case 1: $monthname = "Jan"; break;
- case 2: $monthname = "Feb"; break;
- case 3: $monthname = "Mar"; break;
- case 4: $monthname = "Apr"; break;
- case 5: $monthname = "May"; break;
- case 6: $monthname = "Jun"; break;
- case 7: $monthname = "Jul"; break;
- case 8: $monthname = "Aug"; break;
- case 9: $monthname = "Sep"; break;
- case 10: $monthname = "Oct"; break;
- case 11: $monthname = "Nov"; break;
- case 12: $monthname = "Dec"; break;
- default: $monthname = "";
- }
- if ($hour == 0) $hn = 12; else if ($hour > 12) $hn = $hour - 12; else $hn = $hour;
- $hm = ($hour < 12) ? "am" : "pm";
- $fulldate = $monthname . " " . $day . ", " . $year . ", " . $hn . ":" . ($minute < 10 ? "0" : "") . $minute . ":"
- . ($second < 10 ? "0" : "") . $second . $hm;
- return $fulldate;
- }
- function database_connection($server, $uid, $pwd, $dbname) {
- $connection = mysql_connect($server, $uid, $pwd);
- if (!$connection) return 1;
- $result = mysql_select_db($dbname, $connection);
- if (!$result) return 2;
- return 0;
- }
- function retrieve_record($recordid) {
- $recordnumber = (int) $recordid;
- $query = "SELECT id, added_by, date, time, contents FROM announcements WHERE id = $recordnumber";
- $result = mysql_query($query);
- $data = mysql_fetch_array($result);
- if (is_array($data)) return $data; else return NULL;
- }
- function retrieve_records($amount, $start) {
- $data = array("count" => 0);
- $n = (int) $amount;
- $s = (int) $start;
- if ($n <= 0 or $s < 0) return $data;
- $result = mysql_query("SELECT DISTINCT id FROM announcements ORDER BY 1 DESC LIMIT $s, $n");
- for ($pos = 0; $pos < $amount; $pos ++) {
- $x = mysql_fetch_array($result);
- if (!is_array($x)) break;
- $newid = $x["id"];
- $data[$data["count"]] = retrieve_record($newid);
- $data["count"] ++;
- }
- return $data;
- }
- function make_announcement_item($record) {
- $header = "Announcement number " . $record["id"] . ", posted by " . $record["added_by"] .
- (($record["date"]) ? " on " . make_date($record["date"], $record["time"]) . " UTC" : "");
- $content = $record["contents"];
- $header = htmlspecialchars($header);
- return <<<HTML_code
- <font face="Tahoma" size="-1"><i>$header</i></font><br />
- <font face="Tahoma">$content</font>
- HTML_code;
- }
- function make_announcements($amount, $start) {
- $records = retrieve_records($amount, $start);
- $data = "";
- for ($i = 0; $i < $records['count']; $i++) {
- $record = $records[$i];
- if ($data != "")
- $data .= "<br /><hr /><br />";
- $data .= make_announcement_item($record);
- }
- return $data;
- }
- function error_page() {
- $text = <<<error_page
- <html><body bgcolor="#ffffff"><center><font face="Tahoma" size="7"><b>2032</b></font><br /><br />
- <font face="Arial" size="4">No aliens, we have a bad server <b>AND WE ADMIT IT</b>.<br />
- Nah, just joking... it's probably a database fail, refresh the page and try again.</font></center></body></html>
- error_page;
- return $text;
- }
- function get_value($valuename, $default) {
- $data = $_REQUEST[$valuename];
- if ($data === NULL) return $default; else return ((int) $data);
- }
- function last_page($page, $pagesize) {
- $result = mysql_query("SELECT COUNT(*) AS total FROM announcements");
- $data = mysql_fetch_array($result);
- $amount = (int) $data['total'];
- if (($page * $pagesize) >= $amount) return true; else return false;
- }
- function generate_content() {
- $start = get_value("start", 0);
- $length = get_value("length", 5);
- $pageno = ((int) $start) / ((int) $length) + 1;
- $status = database_connection(/* censored the database connection data, sorry */);
- if ($status) return error_page();
- $announcements = make_announcements($length, $start);
- $table = '<table width="100%"><tr><td align="left">' .
- ($pageno == 1 ? "<-- Previous" : ('<a href="announce.php?start=' . (($pageno - 2) * $length) .
- '&length=' . $length . '"><--Previous</a>'))
- . '</td><td align="center">' .
- ("Announcements page $pageno")
- . '</td><td align="right">' .
- (last_page($pageno, $length) ? "Next -->" : ('<a href="announce.php?start=' . ($pageno * $length) .
- '&length=' . $length . '">Next --></a>'))
- . '</td></tr></table>';
- $result = '<html><body bgcolor="#ffffff">' . $announcements . "<br /><br />" . $table . "</body></html>";
- return $result;
- }
- echo generate_content();
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement