Я пытаюсь сделать сайт, на котором нужно авторизоваться, чтобы получить доступ к странице. Все работает нормально, но я хочу предотвратить прямой доступ.
loginserver.php:
<?php
$error=''; //Variable to Store error message;
if (isset($_POST['submit'])){
if (empty($_POST['user']) || empty($_POST['pass'])){
$error = "Username or Password is Invalid";
}
else
{
//Define $user and $pass
$user=$_POST['user'];
$pass=$_POST['pass'];
//Establishing Connection with server by passing server_name, user_id and pass as a patameter
$conn = mysqli_connect("localhost", "root", "");
//Selecting Database
$db = mysqli_select_db($conn, "test");
//sql query to fetch information of registerd user and finds user match.
$query = mysqli_query($conn, "SELECT * FROM userpass WHERE pass='$pass' AND user='$user'");
$rows = mysqli_num_rows($query);
if ($rows == 1){
header("Location: welcome.php"); // Redirecting to other page
}
else
{
$error = "Username of Password is Invalid";
}
mysqli_close($conn); // Closing connection
}
}
?>
Welcome.php
<!doctype html>
<html>
<head>
<meta charset = "UTF-8">
</head>
<body>
<h1>Welcome</h1>
</body>
</html>
читать о php-сессии
вы создали страницу входа, и она РАБОТАЕТ !, но что вы имеете в виду под запретом прямого доступа?
затем включите простой файл (во всех остальных), который проверяет действительный логин (в сеансе) и перенаправляет на login.php, если вы не вошли в систему






In loginserver.php page you have to start session at top of page.
<?php
session_start();
include('conn.php');
// rest of code...
$row = mysql_fetch_array($query);
if ($rows == 1){
$_SESSION['uname'] = $row['user'];
header("Location: welcome.php"); // Redirecting to other page
}
?>
after that check it in welcome.php page check session variable coming from user login page is active or not.
<?php
session_start();
include('conn.php');
if (!isset($_SESSION['uname'])){
header("Location:loginserver.php");
}
?>
Надеюсь, это сработает для вас.