如何在登录后重定向到我想要的页面并在成功登录后显示用户名

问题描述 投票:-2回答:1

我正在研究我的项目。我有登录系统的问题。首先,我想重定向到我想要的页面。其次,我想在导航栏上显示用户名(与登录用户名相同)。

我已经尝试使用“header()”进行重定向,但它不起作用。它显示“找不到对象”页面。我也尝试了“window.location.assign()”但它显示的结果与“header()”相同。

的index.php

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
        .
        .
        .
    <title>Online Stock Trading</title>
</head>
<body>

    <!-- navbar -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
          .
          .
          .
      <form class="form-inline" action="php/login_page.php" method="post">
        <input class="form-control mr-sm-2" type="text" placeholder="Username" name="username">
        <input class="form-control mr-sm-2" type="password" placeholder="Password" name="password">
        <button class="btn btn-success my-2 mr-sm-2" id="login-btn" type="submit">LOGIN</button>
        <button type="button" class="btn btn-primary my-2 mr-sm-2" id="sign_up" data-toggle="modal" data-target="#exampleModalLong">SIGN UP</button>
      </form>
    </nav>
          .
          .
          .
</body>
</html>

login_page.php

<?php
$con = mysqli_connect("localhost","root","","project");

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL".mysqli_connect_error();
}

$username = mysqli_real_escape_string($con,$_POST['username']);
$password = mysqli_real_escape_string($con,$_POST['password']);

$result = mysqli_query($con,"SELECT Username, Password FROM trader_data WHERE Username = '$username' AND Password = '$password'")
    or die("Failed to query database".mysql_error());

$row = mysqli_fetch_array($result);
if ($row['Username']==$username && $row['Password']==$password)
{
    $_SESSION['username'] = $username;
    echo "<script>
            alert('Login Success!!');
            window.location.assign('logged_in.php');
    </script>";
}
else
{
    echo "<script>
            alert('Failed to login!!');
            window.location.assign('index.php');
    </script>";
}
mysqli_close($con);
?>

logged_in.php

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
        .
        .
        .
    <title>Online Stock Trading</title>
</head>
<body>

    <!-- navbar -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
          .
          .
          .
          <div class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <?php echo $_SESSION["username"];?>
            </a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="dropdown-item" href="#">My Account</a>
              <a class="dropdown-item" href="#">History</a>
              <a class="dropdown-item" href="#">Portfolio</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item" href="#">Logout</a>
            </div>
          </div>
        </div>
      </div>

    </nav>
        .
        .
        .
</body>
</html>

我希望我的网站在登录后会转到“logged_in.php”页面。然后,显示用于登录“index.php”页面的用户名。

javascript php html
1个回答
0
投票

您可以尝试使用window.location.href进行重定向。要将值传递到另一个页面,您可以使用会话或发出GET请求。

使用会话:

login_page.php

<?php
session_start();
$_SESSION['username'] = $username;
?>
<script>
window.location.href="logged_in.php";
</script>

logged_in.php

<?php
session_start();
$username = $_SESSION['username'];
?>

使用Qazxswpoi请求

login_page.php

GET

logged_in.php

<script>
window.location.href="logged_in.php?username=<?php echo $username;?>"
</script>
© www.soinside.com 2019 - 2024. All rights reserved.