added ability to update the computer_ip in the phones table upon vicidial.php agent login

added QC status codes section to admin.php

git-svn-id: svn://192.168.202.10@834 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2008-04-16 10:18:12 +00:00
parent 139ed7b50a
commit 2410cbcc84
5 changed files with 328 additions and 14 deletions
+14 -1
View File
@@ -87,7 +87,20 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom
[featuremap]
blindxfer => D
16. Added ip_relay to allow for loopback IAX trunks that make true blind monitoring possible for all agents no matter their phone type 0860XXXX.
16. Added ip_relay to allow for loopback IAX trunks that make true blind
monitoring possible for all agents no matter their phone type 0860XXXX.
17. Added the ability to load balance the logins to vicidial.php for phones
that are registered to multiple servers on a multi-server system.
Simply put multiple phone_login values in the phone login field at
login separated by a comma and the vicidial.php script will pick the
server that has the fewest agents logged into it at the moment of login.
18. Added ability for vicidial.php to populate the phones.computer_ip field upon
agent login. Options set in the vicidial.php file to allow for overwrite
every login or only if field is empty.
+6 -6
View File
@@ -144,12 +144,6 @@ qc_user_level INT(2) default '0',
campaign_group_id VARCHAR(20)
);
# qc codes to be used for statistics
CREATE TABLE qc_codes (
code VARCHAR(8) PRIMARY KEY NOT NULL,
code_name VARCHAR(30)
);
# For the log table, some fields will need to be added to the vicidial_log table:
ALTER TABLE vicidial_log ADD qc_stage ENUM('NONE','LOCK_1','PASS','LOCK_2','FINISH',COMMIT') default 'NONE';
@@ -162,6 +156,12 @@ ALTER TABLE vicidial_closer_log ADD qc_stage ENUM('NONE','LOCK_1','PASS','LOCK_2
# qc codes to be used for statistics
CREATE TABLE vicidial_qc_codes (
code VARCHAR(8) PRIMARY KEY NOT NULL,
code_name VARCHAR(30)
);
ALTER TABLE vicidial_campaigns ADD qc_web_form_address VARCHAR(255);
ALTER TABLE vicidial_campaigns ADD qc_script VARCHAR(10);
@@ -56,6 +56,24 @@ In-Group Recording Override -<\/B> This field allows for the overriding of the c
In-Group Recording Filename -<\/B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE||
In-Group Recording Override: ||
In-Group Recording Filename: ||
ADDING VICIDIAL QC STATUS CODE||
MODIFY VICIDIAL QC STATUS CODE||
VICIDIAL QC STATUS CODES||
The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.||
QC Status Codes ||
VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: ||
ADD NEW QC STATUS CODE||
QC STATUS CODE NOT DELETED||
QC STATUS CODE DELETED: ||
QC STATUS CODE NOT MODIFIED ||
QC STATUS CODE MODIFIED: ||
the qc status code needs to be at least 1 characters in length||
the qc status code name needs to be at least 1 characters in length||
QC STATUS CODE NOT ADDED ||
there is already a qc status code in the system with this name:||
QC STATUS CODE ADDED: ||
code must be between 1 and 8 characters in length
code name must be between 2 and 30 characters in length||
############################################################ CLIENT
+81 -4
View File
@@ -178,10 +178,12 @@
# 80317-2106 - added recording override options for inbound group calls
# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls
# 80402-0121 - Fixes for manual dial transfers on some systems
# 80407-2112 - Work on adding phone login load balancing across servers
# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable
#
$version = '2.0.5-149';
$build = '80402-0121';
$version = '2.0.5-151';
$build = '80416-0559';
require("dbconnect.php");
@@ -222,7 +224,7 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];}
### security strip all non-alphanumeric characters out of the variables ###
$DB=ereg_replace("[^0-9a-z]","",$DB);
$phone_login=ereg_replace("[^0-9a-zA-Z]","",$phone_login);
$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login);
$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass);
$VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login);
$VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass);
@@ -269,6 +271,7 @@ $PreseT_DiaL_LinKs = '1'; # set to 1 to show a DIAL link for Dial Presets
$LogiNAJAX = '1'; # set to 1 to do lookups
$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls"
$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout
$PhoneSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login
$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen
@@ -943,8 +946,29 @@ $VDloginDISPLAY=0;
exit;
}
# code for parsing load-balanced agent phone allocation where agent interface
# will send multiple phones-table logins so that the script can determine the
# server that has the fewest agents logged into it.
# login: ca101,cb101,cc101
$pa=0;
if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) )
{
$phoneSQL = "(";
$phones_auto = explode(',',$phone_login);
$phones_auto_ct = count($phones_auto);
while($pa < $phones_auto_ct)
{
if ($pa > 0)
{$phoneSQL .= " or ";}
$phoneSQL .= "(login='$phones_auto[$pa]' and pass='$phone_pass')";
$pa++;
}
$phoneSQL .= ")";
}
else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";}
$authphone=0;
$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';";
$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';";
if ($DB) {echo "|$stmt|\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
@@ -982,6 +1006,42 @@ if (!$authphone)
}
else
{
### go through the entered phones to figure out which server has fewest agents
### logged in and use that phone login account
if ($pa > 0)
{
$pb=0;
while($pb < $phones_auto_ct)
{
$pb_login='';
$pb_server_ip='';
$pb_count=0;
$pb_log='';
$stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';";
if ($DB) {echo "|$stmtx|\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmtx, $link);
$rowx=mysql_fetch_row($rslt);
$stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';";
if ($DB) {echo "|$stmt|\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|";
if ($pb_count >= $row[0])
{
$pb_count=$row[0];
$pb_server_ip=$rowx[0];
$phone_login=$phones_auto[$pb];
}
$pb++;
}
echo "<!-- Phones balance selection: $phone_login|$pb_server_ip| |$pb_log -->\n";
}
echo "<title>VICIDIAL web client</title>\n";
$stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';";
if ($DB) {echo "|$stmt|\n";}
@@ -1050,6 +1110,23 @@ else
$DBX_port=$row[59];
$enable_sipsak_messages=$row[66];
if ($PhoneSComPIP == '1')
{
if (strlen($computer_ip) < 4)
{
$stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';";
if ($DB) {echo "|$stmt|\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
}
}
if ($PhoneSComPIP == '2')
{
$stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';";
if ($DB) {echo "|$stmt|\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
}
if ($clientDST)
{
$local_gmt = ($local_gmt + $isdst);
+209 -3
View File
@@ -703,6 +703,10 @@ if (isset($_GET["qc_script"])) {$qc_script=$_GET["qc_script"];}
elseif (isset($_POST["qc_script"])) {$qc_script=$_POST["qc_script"];}
if (isset($_GET["ingroup_recording_override"])) {$ingroup_recording_override=$_GET["ingroup_recording_override"];}
elseif (isset($_POST["ingroup_recording_override"])) {$ingroup_recording_override=$_POST["ingroup_recording_override"];}
if (isset($_GET["code"])) {$code=$_GET["code"];}
elseif (isset($_POST["code"])) {$code=$_POST["code"];}
if (isset($_GET["code_name"])) {$code_name=$_GET["code_name"];}
elseif (isset($_POST["code_name"])) {$code_name=$_POST["code_name"];}
if (isset($script_id)) {$script_id= strtoupper($script_id);}
if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);}
@@ -898,6 +902,7 @@ $after_hours_action = ereg_replace("[^0-9a-zA-Z]","",$after_hours_action);
$after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten);
$after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail);
$qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script);
$code = ereg_replace("[^0-9a-zA-Z]","",$code);
### DIGITS and Dots
$server_ip = ereg_replace("[^\.0-9]","",$server_ip);
@@ -1023,6 +1028,7 @@ $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description);
$vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name);
$vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name);
$vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description);
$code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name);
### ALPHA-NUMERIC and underscore and dash and slash and at and dot
$call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group);
@@ -1196,11 +1202,12 @@ $list_mix_container = ereg_replace(";","",$list_mix_container);
# 80302-0232 - added drop_action and transfer to in-group for both in-groups and outbound
# 80310-1504 - added QC settings section to campaign screen
# 80317-2037 - Added Recording override settings to in-groups
# 80414-1505 - More work on QC, added vicidial_qc_codes
#
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time
$admin_version = '2.0.5-125';
$build = '80317-2037';
$admin_version = '2.0.5-126';
$build = '80414-1505';
$STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s");
@@ -1363,6 +1370,7 @@ if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW CONFER
if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";}
if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ADDING VICIDIAL SYSTEM STATUSES";}
if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo "ADDING VICIDIAL STATUS CATEGORY";}
if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "ADDING VICIDIAL QC STATUS CODE";}
if ($ADD==3) {$hh='users'; echo "Modify User";}
if ($ADD==30) {$hh='campaigns'; echo "Campaign Not Allowed";}
if ($ADD==31)
@@ -1410,6 +1418,7 @@ if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL
if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFY VICIDIAL SYSTEM SETTINGS";}
if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL SYSTEM STATUSES";}
if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL STATUS CATEGORY";}
if ($ADD==341111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC STATUS CODE";}
if ($ADD=="4A") {$hh='users'; echo "Modify User - Admin";}
if ($ADD=="4B") {$hh='users'; echo "Modify User - Admin";}
if ($ADD==4) {$hh='users'; echo "Modify User";}
@@ -1437,6 +1446,7 @@ if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL
if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFY VICIDIAL SYSTEM SETTINGS";}
if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL SYSTEM STATUSES";}
if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL STATUS CATEGORIES";}
if ($ADD==441111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC STATUS CODE";}
if ($ADD==5) {$hh='users'; echo "Delete User";}
if ($ADD==51) {$hh='campaigns'; $sh='detail'; echo "Delete Campaign";}
if ($ADD==52) {$hh='campaigns'; $sh='detail'; echo "Logout Agents";}
@@ -3654,6 +3664,14 @@ The VICIDIAL basic web-based lead loader is designed simply to take a lead file
<B>Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report.</B>
<BR><BR><BR><BR>
<B><FONT SIZE=3>VICIDIAL QC STATUS CODES</FONT></B><BR><BR>
<A NAME="vicidial_qc_status_codes">
<BR>
<B>The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.</B>
<BR><BR><BR><BR><BR><BR><BR><BR>
@@ -4223,7 +4241,7 @@ if (strlen($admin_hh) > 1) {
<?}
if (strlen($status_sh) > 1) {
?>
<TR BGCOLOR=<?=$status_color ?>><TD ALIGN=LEFT COLSPAN=10><a href="<? echo $PHP_SELF ?>?ADD=321111111111111"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=<?=$subheader_font_size ?>> System Statuses </a> &nbsp; | &nbsp; <a href="<? echo $PHP_SELF ?>?ADD=331111111111111"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=<?=$subheader_font_size ?>> Status Categories </a></TD></TR>
<TR BGCOLOR=<?=$status_color ?>><TD ALIGN=LEFT COLSPAN=10><a href="<? echo $PHP_SELF ?>?ADD=321111111111111"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=<?=$subheader_font_size ?>> System Statuses </a> &nbsp; | &nbsp; <a href="<? echo $PHP_SELF ?>?ADD=331111111111111"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=<?=$subheader_font_size ?>> Status Categories </a> &nbsp; | &nbsp; <a href="<? echo $PHP_SELF ?>?ADD=341111111111111"><FONT FACE="ARIAL,HELVETICA" COLOR=BLACK SIZE=<?=$subheader_font_size ?>> QC Status Codes </a></TD></TR>
<?}
### Do nothing if admin has no permissions
@@ -6099,6 +6117,48 @@ $ADD=331111111111111;
######################
# ADD=241111111111111 adds the new qc status code to the system
######################
if ($ADD==241111111111111)
{
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
$stmt="SELECT count(*) from vicidial_qc_codes where code='$code';";
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
if ($row[0] > 0)
{echo "<br>QC STATUS CODE NOT ADDED - there is already a qc status code in the system with this name: $row[0]\n";}
else
{
if ( (strlen($code) < 1) or (strlen($code_name) < 2) )
{
echo "<br>QC STATUS CODE NOT ADDED - Please go back and look at the data you entered\n";
echo "<br>code must be between 1 and 8 characters in length\n";
echo "<br>code name must be between 2 and 30 characters in length\n";
}
else
{
echo "<br><B>QC STATUS CODE ADDED: $code_name - $code</B>\n";
$stmt="INSERT INTO vicidial_qc_codes (code,code_name) values('$code','$code_name');";
$rslt=mysql_query($stmt, $link);
### LOG CHANGES TO LOG FILE ###
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|ADD A NEW QC STATUS CODE |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp);
}
}
}
$ADD=341111111111111;
}
######################################################################################################
######################################################################################################
####### 4 series, record modifications submitted and DB is modified, then on to 3 series forms below
@@ -7670,6 +7730,74 @@ $ADD=331111111111111; # go to system settings modification form below
}
######################
# ADD=441111111111111 modify/delete qc status code in the system
######################
if ($ADD==441111111111111)
{
if ($LOGmodify_servers==1)
{
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
if (ereg('delete',$stage))
{
if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) )
{
echo "<br>QC STATUS CODE NOT DELETED - Please go back and look at the data you entered\n";
echo "<br>the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n";
echo "<br>the qc status code needs to be at least 1 characters in length\n";
}
else
{
echo "<br><B>QC STATUS CODE DELETED: $code</B>\n";
$stmt="DELETE FROM vicidial_qc_codes where code='$code';";
$rslt=mysql_query($stmt, $link);
### LOG CHANGES TO LOG FILE ###
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|DELETE QC STATUS CODE |$PHP_AUTH_USER|$ip|$stmt|$stmtA|\n");
fclose($fp);
}
}
}
if (ereg('modify',$stage))
{
if ( (strlen($code) < 1) or (strlen($code_name) < 2) )
{
echo "<br>QC STATUS CODE NOT MODIFIED - Please go back and look at the data you entered\n";
echo "<br>the qc status code needs to be at least 1 characters in length\n";
echo "<br>the qc status code name needs to be at least 1 characters in length\n";
}
else
{
echo "<br><B>QC STATUS CODE MODIFIED: $code</B>\n";
$stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';";
$rslt=mysql_query($stmt, $link);
### LOG CHANGES TO LOG FILE ###
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./admin_changes_log.txt", "a");
fwrite ($fp, "$date|MODIFY QC STATUS CODE |$PHP_AUTH_USER|$ip|$stmt|\n");
fclose($fp);
}
}
}
}
else
{
echo "You do not have permission to view this page\n";
exit;
}
$ADD=341111111111111; # go to qc status code modification form below
}
######################################################################################################
@@ -12842,6 +12970,84 @@ if ($ADD==331111111111111)
######################
# ADD=341111111111111 modify vicidial QC status code
######################
if ($ADD==341111111111111)
{
if ($LOGmodify_servers==1)
{
echo "<TABLE><TR><TD>\n";
echo "<FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2>";
echo "<br><center>\n";
echo "<b>VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: &nbsp; $NWB#vicidial_qc_status_codes$NWE</b><br>\n";
echo "<TABLE width=600 cellspacing=3>\n";
echo "<tr><td>STATUS CODE</td><td>DESCRIPTION</td><td>MODIFY/DELETE</td></tr>\n";
##### go through each QC status code
$stmt="SELECT count(*) from vicidial_qc_codes;";
$rslt=mysql_query($stmt, $link);
$rowx=mysql_fetch_row($rslt);
if ($rowx[0] > 0)
{
$stmt="SELECT code,code_name from vicidial_qc_codes order by code;";
$rslt=mysql_query($stmt, $link);
$statuses_to_print = mysql_num_rows($rslt);
$o=0;
while ($statuses_to_print > $o)
{
$rowx=mysql_fetch_row($rslt);
$o++;
if (eregi("1$|3$|5$|7$|9$", $o))
{$bgcolor='bgcolor="#B9CBFD"';}
else
{$bgcolor='bgcolor="#9BB9FB"';}
echo "<tr $bgcolor><td><form action=$PHP_SELF method=POST>\n";
echo "<input type=hidden name=ADD value=441111111111111>\n";
echo "<input type=hidden name=stage value=modify>\n";
echo "<input type=hidden name=code value=\"$rowx[0]\">\n";
echo "<font size=2><B>$rowx[0]</B></td>\n";
echo "<td><input type=text name=code_name size=20 maxlength=30 value=\"$rowx[1]\"></td>\n";
echo "<td align=center nowrap><font size=1><input type=submit name=submit value=MODIFY> &nbsp; &nbsp; &nbsp; &nbsp; \n";
echo " &nbsp; \n";
if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0]))
{
echo "<DEL>DELETE</DEL>\n";
}
else
{
echo "<a href=\"$PHP_SELF?ADD=441111111111111&status=$rowx[0]&stage=delete\">DELETE</a>\n";
}
echo "</form></td></tr>\n";
}
}
echo "</table>\n";
echo "<br>ADD NEW QC STATUS CODE<BR><form action=$PHP_SELF method=POST>\n";
echo "<input type=hidden name=ADD value=241111111111111>\n";
echo "Status: <input type=text name=code size=9 maxlength=8> &nbsp; \n";
echo "Description: <input type=text name=code_name size=30 maxlength=30><BR>\n";
echo "<input type=submit name=submit value=ADD><BR>\n";
echo "</FORM><br>\n";
}
else
{
echo "You do not have permission to view this page\n";
exit;
}
}
######################
# ADD=550 search form