|
本帖最后由 红颜似水 于 2021-11-20 18:55 编辑
这个模块源码和中间件是在论坛里下的,对模块数据源,以及提交字段进行了简化操作,(自行增加了表达式二次处理,字段二次处理) 用起来非常好用
但目前的遗憾是 它不支持PHP7,只能用PHP5.6, 随着时间的推移以及技术的更新迭代,大部分的服务器运营环境PHP代码如下(也打包了)
[PHP] 纯文本查看 复制代码 <?php
//此程序不支持 PHP7
error_reporting(0);
session_start();
ini_set("display_errors", 0);
////////////////////////////////////////////////////
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'pass';
$msgkey = 'cunyu0.0';
////////////////////////////////////////////////////
if(substr($_POST['DATA'],0,7)=='GETRAND'){//获取验证码
$_SESSION[rand_temp]=get_rand();
exit(strtoupper(strToHex(rc4($_SESSION[rand_temp],$msgkey))));
}
$temp = str_decode($_POST['DATA'],$msgkey,$_SESSION[rand_temp]);//解密数据
$temp = explode('|+|',$temp);//拆开原始数据
if(count($temp)<4){
exit('Error');
}
//////////////////PHP7支持mysql_ 要用mysqli////////////////////
$con = mysql_connect($dbhost, $dbuser, $dbpass);
if (!$con){
echo str_encode(mysql_error(),$msgkey,$rand);
exit;
}
mysql_select_db($temp[2],$con);
mysql_query("set names GB2312");//这里自己设置数据库的编码 UTF-8,GB2312
//////////////////PHP7支持mysql_ 要用mysqli////////////////////
$rand = $temp[0]*1020/2;//处理客户端效验码
if($temp[1]=='SQLU'){//返回字符串
if($temp[2]!=''){
mysql_select_db($temp[2],$con);
}
$result = mysql_query($temp[3]) or die('-1 ');
while($row = mysql_fetch_row($result))
{
foreach ($row as $a)
{
$txt .= $a."#_#";
}
$txt .= '@_@';
}
echo str_encode($txt,$msgkey,$rand);
sql_close();
exit;
}
if($temp[1]=='EVAL'){//执行代码
eval($temp[2]);
}
function rc4($data,$pwd)
{
$key[] ="";
$box[] ="";
$pwd_length = strlen($pwd);
$data_length = strlen($data);
for ($i = 0; $i < 256; $i++)
{
//$key[$i] = ord($pwd[$i % $pwd_length]); 不支持PHP7
$key[$i] = @ord ($pwd[($pwd_length==0?0:($i % $pwd_length))]);
$box[$i] = $i;
}
for ($j = $i = 0; $i < 256; $i++)
{
$j = ($j + $box[$i] + $key[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for ($a = $j = $i = 0; $i < $data_length; $i++)
{
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$k = $box[(($box[$a] + $box[$j]) % 256)];
$cipher .= chr(ord($data[$i]) ^ $k);
}
return $cipher;
}
function HexTostr($s){
$r = "";
for ( $i = 0; $i<strlen($s); $i += 2)
{
$x1 = ord($s{$i});
$x1 = ($x1>=48 && $x1<58) ? $x1-48 : $x1-97+10;
$x2 = ord($s{$i+1});
$x2 = ($x2>=48 && $x2<58) ? $x2-48 : $x2-97+10;
$r .= chr((($x1 << 4) & 0xf0) | ($x2 & 0x0f));
}
return $r;
}
function strToHex($s) {
$r = "";
$hexes = array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
for ($i=0; $i<strlen($s); $i++) {$r .= ($hexes [(ord($s{$i}) >> 4)] . $hexes [(ord($s{$i}) & 0xf)]);}
return $r;
}
function str_decode($str,$key,$key_rand){//解密函数
return (string)rc4(HexTostr((string)rc4(HexTostr($str),(string)$key_rand)),$key);
}
function str_encode($str,$key,$key_rand){//加密函数
$key_temp = strToHex(rc4($str,(string)$key_rand));
$key_temp = strtoupper(strToHex(rc4($key_temp,$key)));
return $key_temp;
}
function sql_close(){
mysql_close();
$_SESSION[rand_temp]=get_rand();
return true;
}
function get_rand(){
for($i=0; $i<6; $i++){
$rands.= dechex(rand(0,9));
}
return $rands;
}
?>
也不太想单独的去建立一个PHP5的环境了,那会对资源过多的占用
我现在的解决办法就是在运行的环境里再去单独创建一个站点配置PHP5的环境,完全不能直接用到正在运行的网站里
也许是现在年级大了,折腾不动了,搞不了这些东西了吧...
所以将这个源码和中间件发出来,希望有大佬能将它进行二次更新开发,让它能够更好的适用目前的大趋势环境吧
MySQL操作类.rar
(10.64 KB, 下载次数: 608)
|
评分
-
查看全部评分
|