php实现编码的转换

 更新时间:2016年11月25日 16:05  点击:1738

php实现编码的转换,这里会把gb2312转换成utf-8

function gb2utf8($gb) {
 if( !trim($gb) ) return $gb;
 $utf8='';
 while($gb) {
     if( ord(substr($gb,0,1)) > 127 ) {
  $t=substr($gb,0,2);
  $gb=substr($gb,2);
  $utf8 .= $this->u2utf8($this->codetable[hexdec(bin2hex($t))-0x8080]);
     }
     else {
  $t=substr($gb,0,1);
  $gb=substr($gb,1);
  $utf8 .= $this->u2utf8($t);
     }
 }
 return $utf8;
    }
   
    function u2utf8($c) {
 $str='';
 if ($c < 0x80) {
     $str.=$c;
     }
 else if ($c < 0x800) {
     $str.=chr(0xC0 | $c>>6);
     $str.=chr(0x80 | $c & 0x3F);
     }
 else if ($c < 0x10000) {
     $str.=chr(0xE0 | $c>>12);
     $str.=chr(0x80 | $c>>6 & 0x3F);
  $str.=chr(0x80 | $c & 0x3F);
 }
 else if ($c < 0x200000) {
     $str.=chr(0xF0 | $c>>18);
     $str.=chr(0x80 | $c>>12 & 0x3F);
     $str.=chr(0x80 | $c>>6 & 0x3F);
     $str.=chr(0x80 | $c & 0x3F);
 }
 return $str;
    }

} 说一点,编码集我就不写出来了,用for一下就知道了.

php用户密码修改代码

<?php
 @session_start();
 require_once("../inc/ring_admin.php");
 require_once("../../inc/connect.php");
 require_once("../../admin/inc/function.php");
 ring_login();
 $pwd = get_value('pwd','post');
 $pwd2 = get_value('pwd2','post');
 $pwd3 = get_value('pwd3','post');
 $sql = "select * from gx_member  where m_pwd='".md5($pwd)."' and m_name='".$_SESSION['uid']."'";
 
  if( $pwd2!=$pwd3 || strlen( $pwd2)<6 || strlen( $pwd2)>12 ){
   alert('两次输入的新密码不正确,请重新输入!','');
  }else{   
   if(mysql_num_rows( mysql_query($sql) ) ){
    $sql="Update gx_member set m_pwd='".md5($pwd2)."' where m_name='".$_SESSION['uid']."'";
    mysql_query($sql) or die(mysql_error());
    alert('密码修改成功!','');
   }else{
    alert('旧密码不正确,请重新输入!','');
   }
  }
 
 
?>

新闻小偷代码,php小偷程序

<?php

/**
 * $Id$
 *
 * Filename : referer.php
 * Author   : 额系菜屁屁
 * Email    : lianxiwoo@gmail.com | hotmail.com
 * Create   : 20060831
 * LastMod  : 2006
 * Usage    :
 * 国际村首发
*/

//ini_set('display_errors', 1);
//error_reporting(E_ALL ^ E_NOTICE);
//header("Content-type:text/html;charset=utf-8");

set_time_limit(5);

$referer = 'http://php.club.goodoon.com';
$data = 'Hello PHPX!';
$host = "www.phpx.com";
$path = "/happy/index.php";
$port = '80';
$user = '额系菜屁屁';
$pswd = '屁屁';


// {{{ 方法 1 ,用 fsockopen
/*
// 处理好 formhash 的值就可以实现登录,这里还不可以,弄过discuz的可以尝试一下
$path = "/happy/logging.php?action=login";
$data = "formhash=&referer=$referer&loginmode=normal&cookietime=2592000&loginfield=username&username=$user&password=$pswd&questionid=0";
*/

$q = '';
$q .= "GET $path HTTP/1.1rn";
$q .= "Host: $hostrn";
$q .= "Referer: $refererrn"; // 看这里
$q .= "Content-type: application/x-www-form-urlencodedrn";
$q .= "Content-length: ".strlen($data)."rn";
$q .= "Accept: */*rn";
$q .= "Connection: closern";
$q .= "rn";
$q .= $data;

$fp = fsockopen($host, $port);
fputs($fp, $q);
$r = '';
while(!feof($fp)) {
  $r .= fgets($fp);
}
fclose($fp);
//echo $r;
// }}}

