Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[疑问] 为什么登录成功后主站没有处于登录状态???帮帮我!!!

[复制链接]
kaka_yuan 发表于 2007-12-10 15:20:50 | 显示全部楼层 |阅读模式
最近想把主站和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);

}
//=========================================================================
//===========================拷贝结束======================================
?>
回复

使用道具 举报

白乐天 发表于 2007-12-10 19:17:26 | 显示全部楼层
两站的cookies作用域改一致。然后清空本地cookies。
回复

使用道具 举报

 楼主| kaka_yuan 发表于 2007-12-10 20:20:45 | 显示全部楼层
请教一下怎么改啊??谢谢了
回复

使用道具 举报

 楼主| kaka_yuan 发表于 2007-12-10 20:21:54 | 显示全部楼层
请教一下怎么改啊??谢谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-14 05:18 , Processed in 0.108222 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表