只有登录用户才能访问PHP登录页面?

时间:2014-05-15 14:44:35

标签: php

一直在看其中的几个并且没有找到任何运气 - 我确信这是我正在做的事情。我有一个基本的HTML登录页面,它调用login.php。

HTML:

<?php
    session_start();
?>

<form action="login.php" method="POST">
    <div align="center">Username: 
        <input type="text" name="uname">
        <br><br>
        Password: 
        <input type="password" name="pass">
        <br><br>
        <input type="submit" value="login" name="submit">
    </div>
</form>

的login.php:

<?php

require ('sql_connect.php');
if (isset($_POST['submit'])){
$username=mysql_escape_string($_POST['uname']);
$password=mysql_escape_string($_POST['pass']);
if (!$_POST['uname'] | !$_POST['pass'])
 {
echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('You did not complete all of the required fields')
        window.location.href='htmlogin.html'
        </SCRIPT>");
exit();
     }
$sql= mysql_query("SELECT * FROM `members` WHERE `username` = '$username' AND `password` = '$password'");
$row= mysql_fetch_assoc($sql);
$url=$row['defaultpage'];

if(mysql_num_rows($sql) > 0)
{
echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('Login Succesfully!')
        window.location.href='htmllogin.html'
        </SCRIPT>");
        header($url);
exit();
}
else{
echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('Wrong username password combination.Please re-enter.')
        window.location.href='htmllogin.html'
        </SCRIPT>");
exit();
}
}
else{
}
?>

我已经将表单连接到数据库,并让我登录(我已经设置了数据库条目,因此根据登录的人重定向到特定的URL。)

我的问题是,我不希望这个特定的网址可以访问未登录的人。我尝试了几个不同的选项,使用session_start();,但显然我要么输入正确的信息,或者在正确的页面上进行。以下是我目前在登录页面上登录后要发送给的特定用户的信息:

<?php
session_start();
if(!isset($_SESSION['username'])){
    header("Location:http://mywebsite.com/htmllogin.html")
}
?>

<html>
<head>
</head>
    <body>
        <div id="div1">
            test
        </div>
    </body>
</html>

我的想法是,在目标网页中,如果它与会话不匹配,它会将用户重定向到原始的html登录页面。  任何帮助......谢谢!

1 个答案:

答案 0 :(得分:0)

一旦您的用户经过验证并且应该登录,您需要创建$ _SESSION变量。

<?php
 $_SESSION['username'] = $_POST['uname'];
?>

上面的代码应放在login.php中的下一个if结构中:

if(mysql_num_rows($sql) > 0)
{
$_SESSION['username'] = $_POST['uname'];
echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('Login Succesfully!')
        window.location.href='htmllogin.html'
        </SCRIPT>");
        header($url);
exit();
}