一个将Email图片化的程序, 系统不时地记录如下错误:
[06-Mar-2010 14:17:58] PHP Warning: imagecreate() [<a href='function.imagecreate'>function.imagecreate</a>]: Invalid image dimensions in /home/gouknet1/public_html/DoInfo/digitz.php on line 24
[06-Mar-2010 14:17:58] PHP Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 26
[06-Mar-2010 14:17:58] PHP Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 27
[06-Mar-2010 14:17:58] PHP Warning: imagefill(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 28
[06-Mar-2010 14:17:58] PHP Warning: imagestring(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 29
[06-Mar-2010 14:17:58] PHP Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 30
[06-Mar-2010 14:17:58] PHP Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 31digitiz.php代码如下:<?php
@require("../class/connect.php");
if(!defined('InEmpireCMS'))
{
exit();
}
include("../class/db_sql.php");
include("../class/config.php");
include("../class/userfun.php");
//显示号码为图片
function ShowData()
{
$key=$_GET['key'];//对应字段属性
$data=$_GET['data'];//对应要解密的数据
$data=urldecode(jiajiemi($data,'DECODE',''));//进行解密
$strlen=strlen($data);
$data=strtolower($data);
$imgW=$strlen*10; //支持gd库
if (function_exists("imagejpeg")) {
header ("Content-type: image/jpeg");
$img=imagecreate($imgW,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagejpeg($img);
imagedestroy($img);
}
elseif (function_exists("imagegif")) {
header ("Content-type: image/gif");
$img=imagecreate(140,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagegif($img);
imagedestroy($img);
}
elseif (function_exists("imagepng")) {
header ("Content-type: image/png");
$img=imagecreate($imgW,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagepng($img);
imagedestroy($img);
}
elseif (function_exists("imagewbmp")) {
header ("Content-type: image/vnd.wap.wbmp");
$img=imagecreate($imgW,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagewbmp($img);
imagedestroy($img);
}
else {
include("../class/functions.php");
echo ReadFiletext("../data/images/ecms.jpg");
}
}
ShowData();
?>
函数jiajiemi:
function jiajiemi($string, $operation, $key = ''){
$key = md5($key ? $key : "34577"); //34577为密钥
$key_length = strlen($key);
$string = $operation == 'DECODE' ? base64_decode($string) : substr(md5($string.$key), 0, 8).$string;
$string_length = strlen($string);
$rndkey = $box = array();
$result = '';
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($key[$i % $key_length]);
$box[$i] = $i;
}
for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if($operation == 'DECODE') {
if(substr($result, 0, 8) == substr(md5(substr($result, 8).$key), 0, 8)) {
return substr($result, 8);
} else {
return '';
}
} else {
return str_replace('=', '', base64_encode($result));
}
}
调用使用:urlencode(jiajiemi(Email字段,'ENCODE',''))不知道为什么会提示上面的Php warning呢?
[06-Mar-2010 14:17:58] PHP Warning: imagecreate() [<a href='function.imagecreate'>function.imagecreate</a>]: Invalid image dimensions in /home/gouknet1/public_html/DoInfo/digitz.php on line 24
[06-Mar-2010 14:17:58] PHP Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 26
[06-Mar-2010 14:17:58] PHP Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 27
[06-Mar-2010 14:17:58] PHP Warning: imagefill(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 28
[06-Mar-2010 14:17:58] PHP Warning: imagestring(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 29
[06-Mar-2010 14:17:58] PHP Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 30
[06-Mar-2010 14:17:58] PHP Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/gouknet1/public_html/DoInfo/digitz.php on line 31digitiz.php代码如下:<?php
@require("../class/connect.php");
if(!defined('InEmpireCMS'))
{
exit();
}
include("../class/db_sql.php");
include("../class/config.php");
include("../class/userfun.php");
//显示号码为图片
function ShowData()
{
$key=$_GET['key'];//对应字段属性
$data=$_GET['data'];//对应要解密的数据
$data=urldecode(jiajiemi($data,'DECODE',''));//进行解密
$strlen=strlen($data);
$data=strtolower($data);
$imgW=$strlen*10; //支持gd库
if (function_exists("imagejpeg")) {
header ("Content-type: image/jpeg");
$img=imagecreate($imgW,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagejpeg($img);
imagedestroy($img);
}
elseif (function_exists("imagegif")) {
header ("Content-type: image/gif");
$img=imagecreate(140,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagegif($img);
imagedestroy($img);
}
elseif (function_exists("imagepng")) {
header ("Content-type: image/png");
$img=imagecreate($imgW,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagepng($img);
imagedestroy($img);
}
elseif (function_exists("imagewbmp")) {
header ("Content-type: image/vnd.wap.wbmp");
$img=imagecreate($imgW,24); $black=imagecolorallocate($img,80,80,80);
$gray=imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$gray);
imagestring($img,5,5,3,$data,$black);
imagewbmp($img);
imagedestroy($img);
}
else {
include("../class/functions.php");
echo ReadFiletext("../data/images/ecms.jpg");
}
}
ShowData();
?>
函数jiajiemi:
function jiajiemi($string, $operation, $key = ''){
$key = md5($key ? $key : "34577"); //34577为密钥
$key_length = strlen($key);
$string = $operation == 'DECODE' ? base64_decode($string) : substr(md5($string.$key), 0, 8).$string;
$string_length = strlen($string);
$rndkey = $box = array();
$result = '';
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($key[$i % $key_length]);
$box[$i] = $i;
}
for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if($operation == 'DECODE') {
if(substr($result, 0, 8) == substr(md5(substr($result, 8).$key), 0, 8)) {
return substr($result, 8);
} else {
return '';
}
} else {
return str_replace('=', '', base64_encode($result));
}
}
调用使用:urlencode(jiajiemi(Email字段,'ENCODE',''))不知道为什么会提示上面的Php warning呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货