关于 login passport forward --上一个帖子说明不足, 贴上完整的提问
上一个帖子说明不足, 贴上完整的提问
谢谢
假设 http://mysite.xxxxx.com 是我的网站, 而
http://forum.xxxxx.com 是我的 discuz forum, 而我的设计是用
register.php 作为注册页, logout.php 登出页, login.php 为登陆页,
register.php 和 logout.php 目前己整合成功, 现在的问题是
--> 因为 我自己的站的一些需要 login 才能看的 page 是用 include login.php 的方式来处理会员检查
例子-->
访客点击我的网站中的 hiperlink 想看: iwanttosee.php
<?
include ("../login.php"); //处理会员检查
--------------
?>
若我不加入 login passport 程式码 在 login.php 中, 通过 login.php 的检查后可直接进入要看的页面,
但若整合 login passport 程式码后, 通过 login.php 的检查后 都会 forward 到 http://mysite.xxxxx.com/index.php , 而不是原本想看的 iwanttosee.php
请问要如何修改才能 forward 到原来想去的页面.--> iwanttosee.php
以下是我的 login.php 完整的代码, 请看 --问题所在的 CODE--
<?
//
while ( list( $key, $val ) = each( $_SERVER ) ) $$key = $val ;
session_start(); // start session.
include("db_conn.php"); // 这个是资料库连结的设定
include ("discuz_md5.php"); // 这个是 discuz passport Passport 加密函数
if(!isset($memberName) | !isset($memberPassword)) {
// escape from php mode.
?>
<style type="text/css">
<!--
.style3 {color: #333333}
.style10 {color: #0000FF; font-size: 12px; }
.style12 {color: #FF0000}
-->
</style>
<form action="<?=$PHP_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<table width="501" border="0" align="center">
<tr bgcolor="cc9900">
<td colspan="2" class="style11"><span class="style4">请登入!! </span>!! Please Log In! </td>
</tr>
<tr bgcolor="cccc99" class="style3">
<td width="248"><div align="left">username:
<input type="text" name="memberName">
</div></td>
<td width="243"><div align="left">password:
<input type="password" name="memberPassword">
</div></td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="2"><div align="left">
<input name="submit" type="submit" class="style10" value="ログイン">
</div> <div align="left"></div></td>
</tr>
</table>
<tr>
<th>
</th>
</tr><tr><th> </th>
<th>
</th>
</tr>
<tr>
<th colspan="2" align="right">
</form>
</th>
</tr>
</body>
</html>
<?
exit();
}
// If all is well so far.
session_register("memberName");
session_register("memberPassword");
$sql = db_query("SELECT * FROM member WHERE memberName = '$memberName'");
$myrow = db_fetch_array($sql);
$num = db_num_rows($sql);
$memberPassword_md5=md5($memberPassword);
if($num != "0" & $memberPassword_md5 == $myrow["memberPassword"] ) {
$valid_user = 1;
}
else {
$valid_user = 0;
}
session_register('memberID'); //register memberID as session variables.
$memberID=$myrow['memberID'];
// ==========login passport 程式码==========================================
$passport_key="rena888talu888";
$member = array
(
'time' => time(),
'username' => $myrow["memberName"],
'password' => $myrow["memberPassword"],
'email' => $myrow["memberEmail"]
);
$auth = passport_encrypt(passport_encode($member), $passport_key);
setcookie("auth",$auth,($_POST["Cookie"]? time()+(int)$_POST["Cookie"] :0));
$forward=$_GET['forward']; // 我这里 GET 才能用
//--------------问题所在的 CODE---START-----------------------------------
//下面这行程式码就是我的问题所在, 如果依下面的code, 通过 login.php 的检查后
// 都会 forward 到 http://mysite.xxxxx.com/index.php , 而不是原本想看的 page
if($forward=="")$forward="http://mysite.xxxxx.com/index.php";
//----------------问题所在的 CODE---END---------------------------------
$verify = md5('login'.$auth.$forward.$passport_key);
$auth=rawurlencode($auth);
$forward=rawurlencode($forward);
header("Location: http://forum.xxxxx.com/api/passp ... &verify=$verify");
// =============login passport 程式码========================================
//----------------------------------------------------------------------
if (!($valid_user))
{
session_unset(); // Unset session variables.
session_destroy(); // End Session we created earlier.
// escape from php mode.
?>
<form action="<?=$PHP_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<p align="center">Incorrect login information, please try again. You must login to access this site.</p>
<table align="center" border="0">
<tr>
<th>
Username:
</th>
<th>
<input type="text" name="memberName">
</th>
</tr>
<tr>
<th>
Password:
</th>
<th>
<input type="password" name="memberPassword">
</th>
</tr>
<tr>
<th colspan="2" align="right">
<input type="submit" value="Login">
</form>
</th>
</tr>
<?
exit();
}
?> |
|