2016-01-30 2 views
2

Я пытаюсь создать сайт, на котором администратор может загружать книги через портал администратора. Я сделал успешный вход в систему, но когда пользователь вошел в систему и нажал кнопку «Назад» (в браузере), страница формы снова появляется, и это происходит, когда они выходят из системы и нажимают кнопку «Назад», страница, которая должна появляться, появляется только после входа в систему. Я много искал в Интернете, но все напрасно. Пожалуйста, сделайте предложение об этом.Как предотвратить переход браузера на страницу формы входа в систему после входа пользователя в систему?

<?php 

session_start(); 

$username = $_POST['username']; 
$password = $_POST['password']; 

if ($username && $password) { 
    $connect = mysqli_connect("localhost", "root", "") or die ("Could'nt connect to database!"); //database connection 
    mysqli_select_db($connect, "mahmood_faridi") or die ("Could'nt find database"); 
    $query = ("SELECT * FROM user WHERE username= '$username'"); 
    $result = mysqli_query($connect, $query); 
    $numrows = mysqli_num_rows($result); 

    if ($numrows !== 0) { 
     while ($row = mysqli_fetch_assoc($result)) { 
      $dbusername = $row['username']; 
      $dbpassword = $row['password']; 
     } 
     if ($username == $dbusername && $password == $dbpassword) { 
      $_SESSION['username'] = $username; 
      $_SESSION['password'] = $password; 
      header('location: help.php'); //another file to send request to the next page if values are correct. 

      exit(); 
     } else { 
      echo "Password Incorrect"; 
     } 
     exit(); 
    } else { 
     die("That user doesn't exists!"); 
    } 
} else { 
    die("Please enter a username and password"); 
} 
?> 
+0

Ваш код полностью искажен! Пожалуйста, исправьте. Таким образом, это не понятно. – fusion3k

+0

Ну, я новичок здесь и не знаю, что такое исправление? Пожалуйста, уточните? @ fusion3k – Anonymous

+2

Несвязанные, но важные: вы не должны хранить пароли в виде открытого текста. См. 'Password_hash'. Также нет необходимости хранить пароль пользователя в сеансе; хешированный или нет. –

ответ

4

На экране входа в PHP, перед визуализацией точки зрения, вы должны проверить, если пользователь уже вошел в систему, и перенаправить на страницу по умолчанию пользователь должен смотреть после того, как вошли в систему.

Аналогично, на экранах, требующих входа в систему, вам необходимо проверить, не был ли пользователь зарегистрирован, а если нет, перенаправите их на экран входа в систему.

// on login screen, redirect to dashboard if already logged in 
if(isset($_SESSION['username'])){ 
    header('location:dashboard.php'); 
} 


// on all screens requiring login, redirect if NOT logged in 
if(!isset($_SESSION['username'])){ 
    header('location:login.php'); 
} 
+0

мой файл для входа - это полный html-файл. Код, который я опубликовал, находится в файле check_login. Скажите, пожалуйста, где использовать этот код? – Anonymous

+0

Вы должны преобразовать экран входа в php-файл - ему нужно немного логики на стороне сервера, чтобы проверить, вошел ли пользователь в систему. Он может быть таким же, как ваш текущий html-файл, за исключением расширения .php и этого бита php наверху sbecker

+0

Возможно, вам также потребуется добавить session_start(); перед утверждением if. – sbecker

0

Мое предложение: Войти должен произойти, когда пользователи нажимают некоторые ссылки/кнопки

После сторона Логина сервера имеет место, использовать РНР функцию заголовок («URL») для перенаправления пользователя url это должно быть. (будьте осторожны, чтобы не повторять ничего, иначе перенаправление не произойдет)

[Edit] Вы говорите, что у вас есть первый файл для входа html один, это хорошо для меня, но вы говорите, что он перенаправляет на что угодно, тогда вы используя перенаправление с клиентской стороны. На мой взгляд, вы не должны использовать перенаправление на стороне клиента для входа. Вероятно, это вызывает путаницу.

+0

На самом деле я искал способ избежать этого. Я достаточно успешна в своей первой части, начиная с входа в систему, но теперь, когда я выхожу из системы и нажимаю кнопку «Назад», она перемещается с входа на предыдущую страницу. – Anonymous

Смежные вопросы