php 类似于论坛上登陆后跳转到原来请求页面的功能。就是原来在这个页面,提示登陆,会员登陆后,能跳到这个页面。求PHP实现!
说一个我常用的方法吧,可行性验证过很多次了:
/login.php为登录页面,/list.php为你所在页面,现在要求list页面提示你登录并提供一个登录链接,php文件源码如下:
<html>
<head>
<title>LIST页面</title>
</head>
<body>
<a href="/login.php?ref=<?php echo urlencode('list.php')?>">立即登录</a>
</body>
</html>
解释:以上php部分是将当前页面(list.php)路径encode成一个字符串,并将其作为参数传递到登录页面(login.php)。
在登录页面我们则需要这么做:
<?php
if(LOGIN_SUCCESS)//登录成功
{
$goToUrl=urldecode($_REQUEST['ref']);//从url参数获取跳转前页面
header("Location:".$goToUrl);//利用header跳转到那个页面去
exit;//退出
}
?>
/login.php为登录页面,/list.php为你所在页面,现在要求list页面提示你登录并提供一个登录链接,php文件源码如下:
<html>
<head>
<title>LIST页面</title>
</head>
<body>
<a href="/login.php?ref=<?php echo urlencode('list.php')?>">立即登录</a>
</body>
</html>
解释:以上php部分是将当前页面(list.php)路径encode成一个字符串,并将其作为参数传递到登录页面(login.php)。
在登录页面我们则需要这么做:
<?php
if(LOGIN_SUCCESS)//登录成功
{
$goToUrl=urldecode($_REQUEST['ref']);//从url参数获取跳转前页面
header("Location:".$goToUrl);//利用header跳转到那个页面去
exit;//退出
}
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-05-31
<?php
if($_SESSION['']){
echo '<meta http-equiv="refresh" content="'';URL=" />';
}else{
echo '<meta http-equiv="refresh" content="'';URL=" />';
}
?>
就跳转的?本回答被网友采纳
if($_SESSION['']){
echo '<meta http-equiv="refresh" content="'';URL=" />';
}else{
echo '<meta http-equiv="refresh" content="'';URL=" />';
}
?>
就跳转的?本回答被网友采纳
第2个回答 2010-05-31
1、页面显示连接:
<?php
……
echo "<a href=\"".$_SERVER['HTTP_REFERER']."\" target=\"_self\">点击这里返回登陆前页面</a>";
……
?>
2、登陆后马上自动跳转:
<?php
……
header("location:".$_SERVER['HTTP_REFERER']);
……
?>
3、登陆后显示连接,另外加JScript代码N秒后自动跳转。不好意思,JScript不是很懂,自己去搜搜看
<?php
……
echo "<a href=\"".$_SERVER['HTTP_REFERER']."\" target=\"_self\">点击这里返回登陆前页面</a>";
……
?>
2、登陆后马上自动跳转:
<?php
……
header("location:".$_SERVER['HTTP_REFERER']);
……
?>
3、登陆后显示连接,另外加JScript代码N秒后自动跳转。不好意思,JScript不是很懂,自己去搜搜看
第3个回答 2010-05-31
一楼太麻烦了
二楼应该不能实现,我没有测试,如果错误请赐教
三楼的和我一样,能完美实现,但每一次都跳转是否可行呢,请楼主自行决定解决。
以下是我的方案:
// 登录界面调用时设置
$_SESSION['jumpURL'] = $_SERVER['HTTP_REFERER'];
// 登录后设置
if (!empty($_SESSION['jumpURL'])) {
header('Location: ' . $_SESSION['jumpURL']);
}
二楼应该不能实现,我没有测试,如果错误请赐教
三楼的和我一样,能完美实现,但每一次都跳转是否可行呢,请楼主自行决定解决。
以下是我的方案:
// 登录界面调用时设置
$_SESSION['jumpURL'] = $_SERVER['HTTP_REFERER'];
// 登录后设置
if (!empty($_SESSION['jumpURL'])) {
header('Location: ' . $_SESSION['jumpURL']);
}
第4个回答 2010-05-31
<form id="form1" name="form1" method="post" action="" onsubmit="a()">
<table width="300" border="1">
<tr>
<td>姓名:<input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td>密码:<input type="text" name="password" id="password" /></td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td>
</tr>
</table>
</form>
<?php
if($_POST[name]!="" && $_POST[password]!=""){
echo "$_POST[name]"."登录成功。。欢迎。。";
}
?>
<table width="300" border="1">
<tr>
<td>姓名:<input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td>密码:<input type="text" name="password" id="password" /></td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td>
</tr>
</table>
</form>
<?php
if($_POST[name]!="" && $_POST[password]!=""){
echo "$_POST[name]"."登录成功。。欢迎。。";
}
?>
第5个回答 2010-05-31
我说下原理,楼主可以自己动手做做:
1.首先用户点击某个功能(比如说留言),这个时候就可以判断网站预设的用户名变量$user(这里是假设这个名字),是否有值(因为登陆了话这个值是可以预存为Cookie的),有就可以留言,没有就记录当前页地址定义一个Cookie,以及用户留言的文字定义一个Cookie,最后跳转或者Ajax一个登陆页,或者注册页。
2.最后用户登陆成功后,判断地址Cookie是否有值,有值就跳转到这个地址(也就是用户留言的那个地址),顺便在留言栏调用之前定义的留言文字Cookie。 当用户最后提交后,清楚地址Cookie和留言文字Cookie就完成了你的这个要求。
提示:以上第2点其实还可以简化为用户登陆成功后同时判断地址Cookie和留言文字Cookie,都存在的话,可以让其直接提交留言,然后告诉用户留言成功,并掉转到该页,清楚地址、留言文字cooking即可。
1.首先用户点击某个功能(比如说留言),这个时候就可以判断网站预设的用户名变量$user(这里是假设这个名字),是否有值(因为登陆了话这个值是可以预存为Cookie的),有就可以留言,没有就记录当前页地址定义一个Cookie,以及用户留言的文字定义一个Cookie,最后跳转或者Ajax一个登陆页,或者注册页。
2.最后用户登陆成功后,判断地址Cookie是否有值,有值就跳转到这个地址(也就是用户留言的那个地址),顺便在留言栏调用之前定义的留言文字Cookie。 当用户最后提交后,清楚地址Cookie和留言文字Cookie就完成了你的这个要求。
提示:以上第2点其实还可以简化为用户登陆成功后同时判断地址Cookie和留言文字Cookie,都存在的话,可以让其直接提交留言,然后告诉用户留言成功,并掉转到该页,清楚地址、留言文字cooking即可。
第6个回答 2013-02-20
用 $_SESSION['PrevUrl'] 来实现
1) 在每页顶部写 $_SESSION['PrevUrl']=’当前页.php‘
2) 然后登录也写
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "loginfail.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conn, $conn);
$LoginRS__query=sprintf("SELECT username, password FROM member WHERE username=%s AND password=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $conn) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
1) 在每页顶部写 $_SESSION['PrevUrl']=’当前页.php‘
2) 然后登录也写
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "loginfail.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conn, $conn);
$LoginRS__query=sprintf("SELECT username, password FROM member WHERE username=%s AND password=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $conn) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}