簡體   English   中英

PHP登錄頁面僅登錄的用戶可以訪問?

[英]PHP login page only accessible to user that logged in?

一直在查看其中的幾個,卻沒有發現任何運氣-我敢肯定,這是我正在做的簡單事情。 我有一個基本的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。)

我的問題是,我不想讓未登錄的人訪問該特定的URL。我使用session_start();嘗試了幾個不同的選項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登錄頁面。 任何幫助...謝謝!

驗證用戶並登錄后,您需要創建$ _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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM