首页 > 解决方案 > 在登录页面上重定向后让警报工作

问题描述

我有一个名为 login.php 的页面,如果用户成功登录,那么他将被重定向到 map.php。login.php 上还有一个指向 map.php 的超链接

map.php 开始如下:

 <?php 
 session_start();
 if ($_SESSION){
 ?>

然后输出一堆 HTML 和 JAVASCRIPT 然后...

 <?php } else {
 header ('Location: ../login.php');
 exit();
 $message = "wrong answer";
 echo "<script type='text/javascript'>alert('$message'); 
 </script>";
 }
 ?>

如果我从 login.php 开始,然后单击超链接以跳转到地图而不输入用户名和密码,我会看到浏览器已刷新,并且我已根据需要将自己重定向回同一页面,但是我该如何获取工作警报?我想让用户知道他必须登录才能查看 map.php

标签: phpsessionredirectloginalert

解决方案


我想让用户知道他必须登录才能查看地图。

您主要有两种不同的解决方案来处理重定向。

使用 PHP 处理重定向

除了显示警报之外,您还可以输出普通文本并将refresh标头调用与标头调用结合使用url,以便将标头发送到客户端浏览器,客户端浏览器会在一定秒数后刷新页面。

<?php
}
else
{
    $message = "wrong answer";
    header('Refresh: 5; url=login.php'); 
    exit($message);
}

使用 Javascript 处理重定向

只需输出您已经编写的警报脚本,然后通过 javascript 处理重定向,而不是使用header()PHP 函数。

<?php
}
else
{
    $message = "wrong answer";
    echo "<script>
    alert('$message');
    window.location.href='login.php';
    </script>";
    exit;
}

我个人建议通过 PHP 处理重定向,因为它作为解决方案更优雅,而且您不必担心在浏览器中禁用 JavaScript 的用户。


推荐阅读