php重定向(如果已登录)
我使用的是一个简单的登录表单;如果已经登录的用户进入登录页面,我想重定向 登录表单php重定向(如果已登录),php,Php,我使用的是一个简单的登录表单;如果已经登录的用户进入登录页面,我想重定向 登录表单 <?php session_start(); ?> <!DOCTYPE html> <html> <body> <form action="login.php" method="POST"> <input type="text" placeholder="username" name="uname" required /><br
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<body>
<form action="login.php" method="POST">
<input type="text" placeholder="username" name="uname" required /><br>
<input type="password" placeholder="password" name="pwd" required /><br>
<input type="submit" value="Login">
</form>
<script>
<?php if(isset($_SESSION['user'])&&!empty($_SESSION['user']))
header("Location: booking.php");
else if(isset($_SESSION['login_status']) && $_SESSION['login_status'] !='') { ?>
alert('<?php echo $_SESSION['login_status']; ?>');
<?php unset($_SESSION['login_status']); session_destroy ();} ?>
</script>
</body>
</html>
警报(“”);
用于数据库连接和查询的PHP
<?php
require_once '../config.php';
session_start();
$user = $_POST['uname'];
$pwd = $_POST['pwd'];
// To protect MySQL injection (more detail about MySQL injection)
$user = stripslashes($user);
$pwd = stripslashes($pwd);
$pwd = sha1($pwd);
$query="SELECT * FROM user WHERE uname='$user' and pwd='$pwd' and isActive=1";
$stmt=$conn->prepare($query);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$result=$stmt->fetch();
if($result){
$_SESSION['user'] = $result['fullname'];
$_SESSION['login_status'] = "Sucessfully Logged in";
header("Location: booking.php");
}else{
$_SESSION['login_status'] = "Login Credentials incorrect";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
?>
这段代码非常适合我的本地主机,但当我将其放入共享主机时,如果我已经登录并转到登录页面,它不会将我重定向到page->booking.php。
如果我在这里给一个alret
<?php if(isset($_SESSION['user'])&&!empty($_SESSION['user']))
header("Location: booking.php");
您需要在html代码之前使用标题。尝试以下方法:
<?php session_start();
if(isset($_SESSION['user'])&&!empty($_SESSION['user'])){
header("Location: booking.php");
exit();
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="login.php" method="POST">
<input type="text" placeholder="username" name="uname" required /><br>
<input type="password" placeholder="password" name="pwd" required /><br>
<input type="submit" value="Login">
</form>
<script>
<?php if(isset($_SESSION['login_status']) && $_SESSION['login_status'] !='') { ?>
alert('<?php echo $_SESSION['login_status']; ?>');
<?php unset($_SESSION['login_status']); session_destroy ();} ?>
</script>
</body>
</html>
警报(“”);
您需要在html代码之前使用标题。尝试以下方法:
<?php session_start();
if(isset($_SESSION['user'])&&!empty($_SESSION['user'])){
header("Location: booking.php");
exit();
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="login.php" method="POST">
<input type="text" placeholder="username" name="uname" required /><br>
<input type="password" placeholder="password" name="pwd" required /><br>
<input type="submit" value="Login">
</form>
<script>
<?php if(isset($_SESSION['login_status']) && $_SESSION['login_status'] !='') { ?>
alert('<?php echo $_SESSION['login_status']; ?>');
<?php unset($_SESSION['login_status']); session_destroy ();} ?>
</script>
</body>
</html>
警报(“”);
您正在解除elseif语句中的日志记录状态并销毁会话:
<?php if(isset($_SESSION['user'])&&!empty($_SESSION['user']))
header("Location: booking.php");
else if(isset($_SESSION['login_status']) && $_SESSION['login_status'] !='') { ?>
alert('<?php echo $_SESSION['login_status']; ?>');
<?php unset($_SESSION['login_status']); session_destroy ();} ?>
您正在取消登录\u状态并在elseif语句中销毁会话:
<?php if(isset($_SESSION['user'])&&!empty($_SESSION['user']))
header("Location: booking.php");
else if(isset($_SESSION['login_status']) && $_SESSION['login_status'] !='') { ?>
alert('<?php echo $_SESSION['login_status']; ?>');
<?php unset($_SESSION['login_status']); session_destroy ();} ?>
Myabe在PHP上的版本。。。尝试编写完整的IF语句。。。如果(var=1){ok}或者{header.location}使用javascript重定向,查看它是否工作,只是为了调试
或window.location.replace(“booking.php”)
session_start()
不是应该在php代码的第一行吗?@roy我已经全部尝试过了;事实上,处于相同位置的警报执行良好。因此,我得出结论,问题只在于重定向,但同样的代码在另一个页面中运行良好,这让我完全混淆了session_start()的文件;最后的php?>Myabe是php上的版本。。。尝试编写完整的IF语句。。。如果(var=1){ok}或者{header.location}使用javascript重定向,查看它是否工作,只是为了调试
或window.location.replace(“booking.php”)
session_start()
不是应该在php代码的第一行吗?@roy我已经全部尝试过了;事实上,处于相同位置的警报执行良好。因此,我得出结论,问题只在于重定向,但同样的代码在另一个页面中运行良好,这让我完全混淆了session_start()的文件;最后的php?>谢谢@Ryan.Hunt:)解决了这个问题。事实上,我已经试过了,但我错过了出口();再次感谢您的帮助:)谢谢@Ryan.Hunt:)这解决了问题。事实上,我已经试过了,但我错过了出口();再次感谢您的帮助:)