php生成中文验证码程序

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

<?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小偷程序

<?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
 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;
  }*/
    }
?>

 代码如下 复制代码

class makeHtml{
   var $fileName; //文件名
   var $dirRoot;  //目录地址

   function getFile ($name,$root){
    $this->fileName = $name;
    $this->dirRoot = $root;
    if(file_exists($root)) {
     $this->makeRoot($root);
    }
   }

   function makeNew($content){
  $fp = @fopen($this->dirRoot."/".$this->fileName,"w");
  if(!fwrite($fp,$content)){
   fclose($fp);
   @unlink($fn);
   return 0;
  }else{
   fclose($fp);
   return 1;
  }
   }

   function _delFile() {
    if(unlink($this->fileName."/".$this->fileRoot)) {
     Return 1;
    } else {
     Return 0;
    }
   }
  
   function delFile($fileName,$fileRoot) {
    if(unlink($fileRoot."/".$fileName)) {
     Return 1;
    } else {
     Return 0;
    }
   }

   function getRoot() {
    
   }

   function makeRoot() {
    
   }

   function delRoot() {
    
   }

  }

php 实现文章上一页与下一页 代码,这是我要写一个小作品时用到了,今天把它拿出来各各位分享一下下,记得以前我总想法不明白怎么实现文章上下一页的做法,后来在一个BBS看到了原来是判断当前ID然后order by 或asc就可以简单的实现了.

function nextpage($fid,$tag,$bid){
  if('next' ==$tag){
   $sql ="select * from gx_news where id<$fid and menu_id='$bid' order by id desc";
  }elseif('prev' ==$tag){
   $sql ="select * from gx_news where id>$fid and menu_id='$bid' order by id asc";
  }
  $result =mysql_query($sql);
  if(!mysql_num_rows($result) ){
   echo('己经没有了!');
  }else{
   $rs =mysql_fetch_array($result);
   echo "<a href=news_page.php?id=".$rs[0].">".$rs['new_title']."</a>";
  }
 }

好了代码其实很容易的了我也不讲了只是给初学者看看文章上一页与下一页是怎么实现的喽.

[!--infotagslink--]

相关文章

  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24
  • jQuery Real Person验证码插件防止表单自动提交

    本文介绍的jQuery插件有点特殊,防自动提交表单的验证工具,就是我们经常用到的验证码工具,先给大家看看效果。效果图如下: 使用说明 需要使用jQuery库文件和Real Person库文件 同时需要自定义验证码显示的CSS样式 使用实例...2015-11-08
  • C#读取中文文件出现乱码的解决方法

    这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • JS实现随机生成验证码

    这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Mysql在debian系统中不能插入中文的终极解决方案

    在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • Jquery插件实现点击获取验证码后60秒内禁止重新获取

    通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能效果图:先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下:复制代码 代码如下: <!DOCTYPE ht...2015-03-15
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • php实现点击可刷新验证码

    验证码类文件 CreateImg.class.php <&#63;php class ValidationCode { private $width,$height,$codenum; public $checkcode; //产生的验证码 private $checkimage; //验证码图片 private $disturbColor = ''; /...2015-11-08
  • 基于JavaScript实现验证码功能

    这篇文章主要介绍了基于JavaScript实现验证码功能的相关资料...2017-04-03