存档

文章标签 ‘discuz’

nginx配置反向代理使用discuz的时候无法加载验证码和安全问答

2018年6月22日 没有评论

今天配置nginx反向代理的时候,发现无法加载验证码和安全问答问题

经过研究和谷歌搜索,发现原来discuz会在头部判断用户来源

所以解决办法是在nginx的虚拟主机配置中加入:

proxy_pass_header User-Agent;

proxy_set_header Host $host;

这样才能正确加载discuz中的验证码和安全问题

如果你也遇到了在nginx中无法加载discuz中的验证码,请使用上方同样的方法,我列举一个虚拟主机的配置例子:

server {
listen 80;
server_name bbs.aaa.com;
location / {
proxy_pass http://bbs.aaa.com:82;
proxy_redirect http://bbs.aaa.com:82/ /;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header User-Agent;
proxy_set_header Host $host;

}
access_log logs/bbs.aaa.com.access.log;
}

discuz论坛地址栏带端口号的解决方法【nginx+apache验证码不显示】

2014年12月24日 没有评论

我们往往会使用nginx+apache来作为服务器环境,nginx使用80端口,Apache使用82端口,那么当我们安装discuz的时候,在加入了nginx映射到Apache端口后,往往discuz的链接地址栏上会出现端口号,如82

那么我们如何解决这个问题呢?

x2寻找文件source/class/class_core.php,寻找:$_G[‘siteport’]

将此行注释即可,或者强制在此文件的头部,加上:$_SERVER[‘HTTP_HOST’]=”www.域名.com”;

到此就可以解决discuz论坛地址栏带端口号的解决方法【nginx+apache反射】,但是x2.5是修改:

source/class/discuz/discuz_application.php

————————–

但是你会发现另外一个问题,就是验证码不能正确显示,解决办法如下:

直接在config/config_global.php下增加$_SERVER[‘HTTP_HOST’]=”www.域名.com”;即可解决所有问题

研究半天实在搞不定,原来还有此绝招~

 

【已解决】discuz中如何自定义获取fromhash()的值

2014年11月29日 没有评论

往往我们需要在非discuz的内部页面中加入退出功能,比如链接:/bbs/member.php?mod=logging&action=logout&formhash=899b6270

最后一个参数fromhash是动态改变的,那么如何获取呢?请参考以下代码:

function myget_formhash($uid,$username,$authkey,$cookiepre,$cookiedomain,$cookiepath) {
/*
//$cookiepre\$cookiedomain\$cookiepath参数说明(bbs/config/config_global.php)
$authkey=$_config[‘security’][‘authkey’];
$cookiepre=$_config[‘cookie’][‘cookiepre’];
$cookiedomain=$_config[‘cookie’][‘cookiedomain’];
$cookiepath=$_config[‘cookie’][‘cookiepath’];
*/
$authkey=md5($authkey.$_COOKIE[$cookiepre.substr(md5($cookiepath.’|’.$cookiedomain),0,4).’_saltkey’]);
return substr(md5(substr($_SERVER[‘REQUEST_TIME’],0,-7).$username.$uid.$authkey),8,8);
}
require(‘bbs/config/config_global.php’);
$fromhash=myget_formhash(
$_SESSION[‘loginUser’][‘uid’],
$_SESSION[‘loginUser’][‘username’],
$_config[‘security’][‘authkey’],
$_config[‘cookie’][‘cookiepre’],
$_config[‘cookie’][‘cookiedomain’],
$_config[‘cookie’][‘cookiepath’]
);

这个时候$fromhash就是最终我们所要获取的值,最后的链接可以改为:

/bbs/member.php?mod=logging&action=logout&formhash=<?php echo $fromhash;?>

 

本文请结合:http://www.zhanghongliang.com/article/561

分类: php学习 标签: ,

discuz手动增加登录成功或退出成功的执行代码

2014年11月26日 没有评论

往往有的时候,我们需要根据discuz登录成功或者退出成功后加入自己的代码,今天稍微看了下,具体如下:

登录成功:

打开source/class/class_member.php

找到:if($result[‘status’] > 0) {

在此处加入:my_loginfunction(),自己定义下my_loginfunction()就可以了

 

退出成功:

打开source/class/class_member.php

找到function on_logout(){

再找到clearcookies(),加入:my_loginout(),自定义下my_loginout()就可以了。

 

注册成功:

注册成功的时候也是需要直接登录成功的,那么找到:

$uid = uc_user_register(addslashes($username), $password, $email, $questionid, $answer, $_G[‘clientip’]);

在if($uid <= 0) {后面加上:

else {
session_start();
$_SESSION[‘loginUser’]=array(‘uid’=>intval($uid),’username’=>$username);
}

如图:

1

discuz手动增加登录成功或退出成功的执行代码就结束并搞定了

分类: php学习 标签: , ,

discuz用户新消息表是哪个

2014年11月26日 没有评论

discuz用户新消息表是哪个?在下面2个表中

pre_common_member_grouppm
pre_common_grouppm

其中pre_common_grouppm是消息内容

而pre_common_member_grouppm是具体的消息状态

 

分类: php学习 标签: ,
css.php