我的是DZX2.5最新版本的程序,用的服务器是A5合租服务器,由于禁用fsockopen函数,所以根据教程修改成pfsockopen,然后其他地方使用未出现问题,就是邮箱验证时可以收到邮件,点击验证地址时提示验证码不正确。附上修改教程。
找到程序里的 fsockopen 函数,替换为:pfsockopen,即可解决所有问题,两个函数的区别在于 pfsockopen 保持 keep-alive,使得黑客无法进行 连接数攻击。 已知使用 fsockopen 函数的程序文件路径(在fsockopen 前加 p, 即fsockopen 修改为 pfsockopen 即可 )[其他程序可通过错误提示的文件路径查看更改]: Discuz X2 安装提示不支持fsockopen:
将 /include/install_var.php 文件里的
$func_items = array(‘mysql_connect’, ‘fsockopen‘, ‘gethostbyname’, ‘file_get_contents’, ‘xml_parser_create’);
替换为:
$func_items = array(‘mysql_connect’, ‘pfsockopen‘, ‘gethostbyname’, ‘file_get_contents’, ‘xml_parser_create’);
即可正常安装。
X2全部包含fsockopen的文件(如果用邮件只修改邮件即可,其他文件都是自动判断 pfsockopen):
\api\manyou\Manyou.php
\api\trade\api_alipay.php
\install\include\install_function.php
\install\include\install_lang.php
\install\include\install_var.php
\source\admincp\admincp_addons.php
\source\admincp\admincp_checktools.php
\source\admincp\admincp_cloud.php
\source\admincp\admincp_misc.php
\source\admincp\cloud\cloud_doctor.php
\source\class\class_image.php
\source\class\class_sphinx.php
\source\class\block\xml\block_xml.php
\source\function\function_connect.php
\source\function\function_core.php
\source\function\function_filesock.php
\source\function\function_importdata.php
\source\function\function_mail.php 邮件相关
\source\function\function_plugin.php
\source\include\portalcp\portalcp_upload.php
\source\language\lang_admincp_cloud.php
\source\module\forum\forum_ajax.php
\source\module\misc\misc_manyou.php
\uc_client\client.php
\uc_client\lib\sendmail.inc.php 邮件相关
\uc_client\model\misc.php
\uc_server\install\func.inc.php
\uc_server\install\lang.inc.php
\uc_server\lib\sendmail.inc.php 邮件相关
\uc_server\model\misc.php
其中修改了
include/install_var.php
\uc_client\lib\sendmail.inc.php
\uc_server\lib\sendmail.inc.php
下面的文件中未找到fsockopen函数,无法修改
\source\function\function_mail.php
相关截图如下。
测试结果:
收到测试邮件:
验证账号邮箱发送:
收到邮件:
验证邮件截图:
提示验证码不正确:
非常蛋疼啊,不知道哪里出问题了,翻遍百度没找到一个可以解决问题的办法。求官方的人指点迷津,非常感谢啊!!!
可以去我网站注册个测试账号试验下。再次谢过!我网站www.g8f8.com,麻烦你们了!
|