// {{{ 方法 2 ,用 curl 系列函数(另外 curl 真的非常不错,值得大家尝试。你,值得拥有。 ^_^)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.phpx.com/happy/logging.php?action=login");
curl_setopt($ch, CURLOPT_REFERER, $referer); // 看这里,你也可以说你从google来
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
// 上面这句,当然你可以说你是baidu,改掉这里的值就ok了,可以实现小偷的功能,
//你也可以自己做个 spider 了,那么就伪装这里的 CURLOPT_USERAGENT 吧

curl_setopt($ch, CURLOPT_POST, 1); // post 过去
curl_setopt($ch, CURLOPT_POSTFIELDS, array('username' => $user, 'password' => $pswd)); // post 的字段
// 当然这里也可以用这个方式来实现登录,不过这里对discuz来讲还是有 formhash 问题,
// 也许换个没有这种安全验证机制的登录是可以的。
// 烦琐的我就不再弄了。

$r = curl_exec($ch);
curl_close($ch);
// }}}

// {{{ 方法 3 就是 stream 系列函数了
$opts = array(
 "http" => array(
  'method' => "GET",
  'header' => "Referer: http://php.club.goodoon.comrnAccept: */*rnAccept-language: zh-cnrnCookie: username=额系菜屁屁rn"
  /*也许“额系菜屁屁”这里需要encode什么滴*/
 )
);

$context = stream_context_create($opts);
// 当然这里也可以用 stream_context_set_option 函数设置更多 options

$fp = fopen("http://www.phpx.com/happy/index.php", "r", false, $context);
fpassthru($fp);
fclose($fp);
// }}}

/**
总结,虽然这里什么事情也没有去做。

但是,这里告诉大家的东西很显然,

以上就是使用我们都喜欢的 php 伪装 http 的 referer,就这样。

所以,referer 不是完全可以信任的。

我所知道的方法就这些,希望能给您炎热的夏天带来凉爽的快感,记住,有了快感你就喊哦! ^_^

以上涉及的东西,不光只有referer问题,同时您也可以看出来,我们可以伪装的东西很多,

很容易就可以做出小偷呀什么的东西来,嘿嘿

当然做小偷还有许多东西要做,比如网页内容可以取下来后,还是需要分析的,这个当然要用 preg_* 系列函数了,

额一向注重实惠,以后有空实惠的说道说道正则里的美女 “preg_*” ^_^

兄弟们支持就投票,呵呵,额系菜屁屁!加油额系菜屁屁!加油好男儿!加油兄弟们!加油phpx!

再提一下,抓取往页,linux 下 wget 可能是最合适的人选了,大家可以试一下哦,功能之强大,大家都知道了。

*/

?>

<?php
session_start();
# 取得随机字符
function getRandStr($length = 4, $mode = 1)
{
 $str1 = '123456789';
 $str2 = 'abcdefghijklmnopqrstuvwxyz';
 $str3 = 'ABCDEFGHIJKLMNPQRSTUVWXYZ';
 $str4 = '_';
 $str5 = '`~!@#$%^&*()-+=\|{}[];:'",./?';
 $str6 = '孙继海立功了不要给日本人任何机会伟大的中国右后卫他继承中华民族的光荣传统董存瑞黄继光秋少云在这一刻灵魂突起孙继海一个人他代表了中华民族足球悠久的传统在这一刻他不是一个人的战斗他不是一个人李毅大帝面对这个点球他面对的是全世界中国球迷的目光和期待川口能活曾经在附加赛当中世界杯预选塞的附加赛当中扑出过无数个点球大帝肯定深知这一点他还能够微笑着面对他面前的这个人吗秒钟以后他会是怎么的表情球进了比赛结束了中国队队获得了胜利日本队他们没有再一次的到在济科的面前伟大的中华人民共和国伟大的中国队的右后卫小猫今天生日快乐中华人民共和国万岁日本队也许会后悔的济科他在下半场多打一人的情况下打得太保守太沉稳了他失去了自己的勇气面对中国足球悠久的历史和传统他没有在拿出小组赛那样冲撞门将的作风终于自惭形秽他们该回家了他们不用回遥远的日本因为他们会选择集体剖腹自杀再见';

 switch ($mode)
 {
  case '0':
    $str = $str1.$str2.$str3.$str4;
    break;

  case '1':
    $str = $str1;
    break;

  case '2':
    $str = $str2;
    break;

  case '3':
    $str = $str3;
    break;

  case '4':
    $str = $str2.$str3;
    break;

  case '5':
    $str = $str1.$str2;
    break;

  case '6':
    $str = $str1.$str3;
    break;

  case '7':
    $str = $str1.$str2.$str3;
    break;

  case '8':
    $str = $str1.$str2.$str3.$str4.$str5;
    break;
  case '9':
    $str = $str6;
    break;
  default :
    $str = $str1.$str2.$str3.$str4;
    break;
 }

 $result = "";

 if($mode==9)
 {
  $tmp1 = $length/2;
  $tmp = explode(".",strlen($str)/2);
  for ($i = 0 ; $i < $tmp1 ; $i++)
  {
   $result .= Substr($str,mt_rand(0,$tmp[0])*2-$length,2);
  }
 }
 else
 {
  for ($i = 0 ; $i < $length ; $i++)
  {
   $result .= $str[mt_rand(0 , strlen($str) - 1)];
  }
 }
 return $result;
}

