aaaaaa123456789 icon

Announcement code

aaaaaa123456789 | PRO | 02/25/12 03:18:11 AM UTC | 0 ⭐ | 425 👁️ | Never ⏰ | []
PHP |

5 KB

|

None

|

0 👍

/

0 👎

<?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 ? "&lt;-- Previous" : ('<a href="announce.php?start=' . (($pageno - 2) * $length) .
               '&length=' . $length . '">&lt;--Previous</a>'))
           . '</td><td align="center">' . 
             ("Announcements page $pageno")
           . '</td><td align="right">' . 
             (last_page($pageno, $length) ? "Next --&gt;" : ('<a href="announce.php?start=' . ($pageno * $length) .
               '&length=' . $length . '">Next --&gt;</a>'))
           . '</td></tr></table>';
  $result = '<html><body bgcolor="#ffffff">' . $announcements . "<br /><br />" . $table . "</body></html>";
  return $result;
}
 
echo generate_content();
 
?>

Comments