感谢提示,将我的代码更改为以下内容。但我仍然没有重定向到user.php。添加了变量$rowcount
并为其赋值。如果查询具有用户的值,则必须将其重定向到user.php页面。
<?php
include("inc/header.php");
?>
<?php
if(isset($_POST["submit"])) {
$username = trim($_POST["username"]);
$password = trim($_POST["password"]);
if($username == "" && $password == "") {
echo "Please fill in all the details";
exit;
}
if($username == "admin" &$password == "test") {
$_SESSION["admin"] = true;
header("location: admin-panel.php");
}
$rowcount = 0;
$password_secure = md5($password);
if($username != "" && $password != "") {
$sql = "SELECT * FROM user WHERE username = '".mysqli_escape_string($connection, $username)."'
AND password = '".mysqli_escape_string($connection, $password_secure)."'";
$query = mysqli_query($connection, $sql);
$rowcount = mysqli_num_rows($query);
} else {
echo "Username of password was not right, please try again.";
}
if($rowcount != 0) {
$row = mysql_fetch_array($connection, $query);
$_SESSION["username"] = $row["username"];
$_SESSION["login"] = true;
header("location: user.php");
exit;
}
}
?>
<?php
include("inc/footer.php");
?>
答案 0 :(得分:0)
// if logged in, redirect towards user account
if($logged_in) {
header("Location: useraccount.php");
exit(0);
}
使用您的php stracture更改$ logged_in
答案 1 :(得分:0)
在页面顶部添加session_start()
。还要更改以下代码。
session_start();
..
..
if($rowcount == 1)
{
while($row = mysqli_fetch_array($query))
{
$_SESSION["username"] = $row["username"];
$_SESSION["login"] = true;
}
header("location: user.php");
}
在user.php中,首先检查用户是否已登录。为此写一个简单的函数 -
function is_loggedin()
{
if(isset($_SESSION['username']) && isset($_SESSION['login']))
return TRUE;
else
return FALSE;
}
如果返回FALSE,则重定向回登录页面。
答案 2 :(得分:0)
您的$ rowcount必须在&#34;以外的地方宣布:&#34;:
$rowcount=0;
if($username != "" && $password != "") {
$sql = "SELECT * FROM user WHERE username = '".$username."'
AND password = '".$password_secure."'";
$query = mysqli_query($connection, $sql);
$rowcount = mysqli_num_rows($query);
}