##
# 生成验证码图片
#
function createAuthNumImg($randStr,$isGB=false)
{
 Header("Content-type: image/PNG");

 $im  = imagecreate(50,20);
 $black = ImageColorAllocate($im, 0,0,0);
 $white = ImageColorAllocate($im, 255,255,255);
 $gray = ImageColorAllocate($im, 0,100,150);
 imagefill($im,50,19,$gray);
 
 for($i=0;$i<80;$i++) # 加入干扰象素
 {
  $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
  imagesetpixel($im, rand()%50 , rand()%19 , $randcolor);
 }

 if($isGB!=false) # 采用中文验证码
 {
  require_once("GB2312toUTF8.inc.php"); 
  $GB2312toUTF = new GB2312toUTF8();
  imagettftext($im, 10, 5, 5, 16, $white, "simsun.ttc", $GB2312toUTF->gb2utf8($randStr));
 }
 else imagestring($im, 8, 8, 3, $randStr, $white); # 将验证码绘入图片

 ImagePNG($im);
 ImageDestroy($im);

 $_SESSION['chknum'] = $randStr; # 保存验证码
}
$m =$_GET["m"];
if(empty($m)) {
 $m=9;
}
createAuthNumImg(getRandStr("6",$m),1)
?>

<?php
 class majax extends blogadmin {
  
  var $result = '<?xml version="1.0" encoding="gb2312"?>';
  function majax($db) {
   $this->db = $db;
   $this->adminname = $_SESSION['adminname'];
  }

  function checkLogin() {
   if($this->islogin()) {
    Return 0;
   }else{
    Return 1;
   }
  }
  
  function addCatResult($cTitle) {
   $cId = $this->addCat($cTitle);
   if($cId>0) {
    $this->result .="<succes id="$cId">$cTitle</succes>";
   }else {
    $this->result .="<loss id="$cId">$cTitle</loss>";
   }
   Return $this->result;
  }

  function upCatResult($cId,$cTitle) {
   if($this->upCat($cId,$cTitle)) {
    $this->result .="<succes id="$cId">$cTitle</succes>";
   }else {
    $this->result .="<loss id="$cId">$cTitle</loss>";
   }
   Return $this->result;
  }

  function delCat($cId,$cNum) {
   if($this->delCat($cId,$cNum)) {
    $this->result .="<succes id="$cId">$cTitle</succes>";
   }else {
    $this->result .="<loss id="$cId">$cTitle</loss>";
   }
   Return $this->result;
  }

  function delReviewResult($rId,$aId) {
   if($this->delReview($rId,$aId)) {
    $this->result .="<succes id="$rId">$cTitle</succes>";
   }else {
    $this->result .="<loss id="$rId">$cTitle</loss>";
   }
   Return $this->result;
  }

  function addLinkResult($ln,$lu,$lc) {
   $lId = $this->addLink($ln,$lu,$lc);
   if($lId>0) {
    $this->result .="<succes id="$lId">yes</succes>";
   }else {
    $this->result .="<loss>no</loss>";
   }
   Return $this->result;
  }
  function editLinkResult($lid,$ln,$lu,$lc) {
   if($this->editLink($lid,$ln,$lu,$lc)) {
    $this->result .="<succes id="$lid">yes</succes>";
   }else {
    $this->result .="<loss>no</loss>";
   }
   Return $this->result;
  }

  /*function addBokeResult($cId,$cTitle,$aAuthor,$isCmd,$aContent,$isOpen,$bokeUrl){
   $aId = $this->addBoke($cId,$cTitle,$aAuthor,$isCmd,$aContent,$isOpen,$bokeUrl);
   if($aId>0) {
    $this->result .="<succes id="$cId">$cTitle</succes>";
   }else{
    $this->result .="<loss id="$cId">$cTitle</loss>";
   }
   Return $this->result;
  }*/
    }
