使用 PHP,我无法在用户登录时显示警告消息
Using PHP, I am unable to get an Alert message to appear when a user logs in
此 PHP 函数在用户成功通过身份验证时执行,当他们登录时,他们将被带到页面 index.php。也许我应该将警告消息放在 index.php 本身而不是执行登录的同一个 php 脚本文档中?
我刚刚注意到我的成功会话变量,这使得消息本身有点多余,但无论如何都没有显示警报。
elseif ($result > 0)
{
$_SESSION ['username'] = $username;
$_SESSION ['permission'] = $permission;
$_SESSION ['success'] = "You are now logged in";
if ($permission == 3){
echo '<script>alert("Welcome Admin!")</script>';
}
else
{
echo '<script>alert("Welcome User!")</script>';
}
header ("location: index.php");
exit();
}
更新:
我已经实施了答案建议,但我没有正确获取权限字段,因为即使以用户“admin”登录时?user=User 也是 url。我已经包含了此文件中的其他行,以防我在其他地方犯了我没有看到的错误。
编辑:if ($permissions == 3)
缺少一个 s,URL 现在是正确的,但没有警告框。
index.php:
<?php
if (isset($_GET['username'])){
$user = $_GET['username'];
echo "<script>alert('Welcome ' + $user);</script>";
}
?>
submit.php
$query = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1");
$query->bindParam(1, $username, PDO::PARAM_STR, 12);
$query->bindParam(2, $password, PDO::PARAM_STR, 12);
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
if(count((array)$result) == 0)
{
$_SESSION['errorMessage'] = true;
exit();
}
elseif ($result > 0)
{
$permissions = $result['permissions'];
$_SESSION ['username'] = $username;
$_SESSION ['permissions'] = $permissions;
if ($permission == 3)
{
header ("Location:index.php?user=Admin");
} else {
header ("Location:index.php?user=User");
}
我建议将用户或管理员发送到索引页面,如下所示:
elseif ($result > 0)
{
$_SESSION ['username'] = $username;
$_SESSION ['permission'] = $permission;
$_SESSION ['success'] = "You are now logged in";
if ($permission == 3){
header ("location: index.php?user=Admin");
}else {
header ("location: index.php?user=User");
}
因此,在您的 index.php 中,您可以获得用户变量并将其显示在警报中:
$user = $_GET['user'];
要显示 Javascript 消息,请使用:
echo '<script language="javascript">';
echo 'alert("Welcome '. $user. '")';
echo '</script>';
此 PHP 函数在用户成功通过身份验证时执行,当他们登录时,他们将被带到页面 index.php。也许我应该将警告消息放在 index.php 本身而不是执行登录的同一个 php 脚本文档中?
我刚刚注意到我的成功会话变量,这使得消息本身有点多余,但无论如何都没有显示警报。
elseif ($result > 0)
{
$_SESSION ['username'] = $username;
$_SESSION ['permission'] = $permission;
$_SESSION ['success'] = "You are now logged in";
if ($permission == 3){
echo '<script>alert("Welcome Admin!")</script>';
}
else
{
echo '<script>alert("Welcome User!")</script>';
}
header ("location: index.php");
exit();
}
更新:
我已经实施了答案建议,但我没有正确获取权限字段,因为即使以用户“admin”登录时?user=User 也是 url。我已经包含了此文件中的其他行,以防我在其他地方犯了我没有看到的错误。
编辑:if ($permissions == 3)
缺少一个 s,URL 现在是正确的,但没有警告框。
index.php:
<?php
if (isset($_GET['username'])){
$user = $_GET['username'];
echo "<script>alert('Welcome ' + $user);</script>";
}
?>
submit.php
$query = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1");
$query->bindParam(1, $username, PDO::PARAM_STR, 12);
$query->bindParam(2, $password, PDO::PARAM_STR, 12);
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
if(count((array)$result) == 0)
{
$_SESSION['errorMessage'] = true;
exit();
}
elseif ($result > 0)
{
$permissions = $result['permissions'];
$_SESSION ['username'] = $username;
$_SESSION ['permissions'] = $permissions;
if ($permission == 3)
{
header ("Location:index.php?user=Admin");
} else {
header ("Location:index.php?user=User");
}
我建议将用户或管理员发送到索引页面,如下所示:
elseif ($result > 0)
{
$_SESSION ['username'] = $username;
$_SESSION ['permission'] = $permission;
$_SESSION ['success'] = "You are now logged in";
if ($permission == 3){
header ("location: index.php?user=Admin");
}else {
header ("location: index.php?user=User");
}
因此,在您的 index.php 中,您可以获得用户变量并将其显示在警报中:
$user = $_GET['user'];
要显示 Javascript 消息,请使用:
echo '<script language="javascript">';
echo 'alert("Welcome '. $user. '")';
echo '</script>';