我正在尝试创建网站的密码保护区域。 我想通过检查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");
}
我不是程序员或受过良好教育的Web开发人员。我知道HTML和CSS,并且在自述文件之后几乎无法使用现成的php和js脚本。 任何帮助将不胜感激。
答案 0 :(得分:0)
将您的登录代码修改为
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");
}
在每页顶部 您必须将查询中的名称存储到会话中