利用php調用discuz登錄框方法有很多種,最常用的就是直接使用iframe方式調用了,還有就是直接在php頁面中調用了,下面小編來給大家總結一些常用的方法。
方法一,直接使用iframe調用一個加了discuz登錄功能的頁面
代碼如下 復制代碼<iframe src="/login.html" style="width:100%; height:32px" scrolling="no" frameborder="0" ></iframe>
login.html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> c-gd.com-登錄</title>
<style type="text/css">
<!--
* {
margin:0;
padding:0;
}
body {
font: normal 12px Arial, Helvetica, Sans-Serif, "宋體";
line-height: 160%;
text-align:left;
color: #3a3a3a;
margin:0;
padding:0;
}
img {
border:0;
}
ul, li {
padding:0;
margin:0;
list-style:none;
}
a {
text-decoration: none;
color:#3a3a3a;
}
a:hover {
color: #C00;
}
.banner {
margin-bottom:1px;
height:59px;
}
.denglu {
height:31px;
border-bottom:1px solid #FFF;
background:#e7e3e4;
color:#7b797a;
}
.denglu a {
color:#7b797a;
text-decoration:none;
}
.denglu a:hover {
color:#C00;
text-decoration:underline;
}
.denglu .box01 {
margin-left:30px;
float:left;
width:224px;
line-height:30px;
height:31px;
}
.denglu .box02 {
width:433px;
float:left;
color:#000;
text-align:right;
}
.denglu .box02 input {
border:1px #c5c3c3 solid;
height:20px;
width:88px;
background:#FFF;
line-height:20px;
margin-top:5px;
}
.denglu .box02 .button {
background:url(/static/image/common/img01.gif) no-repeat;
width:50px;
height:21px;
border:0;
color:#4b4b4b;
margin:0 5px;
font-size:12px;
line-height:20px;
}
.denglu .box03 {
float:right;
line-height:30px;
height:31px;
margin-right:15px;
}
.denglu .box03 .font1 {
margin-left:20px;
}
.denglu .box03 .font2 {
margin-left:10px;
background:url(/static/image/common/icon03.jpg) left center no-repeat;
padding-left:8px;
margin-left:40px;
}
-->
</style>
<script type="text/javascript">
function checkform(){
if(document.getElementById('username').value==''){
alert('請輸入用戶名');
return false;
}
if(document.getElementById('password').value==''){
alert('請輸入密碼');
return false;
}
return true;
}
function showDate()
{
var d = new Date();
document.write("<div class='date_div'>"+d.getYear()+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日");
switch(d.getDay())
{
case 0:
document.write(" 星期日");
break;
case 1:
document.write(" 星期一");
break;
case 2:
document.write(" 星期二");
break;
case 3:
document.write(" 星期三");
break;
case 4:
document.write(" 星期四");
break;
case 5:
document.write(" 星期五");
break;
case 6:
document.write(" 星期六");
break;
}
document.write("</div>");
}
</script>
</head>
<body>
<div id="header">
<!--登錄-->
<div class="denglu">
<div class="box01">
<script language="JavaScript" type="text/JavaScript">
showDate();
</script> </div>
<form method="post" action="/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes" onsubmit="return checkform();">
<div class="box02">
用戶名:<input type="text" name="username" id="username" />
密碼:<input type="password" name="password" id="password" />
<input type="hidden" name="quickforward" value="yes" />
<input type="hidden" name="handlekey" value="ls" />
<input type="hidden" name="iflogin" value="plus.php?mod=iframelogin" />
<span>
<input name="input" type="submit" class="button" value="登錄" style="cursor:pointer" />
</span>
<span>
<input name="input" type="button" class="button" value="注冊" style="cursor:pointer" onclick="window.open('/bbs/member.php?mod=register')"/>
</span>
</div>
</form>
<div class="box03">
<span class="font2"><a onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.bKjia.c0m');" href="javascript:;">設為首頁</a></span>
<span class="font1"><a href="/" target="_parent">中文</a> | <a href="#" target="_parent">English</a></span>
</div>
</div>
</div>
</body>
</html>
方法二,利用php方式調用了
在自定義的PHP頁面裡加入discuz登陸框。PHP如何調用discuz登陸框。
代碼如下 復制代碼 <?php
方法三:discuz登陸框是ajax調用的,一開始在firebug下看到了調用了接口:
這返回的是一個xml的內容,其中就一個結點root,裡面會根據本地的cookies判斷是否登錄了論壇,如果沒有登陸
裡面的內容就是一段form登陸表單。如果登陸了裡面就是一段登陸後的信息。然後將ajax請求中的css保存到本
地。能夠實現登陸框調用。登陸框中有一個hidden的input name=‘reffer’ 這裡面的value值是來路鏈接.不過要是
論壇程序裡的。比如將這個連接換成h/home.php?mod=spacecp&ac=blog這樣登陸完後會
自動跳轉到發博客的頁面。可以實現一鍵發帖功能。
代碼如下:
代碼如下 復制代碼<?php
$login = file_get_contents("/member.php?
mod=logging&action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login");
require_once('SofeeXmlParser.php');//xml解析類 博客裡搜索xml有相關介紹
$xml = new SofeeXmlParser();
$xml->parseString($login);
$tree = $xml->getTree();
$login = str_replace("member.php","h/member.php",$tree["root"]["value"]);
$login = str_replace("h/./","h/home.php?
mod=spacecp&ac=blog",$login);//跳轉到發帖頁面
$login = preg_replace('/<h3 class="flb">(.*)</h3>/i','',$login);
var_dump($login);
exit();
$login = iconv('utf-8','gbk',$login);
echo $login;
?>