我正在尝试在login.php
上创建一个登录信息。提交时,我会重定向到文件validaton.php
。
现在,我用一个像这样的简单函数检查我的数据库中是否存在用户名和密码(还有更多,但这就是我的问题):
validation.php
$result = $conn->query('SELECT * FROM db WHERE username = '.$username.' AND password = '.$password);
if ($result->num_rows == 1){
//Continue
header("Location: welcome.php");
} else {
// Go back to Login
header("Location: login.php");
}
假设用户不存在,并且将执行else语句。
有没有办法在我从login.php
重定向后直接在validation.php
执行某个功能?
例如,我想提醒“此用户不存在!”在重定向后login.php
上。
的login.php
if(redirect happened){
alert("This user doesn't exist!");
}
用英语解释我的问题很难,但我尽我所能,任何帮助都将受到高度赞赏!感谢。
答案 0 :(得分:2)
是的,它可能。您需要在标题()中附加一个参数。
以下是如何执行此操作的方法:
$result = $conn->query('SELECT * FROM db WHERE username = '.$username.' AND password = '.$password);
if ($result->num_rows == 1){
//Continue
header("Location: welcome.php");
} else {
// Go back to Login
header("Location: login.php?redirect=1");
}
现在,您可以查看:
if($_GET['redirect'] == 1) {
// redirect happened. execute some code or JS here.
}
答案 1 :(得分:2)
您可以将会话用作
<强> validation.php 强>
session_start();
$result = $conn->query('SELECT * FROM db WHERE username = '.$username.' AND password = '.$password);
if ($result->num_rows == 1){
//Continue
header("Location: welcome.php");
} else {
// Go back to Login
$_SESSION['msg'] = "User not found";
header("Location: login.php");
}
login.php 中的
session_start();
if(isset($_SESSION['msg']))
{
// code for show message
}
答案 2 :(得分:0)
实际上有很多选择。最基本的是使用GET-Request。例如,您可以使用以下内容:
header("Location: login.php?exist=no");
die();
在您的登录页面上,您可以使用以下内容接收该参数:
if(isset($_GET['exist']) && $_GET['exist'] === 'no'){
echo "User does not exist!";
}