Ⅰ 请php高手帮忙解一段PHP代码,谢谢。
过程很简单,就是修改代码,然后在DOS下执行PHP,就能自己解密了。
例如第一句:
$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
我们只需要在这句之后添加一个:
exit($O00OO0);
运行后显示的结果为:
n1zb/ma5\vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j
那说明第一个语句的等效语句是:
$O00OO0='n1zb/ma5\vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j';
再如你的第二个语句:
$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};
在后面添加一行:
exit($O00O0O);
运行后输出结果为:
base64_decode
说明第二个语句等效为:
$O00O0O='base64_decode';
再看第三个语句:
eval($O00O0O(" ..省略..
=="));
把这一句修改为:
exit($O00O0O(" ..省略..
=="));
在DOS下执行会显示一些文本,那些文本就是该语句的等效语句,粘贴回去既可。
一次用上面的方法,粘贴回去,最后就能看见原始的代码样子了。由于中间有省略的内容,只能告诉方法,无法帮你解出结果。
Ⅱ php 帮写个正则表达式,去掉串内两个特殊字符(! \ )
简单粗暴一点的话,直接用str_replace,字符串替换
$str = str_replace('!','',$str);
$str = str_replace('\','',$str);
稍微复杂一点的话,用正则替换
$str = preg_replace('/(^!)|(\\)/','',$str);
将开头的!或者\字符替换成空字符(^表示开头)
Ⅲ 求thinkphp高手帮忙解答一个关于session的问题
Cannot send session cookie - headers already sent by
一连出现几个这样的提示,只能说明一件事,这里肯定有问题啦.
解决方案:
1,回看代码,看session_start之前是否有输出.
2,如果确认第一步没问题,那就可能是BOM头惹的祸了.下载个去BOM头小工具.一次把所有的代码去一次BOM头.这样,问题应该可以解决了.
3,如果还是不行,那只有出狠招了.修改PHP.ini配置.把你之前的代码用替换一次把所有的session_start去掉.然后在php.ini中设置session.auto_start设置为1,或on.
Ⅳ 请php高手帮帮忙啊~~~~麻烦详细注释下一下代码~~~~急用啊!!!!!
<?php
// dependencies
/**
* description
*
* @library
* @author
* @since
*/
class COXYMallNews extends CPlugin{ //声明CPlugin类的一个子类COXYMallNews
var $tplvars; //声明变量
function COXYMallNews() { //声明一个方法COXYMallNews
//$this->CPlugin($db, $tables , $templates);
//在这个方法里面调用CPlugin这个方法进行处理并传递了参数
}
function DoEvents(){
global $base, $_CONF, $_TSM , $_VARS , $_USER , $_BASE , $_SESS;
//声明全局作用域;
parent::DoEvents(); //调用父类的DoEvents方法;
if (strstr($_GET["sub"] , "oxymall.plugin.news.")) { //如果在通过url地址传递过来的sub值中存在"oxymall.plugin.news."这个子字符串,那么
$sub = str_replace("oxymall.plugin.news." , "" ,$_GET["sub"]); // 获得sub值后去掉"oxymall.plugin.news."这个子字符串,把精简后的字符串赋值给$sub
$action = $_GET["action"]; //把action的值赋给$action这个变量;
//read the mole
$this->tpl_mole = $this->mole->plugins["moles"]->getMoleInfo($_GET["mole_id"]); //通过一系列中间传递参数$_GET["mole_id"],并把调用方法返回的值赋给tpl_mole属性。
switch ($sub) {
case "landing": //如果$sub值等于langding
$data = new CSQLAdmin("news/" . $sub, $this->__parent_templates,$this->db,$this->tables,$extra); //创建CSQLAdmin对象(同时传递了一些列参数)
$this->PrepareFields(&$data->forms["forms"]); //调用PrepareFields方法
return $data->DoEvents(); //使用创建的对象调用DoEvents方法并返回结果;
break;
}
}
}
/**
* description
*
* @param
*
* @return
*
* @access
*/
function PrepareFields($forms) {
//调用CTemplateStatic类的Replace方法(同时给这个方法传递了参数),把处理结果赋值给$forms["list"]["title"]
$forms["list"]["title"] = CTemplateStatic::Replace(
$forms["list"]["title"],
array( "title" => $this->tpl_mole["mod_name"])
);
////调用CTemplateStatic类的Replace方法(同时给这个方法传递了参数),把处理结果赋值给$forms["edit"]["title"]
$forms["edit"]["title"] = CTemplateStatic::Replace(
$forms["edit"]["title"],
array( "title" => $this->tpl_mole["mod_name"])
);
//调用CTemplateStatic类的Replace方法(同时给这个方法传递了参数),把处理结果赋值给$forms["add"]["title"]
$forms["add"]["title"] = CTemplateStatic::Replace(
$forms["add"]["title"],
array( "title" => $this->tpl_mole["mod_name"])
);
}
}
?>