❶ php伺服器不能顯示驗證碼
首先從最簡單的入手:
如果你只是驗證碼的圖片是小紅叉.那麼指著小紅叉位置.右鍵"顯示圖片"即可.如果還不行請刷新頁面.
網站的驗證碼圖片一般是「.xbm」格式。Windows XP SP2/Windows 2003操作系統默認情況下不支持「.xbm」格式,造成驗證碼無法顯示。
方法一 手動修改注冊表:
開始 /運行 /填入「regedit 」 /展開[HKEY_LOCAL_MACHINE-SOFTWARE-Microsoft-Internet Explorer-Security],在右側窗口找到BlockXBM的Dword值(沒有請新建)並雙擊在彈出的編輯對話框中將其數值數據設為「0」,點擊「確定」。
然後在再你需要填入驗證碼的頁面(按F5)刷新一下,應該正常了.
方法二 自動修改注冊表:
打開記事本將下邊的內容寫在記事本上
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer\\Security]
"BlockXBM"=dword:00000000
保存成.reg文件(文件類型選擇全部),並雙擊導入,重啟計算機就行了。
如果你是瀏覽網上銀行導致用戶名和密碼輸入框都無法正常顯示,那麼是你IE設定了阻止ActiveX控制項的原因..一般出現這種情況時..先把IE的選項設為默認,然後刷新頁面,這時提醒你安裝ActiveX控制項的時候安裝即可
❷ php如何設置,上傳圖片水印透明度
其實你這個問題很好解決,可能你對gd庫函數不是太了解.想要調整水印可以使用imagemerge()這個函數.它最後一個函數就是調節alpha透明度的,
boolimagemerge(resource$dst_im,resource$src_im,int$dst_x,int$dst_y,int$src_x,int$src_y,int$src_w,int$src_h,int$pct)
當 pct = 0 時,實際上什麼也沒做,當為 100 時對於調色板圖像本函數和 image() 完全一樣,它對真彩色圖像實現了 alpha 透明。
<?php
/**
*();
*bySinaSalek
*
*BugfixbyRalphVoigt(bugwhichcausesit
*toworkonlyfor$src_x=$src_y=0.
*Also,.)
*08-JAN-2011
*
**/
functionimagemerge_alpha($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,$pct){
//creatingacutresource
$cut=imagecreatetruecolor($src_w,$src_h);
//
image($cut,$dst_im,0,0,$dst_x,$dst_y,$src_w,$src_h);
//
image($cut,$src_im,0,0,$src_x,$src_y,$src_w,$src_h);
//
imagemerge($dst_im,$cut,$dst_x,$dst_y,0,0,$src_w,$src_h,$pct);
}
?>
❸ php怎麼用啊我是初學者(環境搭建好了)
後,默認用戶名為root,默認密碼為mysql)
下載時下載編譯好的那種
解壓MySQL,把所有文件復制到/usr/local/mysql
[root@Bleach usr]# groupadd mysql
[root@Bleach usr]# useradd -g mysql mysql
[root@Bleach mysql]# cd mysql
[root@Bleach mysql]# scripts/mysql_install_db --user=mysql
[root@Bleach mysql]# chown -R root .
[root@Bleach mysql]# chown -R mysql data
[root@Bleach mysql]# chgrp -R mysql .
[root@Bleach mysql]# ./bin/mysqld_safe --user=mysql &
[root@Bleach mysql]# ./bin/mysqladmin -u root password mysql
[root@Bleach mysql]# cp ./support-files/mysql.server /etc/init.d/mysql
[root@Bleach mysql]# cd /etc/rc3.d/
[root@Bleach rc3.d]# ln -s /etc/init.d/mysql S85mysql
[root@Bleach rc3.d]# ln -s /etc/init.d/mysql K85mysql
安裝GD庫基本包gd-devel
#rpm -ivh gd-devel-1.8.4-11.i386.rpm
安裝XPM支持
#rpm -ivh xpm-3.4k-2.i386.rpm
安裝libxml2 (記得PHP5.1.1隻支持libxml2-2.6.11以上版本)
#tar zxvf libxml2-2.6.11.tar.gz
#cd libxml2-2.6.11
#./configure
#make
#make install
開始裝GD庫支持
-------------------------------------------------------
先安裝GD基礎rpm包
#rpm –ivh gd-devel.rpm
ZLIB
#./configure
#make
#make install
JPEGSRC
#./configure --enable-shared
#make
#make install-lib
#make install
LIBPNG
#cp scripts/makefile.std Makefile
#make
#make install
最後是GD2.*
#./configure --with-png=/usr/local --with-jpeg=/usr/local --with-freetype=/usr
#make
#make install
----------------------------------------------
上面一切都很順利的話,GD就算成功的安裝上了. 如果有問題,應該是缺少支持包,總之是少什麼就下載什
么來安裝上.
跟著下來,開始安裝APAHCHE2和PHP5
#./configure --prefix=/usr/local/apache2 --enable-mole=so
#make
#make install
PHP5
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-gd=/usr/local --enable-trace-vars --with-zlib-dir=/usr/local -with-mysql=/usr/local/mysql --enable-mbstring=all
#make
#make install
復制PHP.INI文件到正確位置
在PHP目錄下運行
#cp php.ini-dist /usr/local/php/lib/php.ini
編輯apache配置文件httpd.conf
#vi /usr/local/apache2/conf/httpd.conf
要改的有如下幾處:
一般都在
#AddType application/x-tar .tgz
下加一行
AddType application/x-httpd-php .php
查找
index.html
在後面加 index.htm index.php 讓它把index.php做為默認頁
再找
#ServerName
把#去掉,後面的IP改成你的IP.
找到
"/usr/local/apache2/htdocs"
把兩個"/usr/local/apache2/htdocs"改為你存放網頁文件的路徑
保存httpd.conf文件.
啟動它
# /usr/local/apache2/bin/apachectl start
如果沒有出錯,寫一個測試頁放到你網頁目錄下, 我的就是上面所說的 /www
phpinfo();
?>
保存.試試在測試器里打IP進去就可以看到PHPINFO頁了
把Apache2加入系統服務
#cd /etc/init.d
#cp /usr/local/apache/bin/apachectl ./httpd
用文本編輯/etc/init.d/httpd
在頭部加入
#chkconfig: 345 79 15
#description: Activates/Deactivates Apache Web Server
# processname: httpd
#chkconfig --add httpd
安裝ZendOptimizer-2.5.3加速PHP
#./install.sh
------------------------
一直想寫篇關於linux下 PHP環境的詳細安裝配置文章, 沒什麼時間
趁現要配幾台伺服器, 藉此機會把自己安裝配置的步驟寫出來, 供初學者參考!
有什麼錯誤的地方請大家指證批評,謝謝! - by Mayer
首先我在 /root 目錄下建了一個 soft 文件夾來保存我要安裝的源碼包
mkdir /root/soft
cd /root/soft
先找到 apache php mysql proftpd 源碼包下載的URL地址
請瀏覽
等官方網站
使用wget 直接下載
wget
...
wget
...
wget
...
第一步:安裝apache
註:當前目錄為/root/soft ,
目錄下有
httpd-2.0.55.tar.gz, php-5.0.5.tar.gz
等二進制源碼包
#號代表為root 根許可權,#後是輸入的一條命令
執行下列命令
解壓源碼包
# tar -zxf httpd-2.0.55.tar.gz
進入安裝目錄
# cd httpd-2.0.55
配置apache安裝信息
# ./configure --prefix=/usr/local/apache --enable-moles=so --enable-rewrite
執行make安裝
# make; make install
安裝完後
# vi /usr/local/apache/conf/httpd.conf
找到 prefork.c 下的
MaxClients 150
改為
ServerLimit 2000
MaxClients 1000
apache默認工作在prefork.c模式下,並發進程為150,超過後就無法訪問,150是遠遠不夠的,所以這里按自己網站的需求改, 如1000
由於apache默認最大並發進程是 256 所以要先設置 ServerLimit 2000 將伺服器可設的最大並發數設為2000, 然後再設置最大並發數 MaxClients 1000
找到 #ServerName
在其下設置 ServerName 如下
ServerName
基中
為你網站名,也可用IP代替
找到 DocumentRoot "/usr/local/apache/htdocs"
設置你的 WEB 伺服器的根目錄 如
DocumentRoot "/myweb"
找到 DirectoryIndex index.html index.html.var 改為
DirectoryIndex index.html index.php index.htm
找到 ForceLanguagePriority Prefer Fallback 在其下加上
AddDefaultCharset gb2312
改完後保存(vi 的用法請查 Linux vi 命令)
用下面命令啟動WEB伺服器
# /usr/local/apache/bin/apachectl start
查看自己的站點是否正常
也可用IP
用 # /usr/local/apache/bin/apachectl stop 可停止服務
安裝MYSQL
# tar -zxf mysql-standard-5.0.15-linux-i686.tar.gz
# cp -r mysql-standard-5.0.15-linux-i686 /usr/local/mysql
# vi /usr/local/mysql/support-files/my-medium.cnf
在後面加上
max_connections = 1000
log-slow-queries
long_query_time = 5
注 max_connections 為允許的最大連接數
log-slow-queries 打開低速查詢日誌
long_query_time 低速查詢的秒數(運行一句sql達到此時間記錄在日誌里)
然後COPY 它為 /etc/my.cnf 文件
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
添加mysql用戶及用戶組
# groupadd mysql
# useradd -g mysql mysql
修改mysql目錄許可權
# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
生成mysql系統資料庫
# /usr/local/mysql/scripts/mysql_install_db --user=mysql&
啟動mysql服務
# /usr/local/mysql/bin/mysqld_safe --user=mysql&
如出現 Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常啟動mysql服務了, 按Ctrl + C 跳出
修改 mysql 的 root 密碼
# /usr/local/mysql/bin/mysqladmin -u root -p password 123456
回車出現 Enter password: 最開始密碼默認為空 繼續回車即可
123456 即為你的新密碼
安裝GD庫(讓PHP支持GIF,PNG,JPEG)
首先下載 jpeg6,libpng,freetype 並安裝模塊
wget
...
wget
...
wget
...
wget
...
安裝 jpeg6
建立目錄
# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/bin
# mkdir /usr/local/jpeg6/lib
# mkdir /usr/local/jpeg6/include
# mkdir /usr/local/jpeg6/man
# mkdir /usr/local/jpeg6/man/man1
# cd /root/soft
# tar -zxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make; make install
安裝libpng
# cd /root/soft
# tar -zxf libpng-1.2.8.tar.gz
# cd libpng-1.2.8
# cp scripts/makefile.std makefile
# make; make install
安裝 freetype
# cd /root/soft
# tar -zxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# ./configure --prefix=/usr/local/freetype
# make;make install
安裝最新的GD庫
# cd /root/soft
# tar -zxf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png --with-zlib --with-freetype=/usr/local/freetype/
# make; make install
安裝最新的Curl庫
# cd /root/soft
# wget
...
# tar -zxf curl-7.15.0.tar.gz
# ./configure --prefix=/usr/local/curl
# make; make install
安裝PHP
由於php5需libxml2的支持, 所以先下載並安裝libxml2
# cd /root/soft
# wget
...
# tar -zxf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# ./configure --prefix=/usr/local/libxml2
# make; make install
安裝 libxslt
# cd /root/soft
# wget
...
# tar -zxf libxslt-1.1.15.tar.gz
# cd libxslt-1.1.15
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make; make install
# tar -zxf php-5.0.5.tar.gz
# cd php-5.05
# ./configure --prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/
--with-curl=/usr/local/curl --enable-ftp
--with-libxml-dir=/usr/local/libxml2 --with-expat-dir=/usr/lib
--enable-soap --with-xsl=/usr/local/libxslt --enable-xslt
--with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg6/
--with-zlib-dir=/usr/lib --with-png
--with-freetype-dir=/usr/local/freetype
# make
# make install
其中./configure 後的
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql/
--with-libxml-dir=/usr/local/libxml2
是必要的選項
--with-gd=/usr/local/gd2/
--with-jpeg-dir=/usr/local/jpeg6/
--with-png
--with-zlib-dir=/usr/lib
--with-freetype-dir=/usr/local/freetype
這是讓PHP支持GD庫的配置選項
--with-curl=/usr/local/curl 支持CURL庫
--enable-ftp 打開FTP庫函數支持
--enable-soap --with-xsl=/usr/local/libxslt --enable-xslt
讓PHP支持SOAP, 上面這些一般用得少, 可以去掉
配置 httpd.conf 讓apache支持PHP
# vi /usr/local/apache/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下內容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
重啟apache
# /usr/local/apache/bin/apachectl restart
在你Web目錄里建一內容為 PHP文件, 輸入URL地址查看PHP配置是否正確
安裝 phpmyadmin
下載
# cd /root/soft
# wget
...
# tar -zxf phpMyAdmin-2.6.4-pl3.tar.gz
# vi phpMyAdmin-2.6.4-pl3/config.inc.php
找到 $cfg['Servers'][$i]['auth_type'] = 'config'; 將config 改為 http
保存後
mv phpMyAdmin-2.6.4-pl3 /你的phpmyadmin目錄
關於mysql4.1-4移植4.0舊資料庫中文亂碼問題的解決方法
進入phpmyadmin管理
建立你資料庫名並選上 gb2312_bin 的編碼
然後導入你先前備份好的SQL文件, 導入時選擇 文件的字元集:gb2312
完成後就OK了
注: PHP連接mysql4.1和5.0 資料庫後需指定字元集 需執行如 mysql_query("SET NAMES 'gb2312' ");
否則會產生中文亂碼問題!
❹ php如何生成加粗或者斜體的文字樣式圖片
加粗或者斜體的文字可以用php的函數控制.我想你是想生成驗證碼圖片是嗎?
如果是想生成驗證么圖片有幾個函數可以考慮
imagecreate($length,$height)創建圖片.參數是圖片的寬度和高度
imagecolorallocate($image,$r,$g,$b)設置背景色,r b g就是圖片的三色rgb參數.這個可以由傳入0-255的隨機數決定隨機的背景色.還可以生成字體色
imagettftext($_image,$fontSize,mt_rand(-40,70),$codeNX,$fontSize*1.5,$_color,$ttf,$code[$i]);寫入隨機的文字,這里要一個字一個字寫.所以這個函數要循環調用.
網路了一下 找到了一個類...如下
<?php
/**
*安全驗證碼
*
*安全的驗證碼要:驗證碼文字扭曲、旋轉,使用不同字體,添加干擾碼。
*如果用中文做驗證碼(我這里不是哦,有興趣你來改成用中文的),安全度會更好些,但驗證碼扭曲和旋轉是王道,用了字體也算是已經給字體扭曲了,我就不再去給他添一隻扭曲的足了。
*可配置的屬性都是一些簡單直觀的變數,我就不用弄一堆的setter/getter了
*
*@author流水孟春<cmpan(at)qq.com>
*@rightNEWBSD
*@linkhttp://labs.yulans.cn/YL_Security_Secoder
*@linkhttp://wiki.yulans.cn/docs/yl/security/secoder
*/
classYL_Security_Secoder{
/**
*驗證碼的session的下標
*
*@varstring
*/
publicstatic$seKey='sid.sekey.ylans.cn';
publicstatic$expire=3000;//驗證碼過期時間(s)
/**
*驗證碼中使用的字元,01IO容易混淆,建議不用
*
*@varstring
*/
publicstatic$codeSet='346789ABCDEFGHJKLMNPQRTUVWXY';
publicstatic$fontSize=25;//驗證碼字體大小(px)
publicstatic$useCurve=true;//是否畫混淆曲線
publicstatic$useNoise=true;//是否添加雜點
publicstatic$imageH=0;//驗證碼圖片寬
publicstatic$imageL=0;//驗證碼圖片長
publicstatic$length=4;//驗證碼位數
publicstatic$bg=array(243,251,254);//背景
protectedstatic$_image=null;//驗證碼圖片實例
protectedstatic$_color=null;//驗證碼字體顏色
/**
*輸出驗證碼並把驗證碼的值保存的session中
*驗證碼保存到session的格式為:$_SESSION[self::$seKey]=array('code'=>'驗證碼值','time'=>'驗證碼創建時間');
*/
publicstaticfunctionentry(){
//圖片寬(px)
self::$imageL||self::$imageL=self::$length*self::$fontSize*1.5+self::$fontSize*1.5;
//圖片高(px)
self::$imageH||self::$imageH=self::$fontSize*2;
//建立一幅self::$imageLxself::$imageH的圖像
self::$_image=imagecreate(self::$imageL,self::$imageH);
//設置背景
imagecolorallocate(self::$_image,self::$bg[0],self::$bg[1],self::$bg[2]);
//驗證碼字體隨機顏色
self::$_color=imagecolorallocate(self::$_image,mt_rand(1,120),mt_rand(1,120),mt_rand(1,120));
//驗證碼使用隨機字體
$ttf=dirname(__FILE__).'/ttfs/'.mt_rand(1,20).'.ttf';
if(self::$useNoise){
//繪雜點
self::_writeNoise();
}
if(self::$useCurve){
//繪干擾線
self::_writeCurve();
}
//繪驗證碼
$code=array();//驗證碼
$codeNX=0;//驗證碼第N個字元的左邊距
for($i=0;$i<self::$length;$i++){
$code[$i]=self::$codeSet[mt_rand(0,27)];
$codeNX+=mt_rand(self::$fontSize*1.2,self::$fontSize*1.6);
//寫一個驗證碼字元
imagettftext(self::$_image,self::$fontSize,mt_rand(-40,70),$codeNX,self::$fontSize*1.5,self::$_color,$ttf,$code[$i]);
}
//保存驗證碼
isset($_SESSION)||session_start();
$_SESSION[self::$seKey]['code']=join('',$code);//把校驗碼保存到session
$_SESSION[self::$seKey]['time']=time();//驗證碼創建時間
header('Cache-Control:private,max-age=0,no-store,no-cache,must-revalidate');
header('Cache-Control:post-check=0,pre-check=0',false);
header('Pragma:no-cache');
header("content-type:image/png");
//輸出圖像
imagepng(self::$_image);
imagedestroy(self::$_image);
}
/**
*畫一條由兩條連在一起構成的隨機正弦函數曲線作干擾線(你可以改成更帥的曲線函數)
*
*高中的數學公式咋都忘了涅,寫出來
* 正弦型函數解析式:y=Asin(ωx+φ)+b
*各常數值對函數圖像的影響:
*A:決定峰值(即縱向拉伸壓縮的倍數)
*b:表示波形在Y軸的位置關系或縱向移動距離(上加下減)
*φ:決定波形與X軸位置關系或橫向移動距離(左加右減)
*ω:決定周期(最小正周期T=2π/∣ω∣)
*
*/
protectedstaticfunction_writeCurve(){
$A=mt_rand(1,self::$imageH/2);//振幅
$b=mt_rand(-self::$imageH/4,self::$imageH/4);//Y軸方向偏移量
$f=mt_rand(-self::$imageH/4,self::$imageH/4);//X軸方向偏移量
$T=mt_rand(self::$imageH*1.5,self::$imageL*2);//周期
$w=(2*M_PI)/$T;
$px1=0;//曲線橫坐標起始位置
$px2=mt_rand(self::$imageL/2,self::$imageL*0.667);//曲線橫坐標結束位置
for($px=$px1;$px<=$px2;$px=$px+0.9){
if($w!=0){
$py=$A*sin($w*$px+$f)+$b+self::$imageH/2;//y=Asin(ωx+φ)+b
$i=(int)((self::$fontSize-6)/4);
while($i>0){
imagesetpixel(self::$_image,$px+$i,$py+$i,self::$_color);//這里畫像素點比imagettftext和imagestring性能要好很多
$i--;
}
}
}
$A=mt_rand(1,self::$imageH/2);//振幅
$f=mt_rand(-self::$imageH/4,self::$imageH/4);//X軸方向偏移量
$T=mt_rand(self::$imageH*1.5,self::$imageL*2);//周期
$w=(2*M_PI)/$T;
$b=$py-$A*sin($w*$px+$f)-self::$imageH/2;
$px1=$px2;
$px2=self::$imageL;
for($px=$px1;$px<=$px2;$px=$px+0.9){
if($w!=0){
$py=$A*sin($w*$px+$f)+$b+self::$imageH/2;//y=Asin(ωx+φ)+b
$i=(int)((self::$fontSize-8)/4);
while($i>0){
imagesetpixel(self::$_image,$px+$i,$py+$i,self::$_color);//這里(while)循環畫像素點比imagettftext和imagestring用字體大小一次畫出(不用這while循環)性能要好很多
$i--;
}
}
}
}
/**
*畫雜點
*往圖片上寫不同顏色的字母或數字
*/
protectedstaticfunction_writeNoise(){
for($i=0;$i<10;$i++){
//雜點顏色
$noiseColor=imagecolorallocate(
self::$_image,
mt_rand(150,225),
mt_rand(150,225),
mt_rand(150,225)
);
for($j=0;$j<5;$j++){
//繪雜點
imagestring(
self::$_image,
5,
mt_rand(-10,self::$imageL),
mt_rand(-10,self::$imageH),
self::$codeSet[mt_rand(0,27)],//雜點文本為隨機的字母或數字
$noiseColor
);
}
}
}
/**
*驗證驗證碼是否正確
*
*@paramstring$code用戶驗證碼
*@returnbool用戶驗證碼是否正確
*/
publicstaticfunctioncheck($code){
isset($_SESSION)||session_start();
//驗證碼不能為空
if(empty($code)||empty($_SESSION[self::$seKey])){
returnfalse;
}
//session過期
if(time()-$_SESSION[self::$seKey]['time']>self::$expire){
unset($_SESSION[self::$seKey]);
returnfalse;
}
if($code==$_SESSION[self::$seKey]['code']){
returntrue;
}
returnfalse;
}
}
//useage
/*
YL_Security_Secoder::$useNoise=false;//要更安全的話改成true
YL_Security_Secoder::$useCurve=true;
YL_Security_Secoder::entry();
*/
/*
//驗證驗證碼
if(!YL_Security_Secoder::check(@$_POST['secode'])){
print'errorsecode';
}
*/
這是效果
❺ PHP header 生成驗證圖片問題
function yzImg($nmsg){
if (function_exists('imagecreatetruecolor')){
$imstr[0]["s"]=$nmsg[0];
$imstr[1]["s"]=$nmsg[1];
$imstr[2]["s"]=$nmsg[2];
$imstr[3]["s"]=$nmsg[3];
//文件頭...
header("Content-type: image/png");
//創建真彩色白紙
$im = @imagecreatetruecolor(60, 20) or die("建立圖像失敗");
//獲取背景顏色
$background_color = imagecolorallocate($im, 255, 255, 255);
//填充背景顏色(這個東西類似油桶)
imagefill($im,0,0,$background_color);
//獲取邊框顏色
$border_color = imagecolorallocate($im,200,200,200);
//畫矩形,邊框顏色200,200,200
imagerectangle($im,0,0,59,19,$border_color);
//逐行炫耀背景,全屏用1或0
for($i=2;$i<18;$i++){
//獲取隨機淡色
$line_color = imagecolorallocate($im,rand(180,255),rand(180,255),rand(180,255));
//畫線
imageline($im,2,$i,57,$i,$line_color);
}
//設置字體大小
$font_size=14;
//設置印上去的文字
$Str[0] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$Str[1] = "abcdefghijklmnopqrstuvwxyz";
$Str[2] = "01234567891234567890123456";
//獲取第1個隨機文字
//$imstr[0]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[0]["x"] = rand(2,5);
$imstr[0]["y"] = rand(1,4);
//獲取第2個隨機文字
//$imstr[1]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[1]["x"] = $imstr[0]["x"]+$font_size-1+rand(0,1);
$imstr[1]["y"] = rand(1,3);
//獲取第3個隨機文字
//$imstr[2]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[2]["x"] = $imstr[1]["x"]+$font_size-1+rand(0,1);
$imstr[2]["y"] = rand(1,4);
//獲取第4個隨機文字
//$imstr[3]["s"] = $Str[rand(0,2)][rand(0,25)];
$imstr[3]["x"] = $imstr[2]["x"]+$font_size-1+rand(0,1);
$imstr[3]["y"] = rand(1,3);
//寫入隨機字串
for($i=0;$i<4;$i++){
//獲取隨機較深顏色
$text_color = imagecolorallocate($im,rand(80,180),rand(80,180),rand(80,180));
//畫文字
imagechar($im,$font_size,$imstr[$i]["x"],$imstr[$i]["y"],$imstr[$i]["s"],$text_color);
}
//顯示圖片
imagepng($im);
//銷毀圖片
imagedestroy($im);
exit;
} else {
header("Pragma:no-cache");
header("Cache-control:no-cache");
header("ContentType: Image/BMP");
$Color[0] = chr(0).chr(0).chr(0);
$Color[1] = chr(255).chr(255).chr(255);
$_Num[0] = "";
$_Num[1] = "";
$_Num[2] = "";
$_Num[3] = "";
$_Num[4] = "";
$_Num[5] = "";
$_Num[6] = "";
$_Num[7] = "";
$_Num[8] = "";
$_Num[9] = "";
echo chr(66).chr(77).chr(230).chr(4).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(54).chr(0).chr(0).chr(0).chr(40).chr(0).chr(0).chr(0).chr(40).chr(0).chr(0).chr(0).chr(10).chr(0).chr(0).chr(0).chr(1).chr(0);
echo chr(24).chr(0).chr(0).chr(0).chr(0).chr(0).chr(176).chr(4).chr(0).chr(0).chr(18).chr(11).chr(0).chr(0).chr(18).chr(11).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0);
for ($i=9;$i>=0;$i--){
for ($j=0;$j<=3;$j++){
for ($k=1;$k<=10;$k++){
echo $Color[substr($_Num[$nmsg[$j]], $i * 10 + $k, 1)];
}
}
}
exit;
}
}
你可以看一下這個是php168的驗證碼主要程序
❻ 如何開啟Php-mbstring、Php-gd模塊
找到你的PHP環境中的php.ini文件,搜索下面兩行,查看是否前面有分號(;),如果有,去掉,然後重新啟動Web伺服器(如:Apache,IIS等):
extension=php_gd2.dll
extension=php_mbstring.dll
如果你的服務可以正常啟動,應該就已經載入了這兩個模塊,如果不能啟動,你還需要查看一項:
extension_dir =
看看你這項設置的路徑是什麼,相應的路徑里有沒有上面載入的兩個dll文件,如果沒有,你需要根據你的PHP版本去下載相應的文件,並且放到extension_dir指定的目錄中。
當然,Linux環境下的實現方式是一致的,只是載入的文件的後綴可能不是.dll,具體是什麼我忘記了。
❼ 10分windows下怎麼安裝 PHP的gd庫
先確保php.ini路徑正確。
在apache配置文件httpd.conf里使用PHPIniDir指寫php.ini的在目錄
如:PHPIniDir "f:/php"
在f:\php\php.ini里加入
extension_dir = "f:\php\ext"
extension=php_gd2.dll
(f:\php 改成你自己的php目錄)
重啟apache
<?php
phpinfo();
?>
看一下GD是否已經載入上,
如果已經載入上,在頁面中間會顯示類似以下信息
gd
GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.7
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled