当我第一次打开登录页面时,即使我使用正确的用户名和密码,登录页面也不会被重定向到主页。但是在第二次登录时,它被正确地重定向到主页。 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)
答案 0 :(得分:0)
您应该在登录页面上打印会话变量。像这样:
var_dump($_SESSION);
因此,当您输入登录信息并且在第一次尝试时未重定向时,您将看到是否正在设置值。这是迈出的第一步。然后,您将更好地了解需要在文件中更改的内容。
答案 1 :(得分:0)
尝试使用以下代码。
<?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');
}
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;
?>