?>

[!--infotagslink--]

相关文章

  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • Javascript类型转换的规则实例解析

    这篇文章主要介绍了Javascript类型转换的规则实例解析,涉及到javascript类型转换相关知识,对本文感兴趣的朋友一起学习吧...2016-02-27
  • 美图秀秀把普通照片快速转换成卡通效果教程

    今天小编在这里就来给美图秀秀的这一款软件的使用者们来说下把普通照片快速转换成卡通效果的教程,各位想知道具体制作步骤的使用者们,那么下面就快阿里跟着小编一起看一...2016-09-14
  • JS实现的简洁纵向滑动菜单(滑动门)效果

    本文实例讲述了JS实现的简洁纵向滑动菜单(滑动门)效果。分享给大家供大家参考,具体如下:这是一款纵向布局的CSS+JavaScript滑动门代码,相当简洁的手法来实现,如果对颜色不满意,你可以试着自己修改CSS代码,这个滑动门将每一...2015-10-21
  • jQuery+slidereveal实现的面板滑动侧边展出效果

    我们借助一款jQuery插件:slidereveal.js,可以使用它控制面板左右侧滑出与隐藏等效果,项目地址:https://github.com/nnattawat/slideReveal。如何使用首先在页面中加载jquery库文件和slidereveal.js插件。复制代码 代码如...2015-03-15
  • PHP+jQuery翻板抽奖功能实现

    翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息。看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟...2015-10-21
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • 浅析C#数据类型转换的几种形式

    本篇文章是对C#中数据类型转换的几种形式进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • PHP实现今天是星期几的几种写法

    复制代码 代码如下: // 第一种写法 $da = date("w"); if( $da == "1" ){ echo "今天是星期一"; }else if( $da == "2" ){ echo "今天是星期二"; }else if( $da == "3" ){ echo "今天是星期三"; }else if( $da == "4"...2013-10-04
  • JavaScript实现数据类型的相互转换

    这篇文章主要为大家详细介绍了JavaScript实现数据类型的相互转换,感兴趣的朋友可以参考一下...2016-03-09
  • JavaScript实现Base64编码转换

    这篇文章主要介绍了JavaScript实现Base64编码转换的相关资料,非常简单实用,需要的朋友可以参考下...2016-04-25
  • PHP编码转换函数mb_convert_encoding与iconv用法

    文章来实现一个PHP编码转换函数mb_convert_encoding与iconv用法,希望例子能帮助到各位。 将一个短信接口代码从apache迁移到nginx+php-fpm后,发现无法发出短信了,查...2016-11-25
  • c#入门之类型转换详解

    这篇文章主要介绍了c#的类型转换详解,类型转换分两种形式:隐式转换、显示转换,下面是详细介绍...2020-06-25
  • 原生js实现fadein 和 fadeout淡入淡出效果

    js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/100(兼容FF和GG)。 先来看看设置透明度的兼容性代码: 复制代码 代码如下: function setOpacity(ele, opacity) { if (...2014-06-07
  • java中JSONObject转换为HashMap(方法+main方法调用实例)

    这篇文章主要介绍了java中JSONObject转换为HashMap(方法+main方法调用实例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-14
  • C#将数字转换成字节数组的方法

    这篇文章主要介绍了C#将数字转换成字节数组的方法,涉及C#字符串操作的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • JSON字符串转换JSONObject和JSONArray的方法

    这篇文章主要介绍了JSON字符串转换JSONObject和JSONArray的方法的相关资料,需要的朋友可以参考下...2016-06-12