2004-02-02 23:34:39 +00:00
|
|
|
<?php
|
2005-01-12 13:39:05 +00:00
|
|
|
$cvs_version_tracker[]="\$Id$"; //Generated automatically - do not edit
|
2004-02-02 23:34:39 +00:00
|
|
|
|
|
|
|
require_once("../project/project.inc");
|
|
|
|
require_once("../inc/countries.inc");
|
2004-09-14 20:45:17 +00:00
|
|
|
require_once("../inc/db.inc");
|
|
|
|
|
2004-09-21 21:56:10 +00:00
|
|
|
function db_init() {
|
|
|
|
if (project_is_stopped()) {
|
2005-02-25 19:35:34 +00:00
|
|
|
page_head("Not available");
|
|
|
|
echo "This page requires database access.
|
|
|
|
Our database server is temporarily shut down for maintenance.
|
|
|
|
Please try again later.
|
|
|
|
";
|
|
|
|
page_tail();
|
2004-09-21 21:56:10 +00:00
|
|
|
exit();
|
|
|
|
}
|
|
|
|
$retval = db_init_aux();
|
|
|
|
if ($retval == 1) {
|
|
|
|
echo "Unable to connect to database - please try again later\n";
|
|
|
|
echo "Error: ", mysql_errno(), mysql_error();
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
if ($retval == 2) {
|
|
|
|
echo "Unable to select database - please try again later";
|
|
|
|
echo mysql_error();
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-02-02 23:34:39 +00:00
|
|
|
// Initializes the session and returns the authenticator
|
|
|
|
// for the session (if any)
|
|
|
|
//
|
|
|
|
function init_session() {
|
2004-03-26 18:37:46 +00:00
|
|
|
$url = parse_url(MASTER_URL);
|
|
|
|
$path = $url['path'];
|
|
|
|
if (strlen($path)) {
|
|
|
|
session_set_cookie_params(0, $path);
|
|
|
|
}
|
2004-02-02 23:34:39 +00:00
|
|
|
session_start();
|
|
|
|
// NOTE: in PHP 4.1+, s/key_exists/array_key_exists/
|
2004-08-20 18:45:43 +00:00
|
|
|
if (array_key_exists('authenticator', $_SESSION)) {
|
2004-02-02 23:34:39 +00:00
|
|
|
return $_SESSION["authenticator"];
|
|
|
|
} else {
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// if not logged in, put up login form and exit
|
|
|
|
//
|
2004-02-03 21:48:49 +00:00
|
|
|
function require_login($user) {
|
2004-02-02 23:34:39 +00:00
|
|
|
if (!$user) {
|
2004-02-03 21:48:49 +00:00
|
|
|
print_login_form();
|
2004-02-02 23:34:39 +00:00
|
|
|
exit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_user_from_auth($auth) {
|
|
|
|
if ($auth) return lookup_user_auth($auth);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_user_from_id($id) {
|
|
|
|
if ($id) return lookup_user_id($id);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2004-02-03 21:48:49 +00:00
|
|
|
function get_logged_in_user($must_be_logged_in=true) {
|
2004-02-02 23:34:39 +00:00
|
|
|
$authenticator = init_session();
|
|
|
|
if (!$authenticator) {
|
|
|
|
$authenticator = $_COOKIE['auth'];
|
|
|
|
}
|
2005-02-13 06:13:33 +00:00
|
|
|
$authenticator = process_user_text($authenticator);
|
2004-02-02 23:34:39 +00:00
|
|
|
$user = get_user_from_auth($authenticator);
|
|
|
|
if ($must_be_logged_in) {
|
2004-02-03 21:48:49 +00:00
|
|
|
require_login($user);
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
return $user;
|
|
|
|
}
|
|
|
|
|
|
|
|
function show_login($user) {
|
|
|
|
if ($user) {
|
|
|
|
echo "Logged in as %s.\n", $user->name;
|
|
|
|
echo "<br><a href=login_form.php>Log in as someone else.</a>\n";
|
|
|
|
} else {
|
2004-03-24 23:33:46 +00:00
|
|
|
echo "Not logged in";
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-10-10 03:04:29 +00:00
|
|
|
function page_head($title, $java_onload="") {
|
2004-02-28 19:05:35 +00:00
|
|
|
$styleSheet = URL_BASE . STYLESHEET;
|
2004-10-20 05:45:43 +00:00
|
|
|
$rssname = PROJECT . " RSS 2.0";
|
|
|
|
$rsslink = URL_BASE . "rss_main.php";
|
2004-02-02 23:34:39 +00:00
|
|
|
|
2005-03-28 22:26:22 +00:00
|
|
|
if (defined("CHARSET")) {
|
|
|
|
header("Content-type: text/html; charset=".tr(CHARSET));
|
|
|
|
}
|
|
|
|
|
2004-06-15 18:50:57 +00:00
|
|
|
echo "<html><head><title>".strip_tags($title)."</title>
|
2004-05-07 22:17:34 +00:00
|
|
|
<link rel=stylesheet type=text/css href=\"$styleSheet\">
|
2004-10-20 05:45:43 +00:00
|
|
|
<link rel='alternate' type='text/xml' title=\"$rssname\" href=\"$rsslink\" />
|
2004-10-10 03:04:29 +00:00
|
|
|
</head>";
|
|
|
|
if ($java_onload!=""){echo "<body bgcolor=ffffff onload=\"".$java_onload."\">"; } else { echo "<body bgcolor=ffffff>";}
|
2005-01-12 13:25:33 +00:00
|
|
|
display_cvs_versions();
|
2004-06-15 18:50:57 +00:00
|
|
|
project_banner($title);
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
2004-11-18 20:01:12 +00:00
|
|
|
function page_tail_aux($show_return, $show_date) {
|
2005-01-18 19:56:18 +00:00
|
|
|
project_footer($show_return, $show_date);
|
2004-11-18 20:01:12 +00:00
|
|
|
echo "</body>\n</html>";
|
|
|
|
}
|
|
|
|
function page_tail_main($show_date=false) {
|
|
|
|
page_tail_aux(false, $show_date);
|
|
|
|
}
|
2004-02-02 23:34:39 +00:00
|
|
|
|
2004-11-18 20:01:12 +00:00
|
|
|
function page_tail($show_date=false) {
|
|
|
|
page_tail_aux(true, $show_date);
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
2005-01-12 13:25:33 +00:00
|
|
|
function display_cvs_versions(){
|
|
|
|
global $cvs_version_tracker;
|
2005-01-12 13:33:53 +00:00
|
|
|
echo "\n<!-- CVS VERSIONS -->\n";
|
2005-01-12 13:25:33 +00:00
|
|
|
for ($i=0;$i<sizeof($cvs_version_tracker);$i++){
|
|
|
|
echo "<!-- ".$cvs_version_tracker[$i]." -->\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-02-02 23:34:39 +00:00
|
|
|
function db_error_page() {
|
|
|
|
page_head("Database error");
|
2004-05-12 17:54:23 +00:00
|
|
|
echo "A database error occurred while handling your request.
|
2004-02-02 23:34:39 +00:00
|
|
|
<br>Please try again later.
|
|
|
|
<br>If the error persists, please submit a
|
|
|
|
<a href=bug_report_form.php>problem report</a>.
|
|
|
|
";
|
|
|
|
page_tail();
|
|
|
|
}
|
|
|
|
|
|
|
|
function profile_error_page($str) {
|
2004-03-24 23:33:46 +00:00
|
|
|
page_head("Profile error");
|
|
|
|
echo "$str<br>\n";
|
|
|
|
echo "<p>Click your browser's <b>Back</b> button to try again.\n<p>\n";
|
2004-03-26 18:45:49 +00:00
|
|
|
page_tail();
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
2004-11-21 18:56:30 +00:00
|
|
|
function error_page($msg) {
|
|
|
|
page_head("Unable to handle request");
|
|
|
|
echo $msg;
|
|
|
|
page_tail();
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
|
2004-11-29 11:56:25 +00:00
|
|
|
// takes argument in second and returns a human formatted time string
|
|
|
|
// in the form D days + h Hours + m Min + s sec.
|
|
|
|
|
|
|
|
function time_diff($x) {
|
|
|
|
$days = (int)($x/86400);
|
|
|
|
$hours = (int)(($x-$days*86400)/3600);
|
|
|
|
$minutes = (int)(($x-$days*86400-$hours*3600)/60);
|
|
|
|
$seconds = (int)($x % 60);
|
|
|
|
|
|
|
|
$datestring = "";
|
|
|
|
if ($days)
|
|
|
|
$datestring .= "$days days ";
|
|
|
|
if ($hours || strlen($datestring))
|
|
|
|
$datestring .= "$hours hours ";
|
|
|
|
if ($min || strlen($datestring))
|
|
|
|
$datestring .= "$minutes min ";
|
|
|
|
if ($seconds)
|
|
|
|
$datestring .= "$seconds sec";
|
|
|
|
|
|
|
|
return $datestring;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2004-02-02 23:34:39 +00:00
|
|
|
function date_str($x) {
|
|
|
|
if ($x == 0) return "---";
|
2005-01-08 19:45:26 +00:00
|
|
|
return gmdate('j M Y', $x);
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function time_str($x) {
|
|
|
|
if ($x == 0) return "---";
|
2004-03-23 01:44:13 +00:00
|
|
|
return gmdate('j M Y G:i:s', $x) . " UTC";
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function pretty_time_str($x) {
|
2004-03-23 01:44:13 +00:00
|
|
|
return time_str($x);
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
2004-05-14 22:57:59 +00:00
|
|
|
function start_table($extra="width=100%") {
|
2004-12-27 21:21:40 +00:00
|
|
|
echo "<table border=1 cellpadding=5 $extra>";
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function start_table_noborder($width="100%") {
|
|
|
|
echo "<table border=0 cellpadding=5 width=$width>";
|
|
|
|
}
|
|
|
|
|
|
|
|
function end_table() {
|
|
|
|
echo "</table>\n";
|
|
|
|
}
|
|
|
|
|
2004-12-16 19:37:26 +00:00
|
|
|
function row1($x, $ncols=2, $class="heading") {
|
2005-01-18 19:56:18 +00:00
|
|
|
echo "<tr><td class=$class colspan=$ncols>$x</td></tr>\n";
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function row2($x, $y) {
|
|
|
|
if ($x=="") $x="<br>";
|
|
|
|
if ($y=="") $y="<br>";
|
2005-01-18 19:56:18 +00:00
|
|
|
echo "<tr><td width=40% class=fieldname>$x</td><td class=fieldvalue>$y</td></tr>\n";
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
function row2_init($x, $y) {
|
2005-01-18 19:56:18 +00:00
|
|
|
echo "<tr><td class=fieldname width=40%>$x</td><td valign=top><b>$y\n";
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function row2_plain($x, $y) {
|
|
|
|
echo "<tr><td>$x</td><td>$y</td></tr>\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
function row3($x, $y, $z) {
|
|
|
|
echo "<tr><td width=30% valign=top align=right>$x</td><td>$y</td><td>$z</td></tr>\n";
|
|
|
|
}
|
|
|
|
|
2004-09-23 00:32:10 +00:00
|
|
|
function row4($xx, $xy, $yx, $yy) {
|
2004-11-01 23:42:29 +00:00
|
|
|
echo "<tr><td width=25% valign=top>$xx</td><td width=25%>$xy</td>"
|
2005-04-07 20:46:25 +00:00
|
|
|
. "<td width=25% >$yx</td><td width=%25>$yy</td></tr>
|
|
|
|
";
|
2004-09-23 00:12:19 +00:00
|
|
|
}
|
|
|
|
|
2004-02-02 23:34:39 +00:00
|
|
|
function rowify($string) {
|
|
|
|
echo "<tr><td>$string</td></tr>";
|
|
|
|
}
|
|
|
|
|
2005-04-08 00:06:52 +00:00
|
|
|
function row_array($x) {
|
2005-04-07 20:46:25 +00:00
|
|
|
echo "<tr>";
|
|
|
|
foreach ($x as $h) {
|
|
|
|
echo "<td>$h</th>";
|
|
|
|
}
|
|
|
|
echo "</tr>\n";
|
|
|
|
}
|
|
|
|
|
2005-04-08 00:06:52 +00:00
|
|
|
function row_heading_array($x) {
|
2005-04-07 20:46:25 +00:00
|
|
|
echo "<tr>";
|
|
|
|
foreach ($x as $h) {
|
|
|
|
echo "<th class=heading>$h</th>";
|
|
|
|
}
|
|
|
|
echo "</tr>\n";
|
|
|
|
}
|
|
|
|
|
2004-02-02 23:34:39 +00:00
|
|
|
function random_string() {
|
2004-04-20 05:05:52 +00:00
|
|
|
return md5(uniqid(rand(), true));
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
2004-02-03 21:48:49 +00:00
|
|
|
function print_login_form_aux($next_url, $user) {
|
2004-02-02 23:34:39 +00:00
|
|
|
echo "
|
2004-02-03 21:48:49 +00:00
|
|
|
<form name=f method=post action=login_action.php>
|
2004-02-02 23:34:39 +00:00
|
|
|
<input type=hidden name=next_url value='$next_url'>
|
|
|
|
";
|
|
|
|
start_table();
|
|
|
|
row1("Log in");
|
2004-12-06 22:41:19 +00:00
|
|
|
row2("Your account key:
|
2004-02-02 23:34:39 +00:00
|
|
|
<br><font size=-2>
|
2004-12-06 22:41:19 +00:00
|
|
|
If you don't know your account key,
|
2004-02-02 23:34:39 +00:00
|
|
|
<a href=get_passwd.php>click here</a>.
|
|
|
|
</font>",
|
|
|
|
"<input name=authenticator size=40>"
|
|
|
|
);
|
2004-12-06 22:41:19 +00:00
|
|
|
row2("Remember account key on this computer",
|
2004-02-02 23:34:39 +00:00
|
|
|
"<input type=checkbox name=send_cookie>"
|
|
|
|
);
|
|
|
|
row2("",
|
|
|
|
"<input type=submit value='Log in'>"
|
|
|
|
);
|
|
|
|
if ($user) {
|
|
|
|
row1("Log out");
|
|
|
|
row2("You are logged in as $user->name",
|
|
|
|
"<a href=logout.php>Log out</a>"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
end_table();
|
|
|
|
echo "
|
|
|
|
</form>
|
|
|
|
<script>
|
|
|
|
document.f.authenticator.focus();
|
|
|
|
</script>
|
|
|
|
";
|
|
|
|
}
|
|
|
|
|
2004-02-03 21:48:49 +00:00
|
|
|
function print_login_form() {
|
2004-02-02 23:34:39 +00:00
|
|
|
page_head("Please log in");
|
|
|
|
echo "
|
|
|
|
This function requires that you log in.
|
|
|
|
";
|
|
|
|
$next_url = $_SERVER['REQUEST_URI'];
|
2004-02-03 21:48:49 +00:00
|
|
|
print_login_form_aux($next_url, null);
|
2004-02-02 23:34:39 +00:00
|
|
|
page_tail();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Look for an element in a line of XML text
|
|
|
|
// If it's a single-tag element, and it's present, just return the tag
|
|
|
|
//
|
|
|
|
function parse_element($xml, $tag) {
|
|
|
|
$element = null;
|
|
|
|
$x = strstr($xml, $tag);
|
|
|
|
if ($x) {
|
|
|
|
if (strstr($tag, "/>")) return $tag;
|
|
|
|
$y = substr($x, strlen($tag));
|
|
|
|
$n = strpos($y, "<");
|
|
|
|
if ($n) {
|
|
|
|
$element = substr($y, 0, $n);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $element;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!function_exists("file_get_contents")) {
|
|
|
|
function file_get_contents($path) {
|
|
|
|
$x = "";
|
|
|
|
$f = fopen($path, "r");
|
|
|
|
if ($f) {
|
|
|
|
while (!feof($f)) $x .= fread($f, 4096);
|
|
|
|
fclose($f);
|
|
|
|
}
|
|
|
|
return $x;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-08-25 19:04:47 +00:00
|
|
|
$g_config = null;
|
2004-06-30 18:53:35 +00:00
|
|
|
function get_config() {
|
2004-08-25 19:04:47 +00:00
|
|
|
global $g_config;
|
|
|
|
if ($g_config == null) {
|
|
|
|
$g_config = file_get_contents("../../config.xml");
|
|
|
|
}
|
|
|
|
return $g_config;
|
2004-06-30 18:53:35 +00:00
|
|
|
}
|
|
|
|
|
2004-02-03 21:48:49 +00:00
|
|
|
// look for a particular element in the ../../config.xml file
|
2004-02-02 23:34:39 +00:00
|
|
|
//
|
2004-06-30 18:53:35 +00:00
|
|
|
function parse_config($config, $tag) {
|
|
|
|
$element = parse_element($config, $tag);
|
2004-02-02 23:34:39 +00:00
|
|
|
return trim($element);
|
|
|
|
}
|
|
|
|
|
2004-11-12 22:50:58 +00:00
|
|
|
// return true if XML contains either <tag/> or <tag>1</tag>
|
|
|
|
//
|
|
|
|
function parse_bool($xml, $tag) {
|
|
|
|
$x = "<$tag/>";
|
|
|
|
if (strstr($xml, $x)) return true;
|
|
|
|
$x = "<$tag>";
|
|
|
|
$y = (int)parse_element($xml, $x);
|
|
|
|
if ($y != 0) return true;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2004-02-02 23:34:39 +00:00
|
|
|
// Call this if for dynamic pages
|
|
|
|
//
|
|
|
|
function no_cache() {
|
|
|
|
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
|
|
|
|
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
|
|
|
|
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
|
|
|
header ("Pragma: no-cache"); // HTTP/1.0
|
|
|
|
}
|
|
|
|
|
|
|
|
// Generates a legal filename from a parameter string.
|
|
|
|
|
|
|
|
function get_legal_filename($name) {
|
2004-03-24 23:33:46 +00:00
|
|
|
$name = ereg_replace(',', '', $name);
|
|
|
|
return ereg_replace(' ', '_', $name);
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Returns a string containing as many words
|
|
|
|
// (being collections of characters separated by the character $delimiter)
|
|
|
|
// as possible such that the total string length is <= $chars characters long.
|
|
|
|
// If $ellipsis is true, then an ellipsis is added to any sentence which
|
|
|
|
// is cut short.
|
|
|
|
|
|
|
|
function sub_sentence($sentence, $delimiter, $max_chars, $ellipsis=false) {
|
|
|
|
$words = explode($delimiter, $sentence);
|
|
|
|
$total_chars = 0;
|
|
|
|
$count = 0;
|
|
|
|
$result = '';
|
|
|
|
|
|
|
|
do {
|
|
|
|
if ($count > 0) {
|
|
|
|
$result = $result . ' ' . $words[$count];
|
|
|
|
} else {
|
|
|
|
$result = $result . $words[$count];
|
|
|
|
}
|
|
|
|
$total_chars += strlen($words[$count]) + 1;
|
|
|
|
$count++;
|
|
|
|
} while ($count < count($words) && ($total_chars + strlen($words[$count])) <= $max_chars);
|
|
|
|
|
|
|
|
if ($ellipsis && ($count < count($words))) {
|
|
|
|
$result = $result . '...';
|
|
|
|
}
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
2004-12-15 23:50:00 +00:00
|
|
|
function format_credit($x) {
|
|
|
|
return number_format($x, 2);
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function project_is_stopped() {
|
2004-06-26 02:54:52 +00:00
|
|
|
if (file_exists("../../stop_web")) return true;
|
2004-06-10 19:43:54 +00:00
|
|
|
return false;
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
|
2004-06-01 18:55:59 +00:00
|
|
|
function user_links($user) {
|
|
|
|
$x = "<a href=show_user.php?userid=$user->id>$user->name</a>";
|
2004-02-02 23:34:39 +00:00
|
|
|
if ($user->has_profile) {
|
2004-07-09 18:28:41 +00:00
|
|
|
$x .= " <a href=view_profile.php?userid=$user->id><img border=0 src=head_20.png></a>";
|
2004-02-02 23:34:39 +00:00
|
|
|
}
|
|
|
|
return $x;
|
|
|
|
}
|
2004-02-05 21:35:48 +00:00
|
|
|
|
|
|
|
function host_link($hostid) {
|
|
|
|
if ($hostid) {
|
|
|
|
return "<a href=show_host_detail.php?hostid=$hostid>$hostid</a>";
|
|
|
|
} else {
|
|
|
|
return "---";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-06-15 18:50:57 +00:00
|
|
|
function open_output_buffer() {
|
|
|
|
ob_start();
|
|
|
|
ob_implicit_flush(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
function close_output_buffer($filename) {
|
|
|
|
$fh = fopen($filename, "w");
|
|
|
|
$page = ob_get_contents();
|
|
|
|
ob_end_clean();
|
|
|
|
fwrite($fh, $page);
|
|
|
|
fclose($fh);
|
|
|
|
}
|
|
|
|
|
2005-01-30 20:15:18 +00:00
|
|
|
function html_info() {
|
|
|
|
return "<br><a href=html.php><font size=-2>You may use HTML tags</font></a>\n";
|
|
|
|
}
|
|
|
|
|
2005-02-13 06:13:33 +00:00
|
|
|
function get_int($name, $optional=false) {
|
|
|
|
$x = $_GET[$name];
|
|
|
|
if (!is_numeric($x)) {
|
|
|
|
if ($optional) {
|
|
|
|
return null;
|
|
|
|
} else {
|
|
|
|
error_page("missing or bad parameter: $name $x");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (int)$x;
|
|
|
|
}
|
|
|
|
|
|
|
|
function post_int($name, $optional=false) {
|
|
|
|
$x = $_POST[$name];
|
|
|
|
if (!is_numeric($x)) {
|
|
|
|
if ($optional) {
|
|
|
|
return null;
|
|
|
|
} else {
|
|
|
|
error_page("missing or bad parameter: $name $x");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (int)$x;
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_str($name, $optional=false) {
|
|
|
|
$x = $_GET[$name];
|
|
|
|
if (!$x && !optional) {
|
|
|
|
error_page("missing or bad parameter: $name");
|
|
|
|
}
|
|
|
|
return $x;
|
|
|
|
}
|
|
|
|
|
2005-02-15 22:29:32 +00:00
|
|
|
function get_venue($name) {
|
|
|
|
$x = $_GET[$name];
|
|
|
|
if ($x == "") return $x;
|
|
|
|
if ($x == "home") return $x;
|
|
|
|
if ($x == "work") return $x;
|
|
|
|
if ($x == "school") return $x;
|
|
|
|
error_page("no such venue: $x");
|
|
|
|
}
|
|
|
|
|
2005-02-13 06:13:33 +00:00
|
|
|
function post_str($name, $optional=false) {
|
|
|
|
$x = $_POST[$name];
|
|
|
|
if (!$x && !optional) {
|
|
|
|
error_page("missing or bad parameter: $name");
|
|
|
|
}
|
|
|
|
return $x;
|
|
|
|
}
|
|
|
|
|
2004-02-02 23:34:39 +00:00
|
|
|
?>
|