Edit PSB™ Status Code Meanings
The edit-meanings.php script lets administrators change the PSB™ administrator's PSB™ status code meanings. Changing administrator password and changing users password are done in other scripts.
In editing the meanings in the PSB™ administrator's status code meanings table, the configure.php file is included to establish server and database connections. Next, we get the username and statuscode and meaning variables POSTed to our PHP script, with the username being POSTed from the page that sent us here and the other variables getting POSTed from this members table editing page to itself. Note that if the Administrator is not logged in and therefore his username (stored in $U) is unset, he is sent to the login page. If the $A variable is not set, he has not yet entered data into the form.
Once the $A variable is set, the PHP script updates the specified status code meaning in the PSB™ administrator's status code meanings table where all the PSB™ administrator's status code meanings are stored. Note that "UPDATE $B SET meaning = '$A' WHERE sorter = '$N'" is the table query used, and it only works if the administrator's username was located in the members table when he logged in. Note that in MySQL queries, single quotes are used around data variables, but when there are variables that represent table names, (i.e., $B), no quotes should be used.
Every administrator has an editable table of PSB™ status code meanings that uses his user name as part of its title, and a PSB™ table that also uses his user name as part of its title. The latter contains First Names, IDs, Comments, and Status Codes, which the psb.php script (the actual PSB™) uses to represent current statuses and comments. These are the data of the members of the administrator's PSB™ group. $B=$U."_meaning" is used for assembling the table name used in the table updating.
The reason the status code ($N) gets incremented is that the sorter variable (the PRIMARY key in the meanings table) ranges from 1 to 100 but the status codes range from 00 to 99. Note that the form's validation script dumps unacceptable characters that could be used as accomplices in nasty old MySQL injection attacks. So we change many special characters to space characters, like + and = and ", but change others. Two hyphens in a row is bad, so we make sure to change one of them to a space character. We change ' to ; so don't at least looks like don;t, rather than like dont or don t.
If the table gets updated successfully, you get a message to that effect. Success is detected by a special MySQL function, mysql_affected_rows(). Once the edit is done, there's a button to let the administrator return to the Administrators Page. Note that JSON is used to pass the user name from PHP to JavaScript and then it gets POSTed back to PHP by the form in this script as well as to the Administrator page. This keeps the user logged in so he need not login constantly as he uses various editing scripts.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<TITLE>Edit PSB Status Code Meanings</TITLE>
<meta name="description" content="Edit PSB Status Code Meanings">
<meta name="keywords" content="Edit PSB Status Code Meanings,php,javascript, dhtml, DHTML">
<style type="text/css">
BODY {margin-left:0; margin-right:0; margin-top:0;text-align:left}
p, li {font:13px Verdana; color:black;text-align:left}
h1 {font:bold 28px Verdana; color:black;text-align:center}
h2 {font:bold 24px Verdana;text-align:center}
h3 {font:bold 15px Verdana;}
</style>
</head><body>
<div style='position:absolute;top:450px;left:270px;border:1px solid black;background-color:#eee;'>
<?php
include_once"configure.php";
$U=$_POST['username'];
$A=$_POST['meaning'];
$N=$_POST['statuscode'];
if (isset($N)) {$N=intval($N);$N=$N+1;}
if (!isset($U)) {
echo '<script language="javascript">alert("Please login.");
window.location="login.php"; </script>';
}
$B=$U."_meaning";
$result = mysql_query("SELECT * FROM $B") or die(mysql_error());
echo "<table border='1' width='462'>";
echo "<tr><th>Status Code</th><th width='412'>Meaning</th></tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr><td>";
$q=$row['sorter']-1;if ($q<10){$q=strval($q);$q="0".$q;}
echo $q;
echo "</td><td>";
echo $row['meaning'];
echo "</td></tr>";
}
echo "</table>";
if (isset($A)) {
mysql_query("UPDATE $B SET meaning = '$A' WHERE sorter = '$N'");
$rc = mysql_affected_rows();
if ($rc>0){unset($A);
echo '<script language="javascript">alert("The change was successfully accomplished.");</script>';}
else{echo '<script language="javascript">alert("The change was unsuccessful.");</script>';}
?>
<div style='position:absolute;top:0px;left:0px;border:1px solid black;background-color:#eee;'>
<?php
$B=$U."_meaning";
$result = mysql_query("SELECT * FROM $B") or die(mysql_error());
echo "<table border='1' width='462'>";
echo "<tr><th>Status Code</th><th width='412'>Meaning</th></tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr><td>";
$q=$row['sorter']-1;if ($q<10){$q=strval($q);$q="0".$q;}
echo $q;
echo "</td><td>";
echo $row['meaning'];
echo "</td></tr>";
}
echo "</table>";
?>
</div>
<?php
}
mysql_close();
?>
</div>
<h1>Edit PSB Status Code Meanings</h1>
<div id='pw' style='position:absolute;top:150px;left:270px;width:462px'><table style="background-color:#8aa;border-color:#00f" border='6' cellspacing=0 cellpadding=6><tr><td>
<form id='formpw' name="formpw" method="post" action="edit-meanings.php" onsubmit="return validatemeaning()">
<label for="PSB Status Code"><b>PSB Status Code: </b><input type="text" name="statuscode" size="2" maxlength="2" value=""></label><br>
<label for="PSB Status Code Meaning"><b>PSB Status Code Meaning: </b><input type="text" name="meaning" size="57" maxlength="57" value=""></label><br><br>
<input type="hidden" name="username" value=" ">
<input type="submit" value="Change Meaning"><br><br>
<input type="reset" value="Reset"></form></td></tr></table>
<br><br>
<form style='margin-left:100px' name="MyForm" method="POST" action="administrator-page.php">
<input type="button" value="Return to Administrator Page" onclick="goback()">
<input type="hidden" name="username" value=" ">
</form>
</div>
<script language="javascript">
meaning='';Status='';
function goback(){
var u = <?php echo json_encode($U); ?>;
document.MyForm.username.value=u;
document.MyForm.submit();}
function validatemeaning(){
var u = <?php echo json_encode($U); ?>;
document.formpw.username.value=u;
d=document.formpw;
Status=d.statuscode.value;
if (Status.length!=2 || isNaN(Status)) {alert("Please input any two digits for the personal status code.");return false}
meaning=d.meaning.value;
meaning=meaning.replace(/'/g,";");
meaning=meaning.replace(/--/g," -");
meaning=meaning.replace(/--/g," -");
meaning=meaning.replace(/[@#$%\^&\*\(\)\+\|\\=\{\}\[\]:"'\/><]/g," ");
d.meaning.value=meaning;
return true;}
</script>
</body></html>