Ответов: 2 Просмотров: 285
|
Добрый вечер!
В заголовке буквой ошибся.
В php я новичок, так что не пинайте сильно.
На главной странице есть 2 кнопки - Авторизация и Регистрация, по нажатию которых гостя перекидывает на соответствующую страницу. Когда юзер вошёл или зарегался, форма скрывается и на всех страницах появляется кнопка выйти, так вот, если её нажать на страницах Авторизация или Регистрация, то всё работает и юзера перекидывает на главную страницу, а если нажать её на главной, то выбивает код, но при этом выход срабатывает, как сделать, чтобы при выходе на главной странице, перекидывало также на главную или на авторизацию? Или реально вообще скриптом по условию скрыть блок страницы?
Вот это выбивает при нажатии "Выход" на главной:
Форма входа на странице Авторизация (Отобразить)PHP:
скопировать код в буфер обмена
<div class="container"> <?PHP if (Auth\User::isAuthorized()): ?> <?PHP else: ?> <form class="form-signin ajax" method="post" action="./ajax.php"> <div class="main-error alert alert-error hide"></div> <h2 class="form-signin-heading" style="font-size: 25px; font-weight:normal; color: #00CCFF">Вход</h2> <input name="username" type="text" class="input-block-level" placeholder="Имя пользователя" autofocus> <input name="password" type="password" class="input-block-level" placeholder="Пароль"> <label class="checkbox"> <input name="remember-me" type="checkbox" value="remember-me" style="margin-top:3px;" checked >Оставаться в системе </label> <input type="hidden" name="act" value="login"> <button class="btn btn-large btn-primary" type="submit">Войти</button> <div class="alert alert-info" style="margin-top:12px;"> <p>Нет аккаунта? <a href="/register.php">Зарегистрируйтесь!</a> </div> </form> <?PHP endif; ?> </div> <!-- /container -->
Кнопка выхода на всех страницах (Отобразить)PHP:
скопировать код в буфер обмена
<?PHP if (Auth\User::isAuthorized()): ?> <h5><form class="form-signin_two ajax" method="post" action="./ajax.php"><h5 style="font-weight: bolder; color: #FFF">Добро пожаловать, <?include "user.php";?></h5> <input type="hidden" name="act" value="logout"> <center><button class="btn btn-large btn-primary" type="submit">Выйти</button></center> </form> <?PHP endif; ?>
Страница, куда перебрасывает после нажатия "Выход" с главной (Отобразить)PHP:
скопировать код в буфер обмена
<?PHP include './classes/Auth.class.php'; include './classes/AjaxRequest.class.php'; if (!empty($_COOKIE['sid'])) { // check session id in cookies } class AuthorizationAjaxRequest extends AjaxRequest { "login" => "login", "logout" => "logout", "register" => "register", ); public function login() { if ($_SERVER["REQUEST_METHOD"] !== "POST") { // Method Not Allowed http_response_code(405); $this->setFieldError("main", "Неизвестный метод"); return; } $username = $this->getRequestParam("username"); $password = $this->getRequestParam("password"); $remember = !!$this->getRequestParam("remember-me"); $this->setFieldError("username", "Введите имя пользователя."); return; } $this->setFieldError("password", "Введите пароль."); return; } $user = new Auth\User(); $auth_result = $user->authorize($username, $password, $remember); if (!$auth_result) { $this->setFieldError("password", "Неверное имя пользователя или пароль."); return; } $this->status = "ok"; $this->setResponse("redirect", "."); $this->message = sprintf("Привет, %s! Права доступа получены.", $username); } public function logout() { if ($_SERVER["REQUEST_METHOD"] !== "POST") { // Method Not Allowed http_response_code(405); $this->setFieldError("main", "Неизвестный метод"); return; } $user = new Auth\User(); $user->logout(); $this->setResponse("redirect", "."); $this->status = "ok"; } public function register() { if ($_SERVER["REQUEST_METHOD"] !== "POST") { // Method Not Allowed http_response_code(405); $this->setFieldError("main", "Неизвестный метод"); return; } $username = $this->getRequestParam("username"); $password1 = $this->getRequestParam("password1"); $password2 = $this->getRequestParam("password2"); $this->setFieldError("username", "Введите имя пользователя."); return; } $this->setFieldError("password1", "Введите пароль."); return; } $this->setFieldError("password2", "Повторите пароль."); return; } if ($password1 !== $password2) { $this->setFieldError("password2", "Пароли не совпадают!"); return; } $user = new Auth\User(); try { $new_user_id = $user->create($username, $password1); } catch (\Exception $e) { $this->setFieldError("username", $e->getMessage()); return; } $user->authorize($username, $password1); $this->message = sprintf("Привет, %s! Спасибо за регистрацию.", $username); $this->setResponse("redirect", "/"); $this->status = "ok"; } } $ajaxRequest = new AuthorizationAjaxRequest($_REQUEST); $ajaxRequest->showResponse(); ?>
|