php - 在登录页面上重定向后让警报工作
问题描述
我有一个名为 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
解决方案
我想让用户知道他必须登录才能查看地图。
您主要有两种不同的解决方案来处理重定向。
使用 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 的用户。
推荐阅读
- reactjs - 如何使 Expo Camera View 可点击
- javascript - 设置没有 css 剪辑路径的 iframe 包装器 div
- ruby-on-rails - 如何将 HTTParty 响应保存到 db?(更新!)
- go - 通道并发问题
- ios - 是否有任何文档可用于将 google CAF 集成到自定义 iOS 框架中?
- php - 删除文件夹期间 Laravel 存储“权限被拒绝”
- python - 使用序列化程序在restframework中进行API调用的Django一对多关系
- vba - 如果此字段为空,如何更改连续子表单字段的背景色
- powershell - 从powershell中运行更改目录的批处理文件什么都不做
- java - 为 JPA 和 Spring boot 实现搜索功能