2 kkkkkkcc kkkkkkcc 于 2016.02.11 21:37 提问

一个关于php程序的问题,也算是一个简单的问题,望php爱好者解答一下,谢谢。

在一个php程序开头部分代码如下:

<?php
session_start();
header("Content-type: text/html; charset=utf-8");
include("inc/conn.php");
if($_SESSION['u_id']==""){
echo "alert(&#39;请登录后再使用!&#39;);";
//因为下面的header语句,使得上面的script语句不能正常输出。
$from="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
header("location:u_login.php?from=".$from);
}
?>

正如上面注释部分说的,因为header语句的存在,运行该程序时,没有弹窗提示“请登录后再使用”,而是直接跳转到了u_login.php。

而如果没有header语句,就有弹窗提示。我希望的结果是运行该页面时,如果没登录,则弹窗提示一下,然后转到登录页面,登录后再进入到该页面进行操作。虽说没有弹窗那一步也可以,可是为了更好的起到提醒用户session超时这一环节,应该做一个弹窗提示的,有没有好的办法?
注意:我希望就在一个php脚本语言里写完这些代码,望高手给予解答,我在这里谢谢你了。

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.11 21:43
已采纳

去掉
header("location:u_login.php?from=".$from);

 echo "alert(&#39;请登录后再使用!&#39;);window.location.href=u_login.php?from=" .$from;";
kkkkkkcc
kkkkkkcc 回复caozhy: 嘿嘿,谢谢你的回答。
接近 2 年之前 回复
caozhy
caozhy 回复kkkkkkcc: 如果我的回答解决了您的问题,麻烦受累点下我回答右边的采纳,谢谢。
接近 2 年之前 回复
caozhy
caozhy 回复kkkkkkcc: 因为客户端浏览器收到30x跳转后,就不会加载网页,直接去跳转的地址了。所以要客户端跳转。
接近 2 年之前 回复
kkkkkkcc
kkkkkkcc 太感谢了,习惯了用header语句忘记了javascript脚本的功能。可为什么用header就不可以呢?
接近 2 年之前 回复
kkkkkkcc
kkkkkkcc   2016.02.11 21:40

弹窗部分的代码被论坛替换了,原程序是echo "alert(&#39;请登录后再使用!&#39;);";

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!