我很难将用户重定向到他们粘贴到浏览器网址的网页。 我有一个checklogin文件,用于检查用户是否已登录。不是它们被重定向到login.php页面。
方案: 当用户未登录并键入这样的URL时 http://intra.friends.net/forum/index.php?id=1&show=29&count=1 用户登录并应重定向到键入的URL。
现在它不能正常工作。 checklogin检查用户是否未登录并重定向到logout.php和logout.php重定向到login.php
checklogin.php
$url = $_SERVER["REQUEST_URI"];
if ($logged_in == 0 && (!isset($_COOKIE['autologin'])))
{
$goback ="http://intra.tobiasfransman.net/hallinta/logout.php?temp=$url";
header ("Location: $goback");
}
logout.php
$url = $_GET['temp'];
if ($logged_in == 0)
{
$goback ="http://intra.tobiasfransman.net/login.php?select=$url";
//$goback ="http://intra.tobiasfransman.net/login.php";
}
的login.php
$url = $_GET['select'];
问题在于$ url dosent包含它错过字符串查询的整个链接: 它看起来像这样:
/forum/index.php?id=1
它应该是这样的:
/forum/index.php?id=1&show=29&count=1
它丢失了字符串查询..无论如何我可以让它工作吗?
答案 0 :(得分:1)
当您将请求uri作为另一个URL中的GET var时,您需要先将其转义:
$url = urlencode($_SERVER["REQUEST_URI"]);
答案 1 :(得分:1)
您的问题是您没有对查询字符串进行编码。
$url = urlencode($_SERVER["REQUEST_URI"]);
if ($logged_in == 0 && (!isset($_COOKIE['autologin'])))
{
$goback ="http://intra.tobiasfransman.net/hallinta/logout.php?temp=$url";
header ("Location: $goback");
}
那应该在你的logout.php中给你$ _GET ['temp']中的整个网址,而你的login.php中的$ _GET ['select']会返回整个网址。