簡體   English   中英

登錄后如何重定向到我想要的頁面,登錄成功后如何顯示用戶名

[英]How to redirect to the page that I want after logged in and display username after successful login

我正在做我的項目。 我的登錄系統有問題。 首先,我想重定向到我想要的頁面。 其次,我想在導航欄上顯示用戶名(與登錄用戶名相同)。

我已經嘗試過“header()”進行重定向,但它不起作用。 它顯示“未找到對象”頁面。 我也嘗試過“window.location.assign()”,但它顯示的結果與“header()”相同。

索引.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>

登錄頁面.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);
?>

登錄.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”頁面上顯示用於登錄的用戶名。

您可以嘗試使用window.location.href進行重定向。 要將值傳遞到另一個頁面,您可以使用會話或發出GET請求。

使用會話:

登錄頁面.php

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

登錄.php

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

使用GET請求

登錄頁面.php

 <script> window.location.href="logged_in.php?username=<?php echo $username;?>" </script>

登錄.php

 <?php $username = $_GET['username']; ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM