[英]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.