CURL伪造IP和来路,还可以进行投票

curl伪造ip和来路,还可以进行投票,但是,$_SERVER['REMOTE_ADDR']无法伪造。

客户端:

<?php
$headers['CLIENT-IP'] = '202.103.229.40'; 
$headers['X-FORWARDED-FOR'] = '202.103.229.40';
 
$headerArr = array(); 
foreach( $headers as $n => $v ) { 
    $headerArr[] = $n .':' . $v;  
}
 
ob_start();
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://localhost/curl/server.php");
curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr );  //构造IP
curl_setopt ($ch, CURLOPT_REFERER, "http://www.163.com/ ");   //构造来路
curl_setopt( $ch, CURLOPT_HEADER, 1);
 
curl_exec($ch);
curl_close ($ch);
$out = ob_get_contents();
ob_clean();
 
echo $out;
?>
服务端:

<?php
function GetIP(){
    if(!empty($_SERVER["HTTP_CLIENT_IP"]))
        $cip = $_SERVER["HTTP_CLIENT_IP"];
    else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
        $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if(!empty($_SERVER["REMOTE_ADDR"]))
        $cip = $_SERVER["REMOTE_ADDR"];
    else
    $cip = "无法获取!";
    return $cip;
}
echo "<BR>访问IP: ".GetIP()."<br>";
echo "<BR>访问来路: ".$_SERVER["HTTP_REFERER"];
?>


关键词: curl伪造ip

Js添加网页键盘翻页功能,实现键盘控制翻页js代码

网站添加了键盘左右按键和回车按键来翻页。通过按左右键进入上下章,这些实用的小功能可以提高用户阅读体验。个人觉得非常不错,呵呵,现在附上代码:

举例:
<a id="last" href="<?=$lefturl?>">上一章</a>
<a id="booklist" href="<?=$booklisturl?>">返回目录</a>
<a id="next" href="<?=$righturl?>">下一章</a>
JS代码:

<script language="javascript">
<!--
last=document . getElementById("last").href;
next=document . getElementById("next").href;
booklist=document . getElementById("booklist").href;
function keyUp(e) {
if(navigator.appName == "Microsoft Internet Explorer")
{
var keycode = event.keyCode;
var realkey = String.fromCharCode(event.keyCode);
}else
{
var keycode = e.which;
var realkey = String.fromCharCode(e.which);
}
if(keycode==39){
window.location.href=next;
}
if(keycode==37){
window.location.href=last;
}
if(keycode==13){
window.location.href=booklist;
}
}
document.onkeydown = keyUp;
//-->
</script>

关键词: js键盘翻页

分享2种PHP的源码加密方式,附代码

PHP的源码加密方式1:


<?php 
function encode_file_contents($filename) { 
$type=strtolower(substr(strrchr($filename,'.'),1)); 
if('php'==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 并且可写 则进行压缩编码 
$contents = file_get_contents($filename);// 判断文件是否已经被编码处理 
$contents = php_strip_whitespace($filename); 
// 去除PHP头部和尾部标识 
$headerPos = strpos($contents,'<?php'); 
$footerPos = strrpos($contents,'?>'); 
$contents = substr($contents,$headerPos+5,$footerPos-$headerPos); 
$encode = base64_encode(gzdeflate($contents));// 开始编码 
$encode = '<?php'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>"; 
return file_put_contents($filename,$encode); 

} 
return false; 
} 
//调用函数 
$filename='dam.php'; 
encode_file_contents($filename); 
echo "OK,加密完成!" 
?>

PHP的源码加密方式2:

<?php 
function RandAbc($length=""){//返回随机字符串
  $str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  return str_shuffle($str);
}
$filename='dam.php';
$T_k1=RandAbc();//随机密匙1
$T_k2=RandAbc();//随机密匙2
$vstr=file_get_contents($filename);//要加密的文件
$v1=base64_encode($vstr);
$c=strtr($v1,$T_k1,$T_k2);//根据密匙替换对应字符。
$c=$T_k1.$T_k2.$c;
$q1="O00O0O";
$q2="O0O000";
$q3="O0OO00";
$q4="OO0O00";
$q5="OO0000";
$q6="O00OO0";
$s='$'.$q6.'=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");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));';
$s='<?php
'.$s.
'
 ?>';
