I am certainly not a programmer, but there is a problem with my department website and I have been doing all my best trying to fix it. I haven't got any luck so far.
Everything works fine, except for the "add account" function. When you hit that button, it only says "loading" and nothing happens. I am not sure if it's a quick fix or not, but i've spent so much time on it that I just got sick just by looking at it. Please help if you could. Thank you in advance.
<?php
define("System", true);
include_once '../include/function.inc.php';
include_once '../include/template.inc.php';
global $configs;
$fnc = new BTMainFunction();
if($fnc->getSession("UserRole")!="Administrator"){
header("Location: login.php?accman.php");
exit;
}
$tpl = new template($configs->adminThemePath."/".$configs->adminDefaultTheme);
$tpl->loadTheme("index.html");
$tpl->addValue("{TITLE}", "BT's Portal - Administrator");
$tpl->addValue("{HEADER}", "Administrator Panel");
$tpl->addValue("{SUB_HEADER}", "<a href=\"admin.php\">Control center</a> >> Account Manager");
$tpl->addValue("{SEARCH_FORM}", "Hello <b>{$fnc->getSession("CurrUsername")}</b>. <a href=\"logout.php\">Log out</a>");
$tpl->appendValue("{SEARCH_FORM}", "<br><a href=\"admin.php\">Exit to main menu</a>");
$tpl->addValue("{HEAD}", <<<EOT
<script type="text/javascript" src="../include/highslide/highslide-with-html.js"></script>
<link rel="stylesheet" type="text/css" href="../include/highslide/highslide.css" />
EOT
);
$tpl->addValueFromFile("{DESCRIPTION}", "description.tpl", <<<EOT
<div class="button" onclick="showHSCreate(this)" title="Add account"><img src="{$configs->adminThemePath}/{$configs->adminDefaultTheme}/images/add.gif" height="32" alt="Add account"><br>Add account</div><br><br>
EOT
);
$script=<<<EOT
hs.graphicsDir = '../include/highslide/graphics/';
hs.outlineType = 'rounded-white';
hs.showCredits = false;
hs.wrapperClassName = 'draggable-header';
var isaccexist = false;
var cnt = 0;
var cntrequest = 0;
function getxmlHttp(){
try{
// Firefox, Opera 8.0+, Safari
return new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Your browser does not support AJAX!\\n You cannot complete the test");
return null;
}
}
}
}
function ajaxRequest(data)
{
var xmlHttp = getxmlHttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
var response = xmlHttp.responseText;
if(response.indexOf('refresh') != -1)
window.location.reload();
else
alert(response);
}
};
xmlHttp.open("GET","ajax.php?" + data,true);
xmlHttp.send(null);
}
function ajaxCheckAcc(what)
{
var xmlHttp = getxmlHttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
if(xmlHttp.responseText.indexOf('OK')!=-1){
document.getElementById('accmess').innerHTML = "<br><font color=\\"green\\">This username is available</font>";
isaccexist = false;
}
else{
document.getElementById('accmess').innerHTML = "<br><font color=\\"red\\">This username has been used</font>";
isaccexist=true;
}
}
};
xmlHttp.open("GET","ajax.php?action=checkaccount&uname=" + encodeURIComponent(what.value),true);
xmlHttp.send(null);
}
function showHSCreate(sender){
isaccexist = false;
document.getElementById('passmess').innerHTML = "";
document.getElementById('btnaction').value="Create";
document.getElementById('accid').innerHTML = "NewID";
return hs.htmlExpand(sender, {contentId: 'menuedit',headingText: '.......................Create account.....................' });
}
function showHSEditor(sender, accid){
isaccexist = false;
document.getElementById('passmess').innerHTML = "<br>If you don't wanna change<br> password leave it blank";
document.getElementById('btnaction').value="Edit";
if(document.getElementById('u' + accid + 'name')){
document.getElementById('accuname').value = document.getElementById('u' + accid + 'name').innerHTML;
}
if(document.getElementById('u' + accid + 'role')){
document.getElementById('accroleid').value = document.getElementById('u' + accid + 'role').value;
}
if(document.getElementById('u' + accid + 'fname')){
document.getElementById('accfname').value = document.getElementById('u' + accid + 'fname').innerHTML;
}
if(document.getElementById('u' + accid + 'email')){
document.getElementById('accemail').value = document.getElementById('u' + accid + 'email').innerHTML;
}
document.getElementById('accid').innerHTML = accid;
return hs.htmlExpand(sender, {contentId: 'menuedit',headingText: '........................Edit account......................' });
}
function deleteaccount(sender, accid){
if(document.getElementById('u' + accid + 'name')){
if(confirm("You are going to delete account: '" + document.getElementById('u' + accid + 'name').innerHTML + "' Are you sure?")){
if(accid==1)
return alert('You cannot delete this admin account');
ajaxRequest("action=deleteaccount&accid=" + accid);
}
}
}
function HSE_Close(action){
if(action=="Create"){
var accuname = document.getElementById('accuname').value;
var accroleid = document.getElementById('accroleid').value;
var accpass = document.getElementById('accpass').value;
var accfname = document.getElementById('accfname').value;
var accemail = document.getElementById('accemail').value;
if(accuname==""){
alert('Username cannot be blank');
document.getElementById('accuname').select();
return false;
}
if(isaccexist){
alert('The account you enter has been used. Please enter another');
document.getElementById('accuname').select();
return false;
}
if(accpass==""){
alert('Password cannot be blank');
document.getElementById('accpass').select();
return false;
}
if(accemail!=""){
if(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(accemail)==false){
alert("Invalid email address");
document.getElementById('accemail').select();
return false;
}
}
ajaxRequest("action=createaccount&accuname=" + encodeURIComponent(accuname) +
"&accroleid=" + encodeURIComponent(accroleid) +
"&accpass=" + encodeURIComponent(accpass) +
"&accfname=" + encodeURIComponent(accfname) +
"&accemail=" + encodeURIComponent(accemail));
}
if(action=="Edit"){
var accid = document.getElementById('accid').innerHTML;
var accuname = document.getElementById('accuname').value;
var accroleid = document.getElementById('accroleid').value;
var accpass = document.getElementById('accpass').value;
var accfname = document.getElementById('accfname').value;
var accemail = document.getElementById('accemail').value;
if(accuname==""){
alert('Username cannot be blank');
document.getElementById('accuname').select();
return false;
}
if(isaccexist){
alert('The account you enter has been used. Please enter another');
document.getElementById('accuname').select();
return false;
}
if(accemail!=""){
if(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(accemail)==false){
alert("Invalid email address");
document.getElementById('accemail').select();
return false;
}
}
if(accid==1 && accroleid!=1){
alert("This is primary admin account. You cannot change role");
document.getElementById('accroleid').value = 1;
return;
}
ajaxRequest("action=editaccount&accid=" + encodeURIComponent(accid) +
"&accuname=" + encodeURIComponent(accuname) +
"&accroleid=" + encodeURIComponent(accroleid) +
"&accpass=" + encodeURIComponent(accpass) +
"&accfname=" + encodeURIComponent(accfname) +
"&accemail=" + encodeURIComponent(accemail));
}
hs.close();
if(action=="none") window.location.reload();
}
function selectAll(){
var x = document.getElementsByName("checkboxes");
if(x && x.length>0){
for(i=0;i<x.length;i++){
if(x.checked)
x.checked = false;
else
x.checked = true;
}
}
}
function deleteall()
{
var x = document.getElementsByName("checkboxes");
var acc="";
cnt = 0;
if(x && x.length>0){
for(i=0;i<x.length;i++){
if(x.checked){
if(document.getElementById('u' + x.value + 'name'))
acc += "'" + document.getElementById('u' + x.value + 'name').innerHTML + "' ";
}
}
if(acc!="" && prompt("To confirm delete please type 'YeS' (case sensitive):" + acc,"NO")=="YeS"){
document.getElementById('ajaxoutput').innerHTML = "Result:<br>";
for(i=0;i<x.length;i++){
if(x.checked){
cntrequest++;
massAjax("action=deleteaccount&accid=" + x.value,document.getElementById('u' + x.value + 'name').innerHTML);
}
}
}
}
}
function masschangerole()
{
var x = document.getElementsByName("checkboxes");
var acc="";
cnt = 0;
if(x && x.length>0){
for(i=0;i<x.length;i++){
if(x.checked){
if(document.getElementById('u' + x.value + 'name'))
acc += "'" + document.getElementById('u' + x.value + 'name').innerHTML + "' ";
}
}
if(acc!="" && prompt("To confirm change role please type 'YeS' (case sensitive):" + acc,"NO")=="YeS"){
document.getElementById('ajaxoutput').innerHTML = "Result:<br>";
for(i=0;i<x.length;i++){
if(x.checked){
cntrequest++;
massAjax("action=changeaccrole&accid=" + x.value + "&roleid=" + document.getElementById('massroleid').value,document.getElementById('u' + x.value + 'name').innerHTML);
}
}
}
}
}
function massAjax(data,text){
var xmlHttp = getxmlHttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
cnt++;
var pos = xmlHttp.responseText.indexOf("refresh");
if(pos>-1 && pos < 10)
document.getElementById('ajaxoutput').innerHTML += "Account " + text + " successfully!<br>";
else
document.getElementById('ajaxoutput').innerHTML += "Account " + text + " failed! " + xmlHttp.responseText + "<br>";
if(cnt>=cntrequest)
document.getElementById('ajaxoutput').innerHTML += "Click <a href=\\"javascript:window.location.reload()\\">here</a> to reload";
}
};
xmlHttp.open("GET","ajax.php?" + data,true);
xmlHttp.send(null);
}
EOT;
$tpl->addValue("{SCRIPT}", $script);
$rolelist = $fnc->listAccountRole();
$content=<<<EOT
<div class="highslide-html-content" id="menuedit">
<br>
<table>
<tr>
<td>Acc ID</td><td id="accid"></td>
</tr>
<tr>
<td>Username*<br><i>Max length:25 characters</i></td><td><input type="text" id="accuname" size="26" maxlength="25" onchange="ajaxCheckAcc(this);"><span id="accmess"><span></td>
</tr>
<tr>
<td>Role*</td>
<td>
<select id="accroleid" style="width:100%">
$rolelist
</select>
</td>
</tr>
<tr>
<td>Password*<br><i>Maxlength:50 characters.</i></td><td><input type="text" id="accpass" size="26" maxlength="50"><span id="passmess"><span></td>
</tr>
<tr>
<td>Fullname*</td><td><input type="text" id="accfname" size="26" maxlength="50"></td>
</tr>
<tr>
<td>Email</td><td><input type="text" id="accemail" size="26" maxlength="100"></td>
</tr>
<tr>
<td></td>
<td>
<input type="button" value="" id="btnaction" onclick="HSE_Close(this.value);">
<input type="button" value="Close" id="btnClose" onclick="HSE_Close('none');">
</td>
</tr>
</table>
(*) field are require.
<br><br>
</div>
EOT;
$page = "1";
$uname = "";
if(isset($_GET['page'])){
$page = $_GET['page'];
}
if(isset($_GET['uname'])){
$uname = $_GET['uname'];
}
$content .= "<center>Search username<input type=\"text\" id=\"uname\" value=\"$uname\"><input type=\"button\" value=\"Search\" onclick=\"window.location.href='?uname=' + encodeURIComponent(document.getElementById('uname').value)\"></center>";
$content .= $fnc->listAccount($page,$uname);
$tpl->addValue("{CONTENT}", $content);
echo $tpl->compileTheme();
?>
<?php
define("System", true);
include_once '../include/function.inc.php';
include_once '../include/template.inc.php';
global $configs;
$fnc = new BTMainFunction();
if($fnc->getSession("UserRole")!="Administrator"){
header("Location: login.php?accman.php");
exit;
}
$tpl = new template($configs->adminThemePath."/".$configs->adminDefaultTheme);
$tpl->loadTheme("index.html");
$tpl->addValue("{TITLE}", "BT's Portal - Administrator");
$tpl->addValue("{HEADER}", "Administrator Panel");
$tpl->addValue("{SUB_HEADER}", "<a href=\"admin.php\">Control center</a> >> Account Manager");
$tpl->addValue("{SEARCH_FORM}", "Hello <b>{$fnc->getSession("CurrUsername")}</b>. <a href=\"logout.php\">Log out</a>");
$tpl->appendValue("{SEARCH_FORM}", "<br><a href=\"admin.php\">Exit to main menu</a>");
$tpl->addValue("{HEAD}", <<<EOT
<script type="text/javascript" src="../include/highslide/highslide-with-html.js"></script>
<link rel="stylesheet" type="text/css" href="../include/highslide/highslide.css" />
EOT
);
$tpl->addValueFromFile("{DESCRIPTION}", "description.tpl", <<<EOT
<div class="button" onclick="showHSCreate(this)" title="Add account"><img src="{$configs->adminThemePath}/{$configs->adminDefaultTheme}/images/add.gif" height="32" alt="Add account"><br>Add account</div><br><br>
EOT
);
$script=<<<EOT
hs.graphicsDir = '../include/highslide/graphics/';
hs.outlineType = 'rounded-white';
hs.showCredits = false;
hs.wrapperClassName = 'draggable-header';
var isaccexist = false;
var cnt = 0;
var cntrequest = 0;
function getxmlHttp(){
try{
// Firefox, Opera 8.0+, Safari
return new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Your browser does not support AJAX!\\n You cannot complete the test");
return null;
}
}
}
}
function ajaxRequest(data)
{
var xmlHttp = getxmlHttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
var response = xmlHttp.responseText;
if(response.indexOf('refresh') != -1)
window.location.reload();
else
alert(response);
}
};
xmlHttp.open("GET","ajax.php?" + data,true);
xmlHttp.send(null);
}
function ajaxCheckAcc(what)
{
var xmlHttp = getxmlHttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
if(xmlHttp.responseText.indexOf('OK')!=-1){
document.getElementById('accmess').innerHTML = "<br><font color=\\"green\\">This username is available</font>";
isaccexist = false;
}
else{
document.getElementById('accmess').innerHTML = "<br><font color=\\"red\\">This username has been used</font>";
isaccexist=true;
}
}
};
xmlHttp.open("GET","ajax.php?action=checkaccount&uname=" + encodeURIComponent(what.value),true);
xmlHttp.send(null);
}
function showHSCreate(sender){
isaccexist = false;
document.getElementById('passmess').innerHTML = "";
document.getElementById('btnaction').value="Create";
document.getElementById('accid').innerHTML = "NewID";
return hs.htmlExpand(sender, {contentId: 'menuedit',headingText: '.......................Create account.....................' });
}
function showHSEditor(sender, accid){
isaccexist = false;
document.getElementById('passmess').innerHTML = "<br>If you don't wanna change<br> password leave it blank";
document.getElementById('btnaction').value="Edit";
if(document.getElementById('u' + accid + 'name')){
document.getElementById('accuname').value = document.getElementById('u' + accid + 'name').innerHTML;
}
if(document.getElementById('u' + accid + 'role')){
document.getElementById('accroleid').value = document.getElementById('u' + accid + 'role').value;
}
if(document.getElementById('u' + accid + 'fname')){
document.getElementById('accfname').value = document.getElementById('u' + accid + 'fname').innerHTML;
}
if(document.getElementById('u' + accid + 'email')){
document.getElementById('accemail').value = document.getElementById('u' + accid + 'email').innerHTML;
}
document.getElementById('accid').innerHTML = accid;
return hs.htmlExpand(sender, {contentId: 'menuedit',headingText: '........................Edit account......................' });
}
function deleteaccount(sender, accid){
if(document.getElementById('u' + accid + 'name')){
if(confirm("You are going to delete account: '" + document.getElementById('u' + accid + 'name').innerHTML + "' Are you sure?")){
if(accid==1)
return alert('You cannot delete this admin account');
ajaxRequest("action=deleteaccount&accid=" + accid);
}
}
}
function HSE_Close(action){
if(action=="Create"){
var accuname = document.getElementById('accuname').value;
var accroleid = document.getElementById('accroleid').value;
var accpass = document.getElementById('accpass').value;
var accfname = document.getElementById('accfname').value;
var accemail = document.getElementById('accemail').value;
if(accuname==""){
alert('Username cannot be blank');
document.getElementById('accuname').select();
return false;
}
if(isaccexist){
alert('The account you enter has been used. Please enter another');
document.getElementById('accuname').select();
return false;
}
if(accpass==""){
alert('Password cannot be blank');
document.getElementById('accpass').select();
return false;
}
if(accemail!=""){
if(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(accemail)==false){
alert("Invalid email address");
document.getElementById('accemail').select();
return false;
}
}
ajaxRequest("action=createaccount&accuname=" + encodeURIComponent(accuname) +
"&accroleid=" + encodeURIComponent(accroleid) +
"&accpass=" + encodeURIComponent(accpass) +
"&accfname=" + encodeURIComponent(accfname) +
"&accemail=" + encodeURIComponent(accemail));
}
if(action=="Edit"){
var accid = document.getElementById('accid').innerHTML;
var accuname = document.getElementById('accuname').value;
var accroleid = document.getElementById('accroleid').value;
var accpass = document.getElementById('accpass').value;
var accfname = document.getElementById('accfname').value;
var accemail = document.getElementById('accemail').value;
if(accuname==""){
alert('Username cannot be blank');
document.getElementById('accuname').select();
return false;
}
if(isaccexist){
alert('The account you enter has been used. Please enter another');
document.getElementById('accuname').select();
return false;
}
if(accemail!=""){
if(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(accemail)==false){
alert("Invalid email address");
document.getElementById('accemail').select();
return false;
}
}
if(accid==1 && accroleid!=1){
alert("This is primary admin account. You cannot change role");
document.getElementById('accroleid').value = 1;
return;
}
ajaxRequest("action=editaccount&accid=" + encodeURIComponent(accid) +
"&accuname=" + encodeURIComponent(accuname) +
"&accroleid=" + encodeURIComponent(accroleid) +
"&accpass=" + encodeURIComponent(accpass) +
"&accfname=" + encodeURIComponent(accfname) +
"&accemail=" + encodeURIComponent(accemail));
}
hs.close();
if(action=="none") window.location.reload();
}
function selectAll(){
var x = document.getElementsByName("checkboxes");
if(x && x.length>0){
for(i=0;i<x.length;i++){
if(x.checked)
x.checked = false;
else
x.checked = true;
}
}
}
function deleteall()
{
var x = document.getElementsByName("checkboxes");
var acc="";
cnt = 0;
if(x && x.length>0){
for(i=0;i<x.length;i++){
if(x.checked){
if(document.getElementById('u' + x.value + 'name'))
acc += "'" + document.getElementById('u' + x.value + 'name').innerHTML + "' ";
}
}
if(acc!="" && prompt("To confirm delete please type 'YeS' (case sensitive):" + acc,"NO")=="YeS"){
document.getElementById('ajaxoutput').innerHTML = "Result:<br>";
for(i=0;i<x.length;i++){
if(x.checked){
cntrequest++;
massAjax("action=deleteaccount&accid=" + x.value,document.getElementById('u' + x.value + 'name').innerHTML);
}
}
}
}
}
function masschangerole()
{
var x = document.getElementsByName("checkboxes");
var acc="";
cnt = 0;
if(x && x.length>0){
for(i=0;i<x.length;i++){
if(x.checked){
if(document.getElementById('u' + x.value + 'name'))
acc += "'" + document.getElementById('u' + x.value + 'name').innerHTML + "' ";
}
}
if(acc!="" && prompt("To confirm change role please type 'YeS' (case sensitive):" + acc,"NO")=="YeS"){
document.getElementById('ajaxoutput').innerHTML = "Result:<br>";
for(i=0;i<x.length;i++){
if(x.checked){
cntrequest++;
massAjax("action=changeaccrole&accid=" + x.value + "&roleid=" + document.getElementById('massroleid').value,document.getElementById('u' + x.value + 'name').innerHTML);
}
}
}
}
}
function massAjax(data,text){
var xmlHttp = getxmlHttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
cnt++;
var pos = xmlHttp.responseText.indexOf("refresh");
if(pos>-1 && pos < 10)
document.getElementById('ajaxoutput').innerHTML += "Account " + text + " successfully!<br>";
else
document.getElementById('ajaxoutput').innerHTML += "Account " + text + " failed! " + xmlHttp.responseText + "<br>";
if(cnt>=cntrequest)
document.getElementById('ajaxoutput').innerHTML += "Click <a href=\\"javascript:window.location.reload()\\">here</a> to reload";
}
};
xmlHttp.open("GET","ajax.php?" + data,true);
xmlHttp.send(null);
}
EOT;
$tpl->addValue("{SCRIPT}", $script);
$rolelist = $fnc->listAccountRole();
$content=<<<EOT
<div class="highslide-html-content" id="menuedit">
<br>
<table>
<tr>
<td>Acc ID</td><td id="accid"></td>
</tr>
<tr>
<td>Username*<br><i>Max length:25 characters</i></td><td><input type="text" id="accuname" size="26" maxlength="25" onchange="ajaxCheckAcc(this);"><span id="accmess"><span></td>
</tr>
<tr>
<td>Role*</td>
<td>
<select id="accroleid" style="width:100%">
$rolelist
</select>
</td>
</tr>
<tr>
<td>Password*<br><i>Maxlength:50 characters.</i></td><td><input type="text" id="accpass" size="26" maxlength="50"><span id="passmess"><span></td>
</tr>
<tr>
<td>Fullname*</td><td><input type="text" id="accfname" size="26" maxlength="50"></td>
</tr>
<tr>
<td>Email</td><td><input type="text" id="accemail" size="26" maxlength="100"></td>
</tr>
<tr>
<td></td>
<td>
<input type="button" value="" id="btnaction" onclick="HSE_Close(this.value);">
<input type="button" value="Close" id="btnClose" onclick="HSE_Close('none');">
</td>
</tr>
</table>
(*) field are require.
<br><br>
</div>
EOT;
$page = "1";
$uname = "";
if(isset($_GET['page'])){
$page = $_GET['page'];
}
if(isset($_GET['uname'])){
$uname = $_GET['uname'];
}
$content .= "<center>Search username<input type=\"text\" id=\"uname\" value=\"$uname\"><input type=\"button\" value=\"Search\" onclick=\"window.location.href='?uname=' + encodeURIComponent(document.getElementById('uname').value)\"></center>";
$content .= $fnc->listAccount($page,$uname);
$tpl->addValue("{CONTENT}", $content);
echo $tpl->compileTheme();
?>