View file www/admin/admins/add.php

File size: 3.54Kb
<?
define("ADMIN_AUTHORIZATION",1);
include("../../../includes/common.php");

$table = "administrators";

$id = trim($_GET['id']=="")?trim($_POST['id']):trim($_GET['id']);



$CheckObj=new TCheckForm;

//$res=pg_query($DB_LINK, );

/*getting row*/
if($id>0){
	$row = mysql_fetch_object(mysql_query("select * from $table where id=$id"));
	$name = $row->name;
	$email=$row->email;
	$login=$row->login;
	$stat=$row->status;
}
else{
	$id=-1;
}

/* generating fields */
$fields=Array();
if ($id>0) {
    $fields[id]=Array($id,'ID:');
}

$fields = Array_Merge($fields,Array(
	"login" => Array('<input type="text" size=20 class="text_input" maxlength=20>','Логин:',"Введите корректный логин.", '^[A-Za-z0-9_]{1,255}$'),
	"pass" => Array('<input type="password" size=20 class="text_input" maxlength=20>','Пароль:'),
	"c_pass" => Array('<input type="password" size=20 class="text_input" maxlength=20>','<nobr>Подтверждение пароля:</nobr>'),
	"name" => Array('<input type="text" size=60 class="text_input">','Имя:','Введите имя, пожалуйста.'),
	"email" => Array('<input type="text" size=60 class="text_input">','E-mail:','Введите корректный e-mail, пожалуйста.',$REG_EXP[email]),
	"stat" => Array('<select><option value="1">Активный<option value="0">Не активный</select>','Статус:','Укажите статус, пожалуйста.',"^0|1$")
));

if($id>0){
	$fields["custom_content"] = "<strong>Если Вы хотите оставить прежний пароль, оставьте поля для ввода паролей пустыми.</strong>";
}


if(isset($_POST['subm'])){
	reset ($_POST);
	while (list($key, $value) = each ($_POST)) {
		$$key = $value;
	}
	$error = $CheckObj->LocalCheck();
	if($_POST['pass']!=$_POST['c_pass']){
		$error.="Введенные пароли не совпадают.<br>\n";
	}
	elseif($_POST['pass']!=""&&!eregi("^.{3,30}$",$_POST['pass'])){
		$error .= "Пароль должен быть длиной от 3 до 20 символов.<br>\n";
	}
	
	$row = mysql_fetch_object(mysql_query("select * from $table where login='".addslashes($_POST['login'])."'".($id>0?" and id<>$id":"")));
	if($row->id!=""){
		$error .="Админмстратор с таким логином уже существует.<br>\n";
	}
	if (($stat==0)&&($ADMIN_ID==$id)) {
		$_SESSION['ERROR_MSG'] = "Вы не можете удалить самого себя.";
		header("Location: ./index.php?l_pager");
    	exit;
	}
	
	if($error==""){
		
		$arr = Array(
			"name" => addslashes($name),
			"email" => addslashes($email),
			"login" => addslashes($login),
			"status" => $stat
		);
		
		if($id<0){
			$arr["password"] = md5($pass);
		}
		elseif($pass!=""){
			$arr["password"] = md5($pass);
		}
		
		if(($id<0?AddRecord($table,$arr):UpdateRecord($table,$arr,$id)) ){
			$_SESSION['STATUS_MSG'] = "Информация успешно сохранена!";
			header("Location: ./index.php");
			exit;
		}
		else{
			$_SESSION['ERROR_MSG'] = "Ошибка при работе с базой данных.";
			header("Location: ./index.php");
			exit;
		}
	}
}	
$pass="";
$c_pass="";
foreach($fields as $key=>$value){
	$$key=htmlspecialchars(stripslashes($$key));
	$smarty->assign($key,$$key);
}

/* smarty */
$smarty->assign('id',$id);

$page_title = $id>0?"Изменение данных администратора":"Добавление нового администратора";
$smarty->assign('index_page','./index.php?l_pager');
$smarty->assign('page_title',$page_title);
$smarty->assign('top_menu_tpl',"admin_admins_menu.tpl");

$smarty->assign('error',$error);
$smarty->assign('status',$status);

/* table template */
$smarty->assign('fields',$fields);
$smarty->assign('table_width',"95%");
$smarty->assign('main_tpl',"admin_add_form.tpl");
/* display content */
$smarty->display('admin_index.tpl');

?>