echo "OK,加密完成!";
//生成 加密后的PHP文件
$fpp1 = fopen('dam.php','w');
fwrite($fpp1,$s) or die('写文件错误'); 
?> 

其实,PHP加密源码方式有很多,譬如,免费的微盾PHP加密,还有 phpjm . net 搞的在线加密,只是phpjm更复杂点而已。

关键词: php源码加密

PHPCMS V9远程附件上传的一个FTP上传处理类

phpcms V9远程附件上传的一个ftp上传处理类

贴出一个PHPCMS V9里面的一个FTP处理类,大致讲讲怎么实现远程附件的实现。

这个类大致使用方法:

  首先通过 $ftps->connect($host,$username,$password,$post,$pasv,$ssl,$timeout);进行FTP服务器连接。

  通过具体的函数进行FTP的操作。

   $ftps->mkdir() 创建目录,可以创建多级目录以“/abc/def/higk”的形式进行多级目录的创建。

   $ftps->put()上传文件

   $ftps->rmdir()删除目录

   $ftps->f_delete()删除文件

   $ftps->nlist()列出指定目录的文件

   $ftps->chdir()变更当前文件夹

   $ftps->get_error()获取错误信息

» 阅读全文

关键词: phpcms , 远程附件上传 , ftp上传

Mcrypt拓展的带密钥PHP加密和解密算法

mcrypt的优点不仅仅在于其提供的加密算法较多,在windows下随PHP包一起发布,还在于它可以对数据进行加/解密处理,此外,它还提供了包括DES算法在内的35种处理数据用的函数。

/**
 * Mcrypt 加密/解密
 * @param type $date 要加密和解密的数据
 * @param type $key 密钥
 * @param type $mode  encode 默认为加密/decode 为解密
 * @return type
 */
function authCrypt($date, $key , $mode = 'encode') {
    if ($mode == 'decode') {
        $date = base64_decode($date);
    }
    if (function_exists('mcrypt_create_iv')) {
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    }
    if (isset($iv) && $mode == 'encode') {
        $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv);
    } elseif (isset($iv) && $mode == 'decode') {
        $passcrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv);
    }
    if ($mode == 'encode') {
        $passcrypt = base64_encode($passcrypt);
    }
    return $passcrypt;
}

关键词: mcrypt , 解密算法 , php加密

Mysql实现文章查询上一篇和下一篇功能,附sql语句?

mysql实现文章查询上一篇和下一篇功能,附sql语句?

最近在做一个项目用到的文章查询上一篇和下一篇功能,详见:http://www.yifen5.com

Mysql实现文章查询上一篇和下一篇功能,sql语句:

(select * from articles where id < #id# order by id desc limit 1)
union all 
(select * from articles where id > #id# order by id limit 1)

OK,网上大部分都是这么干的,效率上的话,包子强烈建议不要 select * 之类的,效率与指定的几个字段效率有点区别。

关键词: sql语句 , mysql

又一道PHP面试过程中的基础陷阱题

基础陷阱题:
<?php
$a=3;
$b=6;
if($a=5||$b=7){
    $a++;  
    $b++;
}
var_dump($a, $b);
1陷阱一
把$a=5、$b=7看成了$a==5、$b==7
错误结果:3,6

» 阅读全文

关键词: php面试

PHP采集利器:phpQuery,像jQuery一样轻松采集内容

phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大 xpath选 择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便。那为什么不直接使用呢?这个,去看一下官网的函数列表 就知道了,如果 对自己的记忆力很有信心, 不妨一试。

几个简单的例子

获取蓝色理想最热的招聘职位

<?     
    include 'phpQuery.php';     
    phpQuery::newDocumentFile('url地址。。。');     
    $companies = pq('#hotcoms .coms')->find('div');     
    foreach($companies as $company)     
    {     
       echo pq($company)->find('h3 a')->text()."<br>";     
    }    

» 阅读全文

关键词: php采集 , phpquery采集