Невозможно защитить страницы / область паролем - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь создать защищенную паролем область сайта. Я хотел бы разрешить доступ, проверив имя пользователя и пароль из таблицы MySql, а затем начать сеанс и разрешить доступ к нескольким страницам, пока сеанс активен. Если кто-то попытается получить прямой доступ к одной из этих страниц, я бы хотел перенаправить их на страницу входа.

Мой код для страницы входа:

     if (isset($_POST['submit']))
        {     
    include("config.php");
    session_start();
    $username=$_POST['username'];
    $password=$_POST['password'];
    $passwordc=md5($password);        

    $query = "SELECT username FROM admin WHERE username='$username' AND password='$passwordc'";
     $result2 = $conn->query($query);

    if ($result2->num_rows != 0) {          

    $_SESSION["username"] = $user;
      echo "<script language='javascript' type='text/javascript'> location.href='admin_view.php' </script>";   
    }else{
      echo "<script type='text/javascript'>alert('User Name Or Password Invalid!')</script>";
    }

    }

Кажется, что работает (правильно перенаправляет, если имя пользователя и пароль совпадают, показывает предупреждение, если нет). Что я не могу сделать, так это защитить мои страницы от показа, если сессия не активна.

   session_start();
if (!$_SESSION["username"]) {
    header("Location: login.php");
}

Я не программист и не полностью образованный веб-разработчик. Я знаю HTML и CSS, и я едва могу использовать готовые скрипты php и js после файлов readme. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 18 января 2019

измените ваш логин как

 if (isset($_POST['submit']))
    {     
   include("config.php");
  $username= $crud->escape_string($_POST['username']);
  $password= $crud->escape_string($_POST['password']);
   $passwordc=md5($password); 
   $query = "SELECT username FROM admin WHERE username='$username' AND 
   password='$passwordc'";
   $result2 = $conn->query($query);
  if ($result2->num_rows != 0) { 
   session_start();         
  $_SESSION["username"] = $user;
  header("Location:admin_view.php");   
}else{
  $Message = urlencode("user name password invalid!");
                      header("Location:login.php?Message=".$Message);
}
   }

если ваши значения успешно сохранены в сеансе, вы можете использовать как

session_start();
if(!isset($_SESSION['username'])) 
  {
  header("Location: login.php");  
  }

на каждой странице вверху Вы должны сохранить имя из запроса в сеансе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...