一直在看幾個這些,並沒有找到任何運氣 - 我敢肯定這是簡單的我正在做。我有一個基本的HTML登錄頁面,它調用login.php。只有登錄的用戶才能訪問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{
}
?>
我有sucesfully連接到數據庫的形式,將讓我登錄(我曾與一個數據庫條目得到它的設置所以它重定向到一個特定的URL基於誰登錄)
我的問題是,我不希望特定的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登錄頁面。 任何幫助......謝謝!
是該第二碼塊你的login.php文件?你在哪裏設置你的用戶名密鑰$ _SESSION? – WillardSolutions
你的php有一個致命的錯誤。您應該在header()函數後面添加一個';'。 –
你確定你設置了會話變量'username'嗎? – Gudgip