PHPCMS V9vip会员申请注册提醒实际操作不成功的改

阅读  ·  发布日期 2021-01-08 09:37  ·  admin
本人叙述

联络方法:【QQ:915449175】电子邮箱:【st.163.】【】


PHPCMS V9vip会员申请注册时提醒实际操作不成功,它是由于室内空间服务提供商关掉了fsockopen()涵数作用。
寻找phpcms/modules/member/classes/client.class.php第三61行,更换fsockopen为pfsockopen就可以。


但是一些室内空间商同时也关掉了pfsockopen涵数,如何办呢?下边有一些处理方式出示大伙儿参照。
企业网站建设模板

有关fsockopen pfsockopen涵数被和谐用的处理方式一、

网络服务器同时禁止使用了fsockopen pfsockopen,那麼用别的涵数替代,如stream_socket_client()。留意:stream_socket_client()和fsockopen()的主要参数不一样。
实际实际操作:
检索程序中的标识符串fsockopen(更换为stream_socket_client(,随后,将原fsockopen涵数中的端口号主要参数 80 删除,并加到$host。
实例以下

改动前:

$fp = fsockopen($host, 80, $errno, $errstr, 30);



$fp = fsockopen($host, $port, $errno, $errstr, $connection_timeout);

改动后:

$fp = stream_socket_client( tcp:// .$host. 80 , $errno, $errstr, 30);



$fp = stream_socket_client( tcp:// .$host. : .$port, $errno, $errstr, $connection_timeout);

二、

假如PHP版本号小于5.0,fsockopen被和谐用,又沒有stream_socket_client()如何办呢?自身写一个涵数完成fsockopen的作用,参照编码:
function b_fsockopen($host, $port, $errno, $errstr, $timeout) {
$ip = gethostbyname($host);
$s = socket_create(AF_INET, SOCK_STREAM, 0);
if (socket_set_nonblock($s)) {
$r = @socket_connect($s, $ip, $port);
if ($r || socket_last_error() == EINPROGRESS) {
$errno = EINPROGRESS;
return $s;
}
}
$errno = socket_last_error($s);
$errstr = socket_strerror($errno);
socket_close($s);
return false;
}

实际实际操作:

1.最先寻找应用fsockopen涵数的编码段,将上边编码加至其上方,检索该编码段中的标识符串 fsockopen( 更换为 b_fsockopen( 。

2.由于fsockopen涵数回到文档指针因此能够被文档涵数实际操作,可是这一b_fsockopen涵数未能回到文档指针,必须再次改动编码段:用socket_read( 更换掉 fread( ,用socket_write( 更换掉fwrite( ,用socket_close( 更换掉fclose( 。

三、

应用CMS类网站源代码的客户,如织梦cmsCMS,phpwind,王国,等程序,请将您的程序升級到全新的版本号并立即升级安全性系统漏洞补丁下载。