最近想把主站和discuz整合,在主站登录成功主站却没有处于登录状态,就是说主站首页没有显示欢迎XXX,而论坛已经登录成功
哪位好心人能帮我,谢谢拉!!!
以下是login.php 的代码,指教一下要改哪里
-------------------------------
<?php
//该文档保存为login.php
//首先将接口技术文档里的加密解密函数拷贝
//为了不让代码太乱,我拷贝到文档的结尾处
//假设自己的用户数据库表里用户名字段为UserName, 密码字段为Pwd, Email字段为 Email
//注册页实现方法差不多,可自行实现,疑问加我QQ:2666556
$folder="";
$not_access=0;
$isScript=false;
$isPortal=false;
$pagename="portal/login.php";
//includes
require_once('includes.php');
require_once('../l10n/'.__LANG.'/lang.php');
launch_hook('login_php');
$act=(isset($_GET['action']))?$_GET['action']:"login";
if(function_exists($action)) $action();else login();
function login()
{
$ErrMsg=UserCheck();
if($ErrMsg!="")echo $ErrMsg;
//后面加上显示你的登陆表单的代码 如
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="../styles/main.css" />
<link rel="stylesheet" type="text/css" href="../styles/main1.css" />
<script type="text/javascript" src="../l10n/<?php echo __LANG;?>/lang.js?v=1.4" ></script>
<script type="text/javascript" src="../includes/config.js?v=1.4" ></script>
<script type="text/javascript" src="../includes/ajax.js?v=1.4" ></script>
<?php
launch_hook('userinterface_header',$pagename);
?>
</head>
<body background="../images/bgstrike.gif">
<div class="noportal">
<table width="100%">
<tr>
<td align="center" style="padding-top:150px">
<table cellpadding="0" cellspacing="0" border="0" width="500" bgcolor="#ffffff" class="module">
<tr>
<td align="left" id="header">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td id="logo"><a href="../portal/index.php"><IMG src="../images/s.gif" width="140" height="60" /></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" style=" spadding:8px;padding-top:30px;padding-left:80px;background-color:#efefef;font-size:11pt;">
<font style="color:#000000;font-size:14pt;">
<img src="../images/ico_logon.gif" align="bottom" /><?php echo "Login";?></font>
<br /><br /><br />
<form method="post" action="login.php" action="login" >
<table>
<tr align="left"><td><?php echo (__accountType=="username"?lg("用户名"):lg("login"));?></td>< td><input type="text" name="username" size="25" maxlength="64" /></td></tr>
<tr align="left"><td><?php echo lg("密码");?></td><td><input type="password" name="password" size="16" maxlength="16" /> <span id="passhlp"></span></td></tr>
<?php launch_hook('display_login_form'); ?>
<tr align="left"><td></td><td><input type="checkbox" name="autoconn" /> <?php echo lg("automaticConnection");?></td></tr>
<tr align="left"><td></td><td><br /><input name="submit" type="submit" class="btn" value="<?php echo lg("connection");?>" /></td></tr>
</table>
</form>
<br />
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<script type="text/javascript">
(_gel("passhlp")).innerHTML="<a href='password_missing.php' target=_blank style='font-size:7pt;'>"+lg("lblMissingPassword")+" ?</a>";
</script>
</body>
<?php
}//end function
function logout()//登出
{
$passportkey="1234567890";//这里换成你论坛通行证设置的passportkey
$auth=$_COOKIE['auth'];
setcookie("auth", "",time() - 3600);
$forward=$_GET['forward'];
if($forward=="")$forward="http://localhost/yucai/";//这里换成你的主页绝对地址或相对地址
$verify = md5('logout'.$auth.$forward.$passportkey);
$auth=rawurlencode($auth);
$forward=rawurlencode($forward);
header("Location: http://localhost/bbs/api/passport.php?action=logout&auth=$auth&forward=$forward&verify=$verify");
}
function UserCheck()
{
$passportkey="1234567890";//这里换成你论坛通行证设置的passportkey
//===========验证输入=====================
if(!isset($_POST['submit'])) return; // login表单的按钮需要与此同名
$username=$_POST['username'];//username换成你登陆表单里的用户名域
$password=$_POST['password'];//password换成你登陆表单里的密码域
if($username=="") return "请输入用户名!";
if($password=="") return "请输入密码!";
//=========数据库处理==========================
$db=mysql_connect("localhost", "root", "");
mysql_select_db("posh");
$sql="Select * from `users` where username='".$username."' Limit 1";
$rs = mysql_query($sql,$db) ;
$row = mysql_fetch_array($rs);
if(!$row)return "该用户不存在";
if($row["md5pass"]!=md5($password))return "密码错误";
setcookie('username',$username,time()+3600,$cookiepath,$cookiedomain,0);//设置主站自身的cookie
mysql_free_result($rs);
//==============header到bbs=====================
$member = array
(
'time' => time(),
'username' => $row["username"],
'password' => $row["md5pass"],
'email' => $row["email"]
);
$auth = passport_encrypt(passport_encode($member), $passportkey);
setcookie("auth",$auth,($_POST["Cookie"]? time()+(int)$_POST["Cookie"] :0));
$forward=$_POST['forward'];
if($forward=="")$forward="http://localhost/yucai/";
$verify = md5('login'.$auth.$forward.$passportkey);
$auth=rawurlencode($auth);
$forward=rawurlencode($forward);
header("Location: http://localhost/bbs/api/passport.php?action=login&auth=$auth&forward=$forward&verify=$verify");
}
//=============================================================
//=============以下为拷贝过来的函数============================
function passport_encrypt($txt, $key) {
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));
$ctr = 0;
$tmp = '';
for($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
}
return base64_encode(passport_key($tmp, $key));
}
function passport_decrypt($txt, $key) {
$txt = passport_key(base64_decode($txt), $key);
$tmp = '';
for ($i = 0; $i < strlen($txt); $i++) {
$tmp .= $txt[$i] ^ $txt[++$i];
}
return $tmp;
}
function passport_key($txt, $encrypt_key) {
$encrypt_key = md5($encrypt_key);
$ctr = 0;
$tmp = '';
for($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}
function passport_encode($array) {
$arrayenc = array();
foreach($array as $key => $val) {
$arrayenc[] = $key.'='.urlencode($val);
}
return implode('&', $arrayenc);
}
//=========================================================================
//===========================拷贝结束======================================
?> |