| Server IP : 172.64.80.1 / Your IP : 216.73.216.175 Web Server : LiteSpeed System : Linux srv13.swhc.ca 4.18.0-553.126.2.lve.el8.x86_64 #1 SMP Thu May 28 14:12:30 UTC 2026 x86_64 User : hongluck ( 2522) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/hongluck/public_html/old site/webcal/includes/ |
Upload File : |
<?php
if ( empty ( $PHP_SELF ) && ! empty ( $_SERVER ) &&
! empty ( $_SERVER['PHP_SELF'] ) ) {
$PHP_SELF = $_SERVER['PHP_SELF'];
}
if ( ! empty ( $PHP_SELF ) && preg_match ( "/\/includes\//", $PHP_SELF ) ) {
die ( "You can't access this file directly!" );
}
// This file contains some convenient functions for editing rows
// in a table.
// You need to define the tables (typically this is done in tables.php).
// $tablear - array that defines table (see tables.php)
// $fieldname - name of field
function dbtable_get_field_index ( $tablear, $fieldname ) {
global $error;
for ( $j = 0; $j < count ( $tablear ); $j++ ) {
if ( $tablear[$j]["name"] == $fieldname ) {
//echo "found $fieldname $j<br />";
return $j;
}
}
$error = "dbtable_get_field_index: Invalid fieldname \"$fieldname\".";
return -1;
}
// Create a table for editing a database table entry
// $tablear - array that defines table (see tables.php)
// $valuesar - array of current values
// $action - URL to post form to (or "" for display-only)
// $actionlabel - Value to put on submit form ("Save", etc.)
// $hidden - array of hidden form variables (name1,value1,name2,value2,...)
function dbtable_to_html ( $tablear, $valuesar, $action="", $formname="",
$actionlabel="", $hidden="" ) {
global $CELLBG;
$ret = "<table style=\"border-width:0px;\" cellspacing=\"0\" cellpadding=\"0\">" .
"<tr><td style=\"background-color:#000000;\">" .
"<table style=\"border-width:0px; width:100%;\" cellspacing=\"1\" cellpadding=\"2\">" .
"<tr><td style=\"width:100%; background-color:$CELLBG;\">" .
"<table style=\"border-width:0px; width:100%;\">\n";
if ( ! is_array ( $tablear ) ) {
return "Error: dbtable_to_html parameter 1 is not an array!\n<br />\n";
}
if ( $action != "" ) {
$ret .= "<form action=\"$action\" method=\"post\"";
if ( $formname != "" )
$ret .= " name=\"$formname\"";
$ret .= ">";
if ( is_array ( $hidden ) ) {
for ( $i = 0; $i < count ( $hidden ); $i += 2 ) {
$ret .= "<input type=\"hidden\" name=\"" . $hidden[$i] .
"\" value=\"" . $hidden[$i+1] . "\" />";
}
}
}
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( ! empty ( $tablear[$i]["hide"] ) )
continue;
if ( ! empty ( $action ) && ! empty ( $tablear[$i]["calculated"] ) )
continue;
$ret .= "<tr><td style=\"vertical-align:top;\">";
if ( ! empty ( $tablear[$i]["prompt"] ) ) {
$ret .= "<b";
if ( ! empty ( $tablear[$i]["tooltip"] ) )
$ret .= " class=\"tooltip\" title=\"" . $tablear[$i]["tooltip"] . "\"";
$ret .= ">" . $tablear[$i]["prompt"] . ":</b></td>\n";
} else {
$ret .= " </td>";
}
$ret .= "<td style=\"vertical-align:top;\">";
if ( empty ( $tablear[$i]["noneditable"] ) && ! empty ( $action ) ) {
if ( $tablear[$i]["type"] == "text" ||
$tablear[$i]["type"] == "int" || $tablear[$i]["type"] == "float" ) {
$ret .= "<input type=\"text\" name=\"" . $tablear[$i]["name"] .
"\"";
if ( ! empty ( $tablear[$i]["maxlength"] ) )
$ret .= " maxlength=\"" . $tablear[$i]["maxlength"] . "\"";
if ( ! empty ( $tablear[$i]["length"] ) )
$ret .= " size=\"" . $tablear[$i]["length"] . "\"";
if ( ! empty ( $valuesar[$i] ) )
$ret .= " value=\"" . htmlspecialchars ( $valuesar[$i] ) . "\"";
$ret .= " />";
} else if ( $tablear[$i]["type"] == "boolean" ) {
$ret .= "<input type=\"radio\" value=\"Y\" name=\"" . $tablear[$i]["name"] . "\"";
if ( $valuesar[$i] == "Y" )
$ret .= " checked=\"checked\"";
$ret .= ">" . translate("Yes") . " ";
$ret .= "<input type=\"radio\" value=\"N\" name=\"" . $tablear[$i]["name"] . "\"";
if ( $valuesar[$i] != "Y" )
$ret .= " checked=\"checked\"";
$ret .= ">" . translate("No");
} else if ( $tablear[$i]["type"] == "date" ) {
$ret .= date_selection_html ( $tablear[$i]["name"], $valuesar[$i] );
} else if ( $tablear[$i]["type"] == "dbdate" ) {
// '2002-12-31'
$y = substr ( $valuesar[$i], 0, 4 );
$m = substr ( $valuesar[$i], 5, 2 );
$d = substr ( $valuesar[$i], 8, 2 );
$date = sprintf ( "%04d%02d%02d", $y, $m, $d );
$ret .= date_selection_html ( $tablear[$i]["name"], $date );
} else {
$ret .= "(type " . $tablear[$i]["type"] . " not supported)";
}
} else {
if ( ! empty ( $valuesar[$i] ) ) {
if ( $tablear[$i]["type"] == "text" ||
$tablear[$i]["type"] == "int" || $tablear[$i]["type"] == "float" ) {
$ret .= htmlentities ( $valuesar[$i] );
} else if ( $tablear[$i]["type"] == "boolean" ) {
if ( $valuesar[$i] == "Y" || empty ( $valuesar[$i] ) )
$ret .= translate("Yes");
else
$ret .= translate("No");
} else if ( $tablear[$i]["type"] == "date" ) {
$ret .= date_to_str ( $valuesar[$i] );
} else if ( $tablear[$i]["type"] == "dbdate" ) {
$y = substr ( $valuesar[$i], 0, 4 );
$m = substr ( $valuesar[$i], 5, 2 );
$d = substr ( $valuesar[$i], 8, 2 );
$date = sprintf ( "%04d%02d%02d", $y, $m, $d );
$ret .= date_to_str ( $date );
} else {
$ret .= "(type " . $tablear[$i]["type"] . " not supported)";
}
}
}
$ret .= "</td></tr>\n";
}
if ( ! empty ( $actionlabel ) )
$ret .= "<tr><td colspan=\"2\" style=\"text-align:center;\">\n" .
"<input type=\"submit\" value=\"" . htmlspecialchars ( $actionlabel ) . "\" />" .
"</td></tr></form>\n";
$ret .= "</table>\n</td></tr></table>\n</td></tr></table>\n";
return $ret;
}
// Print rows of a table into an HTML table. The first column will
// include (optionally) href links to a page which can show further
// details.
// $tablear - db table (defined in tables.php)
// $tablename - db table name
// $href - URL (%0 will be replaced with field field 0)
// $fields - list of fields to include in table.
// $keys - array of db key fields (field tagged with "iskey" => 1)
// $order - SQL order text
function dbtable_html_list ( $tablear, $tablename, $href, $fields,
$keys, $order ) {
global $THBG, $THFG, $CELLBG;
if ( ! is_array ( $tablear ) )
return "Error: dbtable_to_html_list parameter 1 is not an array!\n<br />\n";
if ( ! is_array ( $fields ) )
return "Error: dbtable_to_html_list parameter 2 is not an array!\n<br />\n";
if ( ! is_array ( $keys ) )
return "Error: dbtable_to_html_list parameter 3 is not an array!\n<br />\n";
$ret = "<table style=\"border-width:0px;\" cellspacing=\"0\" cellpadding=\"0\">" .
"<tr><td style=\"background-color:#000000;\">" .
"<table style=\"border-width:0px; width:100%;\" cellspacing=\"1\" cellpadding=\"2\">" .
"<tr><td style=\"width:100%; background-color:$CELLBG;\">" .
"<table style=\"border-width:0px; width:100%;\">\n";
// header
$ret .= "<tr>";
for ( $i = 0; $i < count ( $fields ); $i++ ) {
$ind = dbtable_get_field_index ( $tablear, $fields[$i] );
/*
if ( $ind < 0 )
echo "Error: dbtable_html_list invalid fieldname \"$fields[$i]\" $i\n"; exit;
*/
if ( empty ( $tablear[$ind]["hide"] ) )
$ret .= "<th style=\"background-color:$THBG; color:$THFG;\">" .
$tablear[$ind]["prompt"] . "</th>";
}
$ret .= "</tr>\n";
$sql = "SELECT " . $fields[0];
for ( $i = 1; $i < count ( $fields ); $i++ ) {
$sql .= ", " . $fields[$i];
}
$sql .= " FROM " . $tablename . " ";
if ( is_array ( $keys ) && count ( $keys ) > 0 ) {
$sql .= "WHERE ";
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( ! empty ( $tablear[$i]["iskey"] ) ) {
if ( empty ( $keys[$tablear[$i]["name"]] ) ) {
//echo "Error: key value for " . $tablear[$i]["name"] . " not set.\n";
//exit;
} else {
if ( $first )
$first = 0;
else
$sql .= " AND ";
$sql .= $tablear[$i]["name"] . " = " ;
if ( $tablear[$i]["type"] == "int" ||
$tablear[$i]["type"] == "float" || $tablear[$i]["type"] == "date" )
$sql .= $keys[$tablear[$i]["name"]];
else
$sql .= "'" . $keys[$tablear[$i]["name"]] . "'";
}
}
}
}
if ( ! empty ( $order ) )
$sql .= " ORDER BY " . $order;
//echo "SQL: $sql<br />\n";
$res = dbi_query ( $sql );
if ( $res ) {
while ( $row = dbi_fetch_row ( $res ) ) {
$ret .= "<tr>";
$first_href = 1;
$first = 1;
for ( $i = 0; $i < count ( $fields ); $i++ ) {
// check data type (date)
$ind = dbtable_get_field_index ( $tablear, $fields[$i] );
if ( empty ( $tablear[$ind]["hide"] ) ) {
$ret .= "<td style=\"background-color:$CELLBG; vertical-align:top;\">";
if ( $tablear[$ind]["type"] == "date" )
$val = date_to_str ( $row[$i], "", 1, 1 );
else if ( $tablear[$ind]["type"] == "dbdate" ) {
$y = substr ( $row[$i], 0, 4 );
$m = substr ( $row[$i], 5, 2 );
$d = substr ( $row[$i], 8, 2 );
$date = sprintf ( "%04d%02d%02d", $y, $m, $d );
$val = date_to_str ( $date, "", 1, 1 );
} else
$val = htmlentities ( $row[$i] );
if ( $first_href && ! empty ( $href ) ) {
$first_href = 0;
$url = $href;
for ( $j = count ( $fields ) - 1; $j >= 0; $j-- ) {
$url = str_replace ( "%$j", $row[$j], $url );
}
$ret .= "<a href=\"$url\">" . $val . "</a>";
} else {
$ret .= $val;
}
$ret .= "</td>";
}
}
$ret .= "</tr>\n";
}
} else {
echo translate("Database error") . ": " . dbi_error (); exit;
}
$ret .= "</table>\n</td></tr></table>\n</td></tr></table>\n";
return $ret;
}
// Load a single row of a db table
// $tablear - db table (defined in tables.php)
// $tablename - db table name
// $keys - array of db key fields (field tagged with "iskey" => 1)
function dbtable_load ( $tablear, $tablename, $keys ) {
$ret = false;
$sql = "SELECT ";
if ( ! is_array ( $tablear ) ) {
echo "Error: dbtable_load parameter 1 is not an array!<br />\n";
exit;
}
if ( ! is_array ( $keys ) ) {
echo "Error: dbtable_load parameter 3 is not an array!<br />\n";
exit;
}
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( $first )
$first = 0;
else
$sql .= ", ";
if ( empty ( $tablear[$i]["name"] ) ) {
echo "Error: dbtable_load $tablename field $i does not define name.\n";
exit;
}
$sql .= $tablear[$i]["name"];
}
$sql .= " FROM " . $tablename . " WHERE ";
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( ! empty ( $tablear[$i]["iskey"] ) ) {
if ( empty ( $keys[$tablear[$i]["name"]] ) ) {
//echo "Error: key value for " . $tablear[$i]["name"] . " not set.\n";
//exit;
} else {
if ( $first )
$first = 0;
else
$sql .= " AND ";
$sql .= $tablear[$i]["name"] . " = " ;
if ( $tablear[$i]["type"] == "int" ||
$tablear[$i]["type"] == "float" || $tablear[$i]["type"] == "date" )
$sql .= $keys[$tablear[$i]["name"]];
else
$sql .= "'" . $keys[$tablear[$i]["name"]] . "'";
}
}
}
//echo "SQL: $sql<br />\n";
$res = dbi_query ( $sql );
if ( $res ) {
if ( $row = dbi_fetch_row ( $res ) ) {
$ret = array ();
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
$ret[$i] = $row[$i];
}
} else {
$ret = false; // not found
}
dbi_free_result ( $res );
} else {
echo translate("Database error") . ": " . dbi_error (); exit;
}
return $ret;
}
// Delete a single row of a db table
// $tablear - db table (defined in tables.php)
// $tablename - db table name
// $keys - array of db key fields (field tagged with "iskey" => 1)
function dbtable_delete ( $tablear, $tablename, $keys ) {
$ret = false;
if ( ! is_array ( $tablear ) ) {
echo "Error: dbtable_delete parameter 1 is not an array!<br />\n";
exit;
}
if ( ! is_array ( $keys ) ) {
echo "Error: dbtable_delete parameter 3 is not an array!<br />\n";
exit;
}
$sql = "DELETE FROM $tablename WHERE ";
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( ! empty ( $tablear[$i]["iskey"] ) ) {
if ( empty ( $keys[$tablear[$i]["name"]] ) ) {
//echo "Error: key value for " . $tablear[$i]["name"] . " not set.\n";
//exit;
continue;
} else {
if ( $first )
$first = 0;
else
$sql .= " AND ";
$sql .= $tablear[$i]["name"] . " = " ;
if ( $tablear[$i]["type"] == "int" ||
$tablear[$i]["type"] == "float" || $tablear[$i]["type"] == "date" )
$sql .= $keys[$tablear[$i]["name"]];
else
$sql .= "'" . $keys[$tablear[$i]["name"]] . "'";
}
}
}
//echo "SQL: $sql<br />";
if ( ! dbi_query ( $sql ) ) {
echo translate("Database error") . ": " . dbi_error (); exit;
}
return $ret;
}
// Add a row into a table (SQL insert)
// $tablear - db table (defined in tables.php)
// $tablename - db table name
// $valuesar - array of values
function dbtable_add ( $tablear, $tablename, $valuesar ) {
global $error;
$ret = false;
$sql = "INSERT INTO " . $tablename . " (";
if ( ! is_array ( $tablear ) ) {
echo "Error: dbtable_add parameter 1 is not an array!<br />\n";
exit;
}
if ( ! is_array ( $valuesar ) ) {
echo "Error: dbtable_add parameter 3 is not an array!<br />\n";
exit;
}
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( $first )
$first = 0;
else
$sql .= ", ";
if ( empty ( $tablear[$i]["name"] ) ) {
echo "Error: dbtable_load $tablename field $i does not define name.\n";
exit;
}
$sql .= $tablear[$i]["name"];
}
$sql .= " ) VALUES (";
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( $first )
$first = 0;
else
$sql .= ", ";
if ( empty ( $valuesar[$i] ) )
$sql .= "NULL";
else if ( $tablear[$i]["type"] == "date" ||
$tablear[$i]["type"] == "int" )
$sql .= $valuesar[$i];
else
$sql .= "'" . $valuesar[$i] . "'";
}
$sql .= " )";
//echo "SQL: $sql<br />\n";
if ( ! dbi_query ( $sql ) ) {
// Shouldn't happen... complain if it does.
$error = translate("Database error") . ": " . dbi_error ();
return false;
}
return true;
}
// Update a row in a table (SQL update)
// $tablear - db table (defined in tables.php)
// $tablename - db table name
// $valuesar - array of values
function dbtable_update ( $tablear, $tablename, $valuesar ) {
global $error;
$sql = "UPDATE " . $tablename . " SET";
if ( ! is_array ( $tablear ) ) {
echo "Error: dbtable_update parameter 1 is not an array!<br />\n";
exit;
}
if ( ! is_array ( $valuesar ) ) {
echo "Error: dbtable_update parameter 3 is not an array!<br />\n";
exit;
}
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( ! empty ( $tablear[$i]["iskey"] ) )
continue;
if ( $first )
$first = 0;
else
$sql .= ", ";
if ( empty ( $tablear[$i]["name"] ) ) {
echo "Error: dbtable_update $tablename field $i does not define name.\n";
exit;
}
$sql .= " " . $tablear[$i]["name"] . " = ";
if ( empty ( $valuesar[$i] ) ) {
$sql .= "NULL";
} else if ( $tablear[$i]["type"] == "int" ||
$tablear[$i]["type"] == "date" ) {
$sql .= $valuesar[$i];
} else
$sql .= "'" . $valuesar[$i] . "'";
}
$sql .= " WHERE";
$first = 1;
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
if ( empty ( $tablear[$i]["iskey"] ) )
continue;
if ( $first )
$first = 0;
else
$sql .= " AND";
if ( empty ( $valuesar[$i] ) ) {
echo "Error: you must set field $i (" . $tablear[$i]["name"] .
") by hand. Cannot be empty.";
exit;
}
$sql .= " " . $tablear[$i]["name"] . " = '" . $valuesar[$i] . "'";
}
//echo "SQL: $sql <P>\n";
if ( ! dbi_query ( $sql ) ) {
// Shouldn't happen... complain if it does.
$error = translate("Database error") . ": " . dbi_error ();
return false;
}
return true;
}
// Generate a new ID
function dbtable_genid ( $tablename, $field ) {
$ret = 1;
$sql = "SELECT MAX(" . $field . ") FROM " . $tablename;
$res = dbi_query ( $sql );
if ( $res ) {
if ( $row = dbi_fetch_row ( $res ) ) {
$ret = $row[0] + 1;
}
dbi_free_result ( $res );
}
return $ret;
}
// Convert an array of db values (with index values 0,1,2,... into
// an associative array (with index values of table column names).
// $tablear - db table (defined in tables.php)
// $valuesar - array of values
function dbtable_build_name_index ( $tablear, $valuesar ) {
$ret = array ();
for ( $i = 0; $i < count ( $tablear ); $i++ ) {
$ret[$tablear[$i]["name"]] = $valuesar[$i];
}
return $ret;
}
?>