вот моя страница входа, после входа в систему, обычные игроки идут на home.php. но мне нужно, если бы имя пользователя и пароль были равны со специальным игроком, например, этим пользователем:
затем переходит к adminpage.php
и код:
<?PHP require_once("./include/membersite_config.php"); if(isset($_POST['submitted'])) { if($fgmembersite->Login()) { $fgmembersite->RedirectToURL("home.php"); } } <!-- Form Code Start --> <div id='fg_membersite'> <form id='login' action='<?php echo $fgmembersite->GetSelfScript(); ?>' method='post' accept-charset='UTF-8'> <fieldset > <legend>ورود</legend> <input type='hidden' name='submitted' id='submitted' value='1'/> <div class='short_explanation' dir="rtl">فیلدهای الزامی *</div> <div><span class='error'><?php echo $fgmembersite->GetErrorMessage(); ?></span></div> <div class='container' dir="rtl"> <label for='username' >:نام کاربری *</label><br/> <input type='text' name='username' id='username' value='<?php echo $fgmembersite->SafeDisplay('username') ?>' maxlength="50" /><br/> <span id='login_username_errorloc' class='error'></span> </div> <div class='container' dir="rtl"> <label for='password' >:کلمه عبور *</label><br/> <input type='password' name='password' id='password' maxlength="50" /><br/> <span id='login_password_errorloc' class='error'></span> </div> <div class='container'> <input type='submit' name='Submit' value='ورود' /> </div> <!-- <div class='short_explanation'><a href='reset-pwd-req.php'>Forgot Password?</a></div> </fieldset> --> </form> <!-- client-side Form Validations: Uses the excellent form validation script from JavaScript-coder.com--> <script type='text/javascript'> // <![CDATA[ var frmvalidator = new Validator("login"); frmvalidator.EnableOnPageErrorDisplay(); frmvalidator.EnableMsgsTogether(); frmvalidator.addValidation("username","req","لطفا نام کاربریتان را وارد نمایید"); frmvalidator.addValidation("password","req","لطفا رمز عبورتان را وارد نمایید"); // ]]> </script> <p dir="rtl"><a href="confirmreg.php">تایید ثبت نام</a></p> </div> <!-- Form Code End (see html-form-guide.com for more info.) -->
вот мои функции в fg_membersite.php
function Login() { if(empty($_POST['username'])) { $this->HandleError("UserName is empty!"); return false; } if(empty($_POST['password'])) { $this->HandleError("Password is empty!"); return false; } $username = trim($_POST['username']); $password = trim($_POST['password']); if(!isset($_SESSION)){ session_start(); } if(!$this->CheckLoginInDB($username,$password)) { return false; } $_SESSION[$this->GetLoginSessionVar()] = $username; return true; }
это таблица users (tablesite)
пытаться:
if(isset($_POST['submitted'])) { if($fgmembersite->Login()){ if($fgmembersite->UserFullName() == "sajad"){ $fgmembersite->RedirectToURL("adminpage.php"); }else{ $fgmembersite->RedirectToURL("home.php"); } } }
Если вы можете и не прочь сделать это, я бы предложил добавить таблицу в db, которая содержит различные пользовательские роли, и новое поле в таблице, показанной выше, в качестве ключа к новой таблице. С назначенной ролью проще изменять, какие пользователи получают, чтобы увидеть, какой контент – то есть: администраторы получают ссылки на редактирование, зарегистрированные пользователи получают новые страницы и т. Д.
create table `roles` ( `id` tinyint(3) unsigned not null auto_increment, `role` varchar(16) not null, primary key (`id`) ) collate='utf8mb4_persian_ci' engine=innodb; insert into `roles` (`id`, `role`) values (1, 'administrator'), (2, 'special guest'), (3, 'guest'), (4, 'public'); alter table `tablesite` add column `role` tinyint unsigned not null default '3' after `id_user`, add index `role` (`role`); alter table `tablesite` add constraint `fk_usr_role` foreign key (`role`) references `roles` (`id`) on update cascade on delete cascade;
function Login() { if(empty($_POST['username'])) { $this->HandleError("UserName is empty!"); return false; } if(empty($_POST['password'])) { $this->HandleError("Password is empty!"); return false; } $username = trim($_POST['username']); $password = trim($_POST['password']); if(!isset($_SESSION)){ session_start(); } if(!$this->CheckLoginInDB($username,$password)) { return false; } if($username == "special_user_name") // redirect to adminlogin.php $_SESSION[$this->GetLoginSessionVar()] = $username; return true; }