當我第一次打開登錄頁面時,即使我使用了正確的用戶名和密碼,登錄頁面也沒有被重定向到主頁。但在第二次登錄時,它正在被正確地重定向到主頁。 login.php的代碼如下所示。登錄頁面無法運作
<?php
session_start();
$_SESSION['login_user'] = false;
?>
的login.php的休息是簡單的HTML和登錄表單數據發送到validate.php 其中validate.php看起來是這樣的。
<?php
session_start();
$username="";
$password="";
$usernameErr="";
$passwordErr="";
$empty=false;
$_SESSION['login_user'] = false;
if(isset($_POST['submit']))
{
if(empty($_POST['username']))
{
$empty=true;
$usernameErr="Username is empty. Please try again";
}
else
{
$username=$_POST['username'];
}
if(empty($_POST['password']))
{
$empty=true;
$passwordErr="Password is empty. Please try again";
}
else
{
$password=$_POST['password'];
}
if(!$empty)
{
$servername="myxor.in.mysql";
$dbusername="myxor_in";
$dbpassword="srikanth177";
$dbname="myxor_in";
$conn=new mysqli($servername, $dbusername, $dbpassword, $dbname);
if($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT firstname,package,username,password FROM users WHERE username='$username'";
$result = $conn->query($sql);
if (($result->num_rows) > 0)
{
$row = $result->fetch_assoc();
if($username === $row['username'])
{
if($password === $row['password'])
{
$_SESSION['fname'] = $row['firstname'];
$_SESSION['pack'] = $row['package'];
//$_SESSION['login_user'] = $username;
$_SESSION['login_user'] = true;
header('Location: http://www.myxor.in/home.php');
exit;
}
else
{
$passwordErr = "Invalid Password. Please Try Again";
}
}
} else
{
$usernameErr = "Invalid Username. Please Try Again";
}
}
}
else echo "submit not set";
echo $usernameErr;
echo "<br>";
echo $passwordErr;
?>
爲什麼登錄頁面是不是首次運作的任何建議(請注意,當我登錄第二次的被正確地重定向到所需home.php)
可能在設置會話中存在一些問題。 P1。檢查當第二次登錄該登錄頁面時,會話是否啓用? –
首先,您應該檢查$ _SESSION ['login_user']是真實的,如果是的話,然後將其重定向到home.php – WisdmLabs
就在您將$ _SESSION ['login_user']設置爲true的位置上方,您應該回顯某些內容作爲測試以查看是否它實際上已經到了這一點。嘗試如下所示:'echo「到此爲止#1」;''''''''''''''你還需要在重定向之前放置一個臨時'exit',否則你將看不到消息。如果您沒有看到「到達這裏#1」消息,請在腳本的另一個位置放置另一條消息,看看是否出現該消息。這是基本的錯誤測試,以縮小腳本的哪些部分正在運行。如果你需要看到一個變量的內容,那麼也是這樣。 – kojow7