作者 主題: [問題] php驗證碼圖片出不來  (閱讀 12646 次)

0 會員 與 1 訪客 正在閱讀本文。

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
[問題] php驗證碼圖片出不來
« 於: 2010-06-02 22:48 »
http://203.64.127.37/seccode.php

用php寫的驗證碼, 圖片原本在朋友的server可以跑出來, 但丟到學校的就不行了

請各位大大幫我想想問題出在哪@@

附上原始檔

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: [問題] php驗證碼圖片出不來
« 回覆 #1 於: 2010-06-02 23:23 »

學校有開 php-gd 支援嗎?

建議你跑 phpinfo(); 確認看看
I am kenduest - 小州

my website: http://kenduest.sayya.org/

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #2 於: 2010-06-02 23:25 »
gd
GD Support    enabled
GD Version    bundled (2.0.28 compatible)
FreeType Support    enabled
FreeType Linkage    with freetype
FreeType Version    2.2.1
GIF Read Support    enabled
GIF Create Support    enabled
JPG Support    enabled
PNG Support    enabled
WBMP Support    enabled
XBM Support    enabled

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4052
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: [問題] php驗證碼圖片出不來
« 回覆 #3 於: 2010-06-02 23:29 »
是否安裝字型檔?

將 imagepng() 註解掉,看一下錯誤訊息
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #4 於: 2010-06-03 00:22 »
註解掉沒錯誤訊息- -
整個頁面是空的...

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4052
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: [問題] php驗證碼圖片出不來
« 回覆 #5 於: 2010-06-03 00:30 »
要不打開錯誤訊息顯示

要不到 error log 看錯誤訊息
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #6 於: 2010-06-03 01:00 »
[Thu Jun 03 00:56:55 2010] [notice] child pid 7317 exit signal Segmentation fault (11)
都是這種的

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #7 於: 2010-06-03 09:07 »
lifeIsFunWithPHP.

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4052
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: [問題] php驗證碼圖片出不來
« 回覆 #8 於: 2010-06-03 09:15 »
應該是系統的問題,不是程式問題

一樣的程式,把 34 行 imagettftext() 註解掉,也可以得到一堆彩色的線條
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #9 於: 2010-06-03 09:35 »
大家想太多了,學校沒給他php的執行能力。
lifeIsFunWithPHP.

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4052
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: [問題] php驗證碼圖片出不來
« 回覆 #10 於: 2010-06-03 09:38 »
真是想像不到的錯誤.... = ="
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #11 於: 2010-06-03 10:19 »
所以權限改成755說不定就ok了?
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #12 於: 2010-06-03 15:57 »
應該是系統的問題,不是程式問題

一樣的程式,把 34 行 imagettftext() 註解掉,也可以得到一堆彩色的線條

我少上傳一個字型檔,所以你看到只有線條,但是目前我是什麼都沒有- -...空白頁面

http://203.64.127.37/phpinfo.php

gd有裝了~~或是你們幫手看看少哪樣?

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #13 於: 2010-06-03 16:08 »
在第三行插入

die;

試看看。

從傳回header有問題。
lifeIsFunWithPHP.

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #14 於: 2010-06-03 16:43 »
我發現在你說的第3行那邊插入die, header傳回的類型是image/png

而原本是text/plain←嚴重錯誤- -!

但這檔案放到其他主機跑都ok...會不會是我主機少裝什麼套件?

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #15 於: 2010-06-03 17:01 »
把arial.ttf放在同目錄,接著改第9行試看看

代碼: [選擇]
<?php
session_start
();
header(&#39;Content-type:image/png&#39;);
header(&#39;Content-Disposition:filename=image_code.png&#39;);
header(&#39;Expires: Mon, 26 Jul 1997 05:00:00 GMT&#39;);
header(&#39;Cache-Control: no-store, no-cache, must-revalidate&#39;);
header(&#39;Cache-Control: post-check=0, pre-check=0&#39;, false);
header(&#39;Pragma: no-cache&#39;);
$TTF=&#39;arial.ttf&#39;;// $TTF = str_replace(&#39;\\&#39;, &#39;/&#39;, dirname(__FILE__))."/font/DejaVu-Serif-Bold.ttf";
mt_srand((double)microtime() * 1000000);
$codeBase = &#39;ABCDEFGHJKLMNPRSTUVWXYZ23456789&#39;;
$codeLength 5;
$textSize 18;
$widthprop 0.2;
$imageY intval(($textSize) * ($widthprop)); 
$imageX $imageY $codeLength
$im = @imagecreatetruecolor($imageX$imageY) or die(&#39;Image Error&#39;);
imagefill($im00imagecolorallocate($im255255255));
$s intval($textSize 8);
$brush imagecreate($s$s);
imagesetbrush($im$brush);
$l $codeLength 7;
for(
$i 0$i $l$i++) { 
imagefill($brush00imagecolorallocate($brushrand(127255), rand(127255), rand(127255)));
imageline($imrand(0$imageX), rand(0$imageY), rand($imageY$imageX), rand(0$imageY), IMG_COLOR_BRUSHED);

$l strlen($codeBase) - 1
$widgetSize $imageX $codeLength;
$codeStr = &#39;&#39;; 
for($i 0$i $codeLength$i++) { 
$num rand(0$l); 
$codeStr.= $codeBase[$num]; 
$Color imagecolorallocate($imrand(060), rand(060), rand(060));
imagettftext($im$textSizerand(-2525), $widgetSize * ($i $widthprop), $textSize$Color$TTF$codeBase[$num]);
}
$s intval($textSize 9);
$brush imagecreate($s$s);
imagesetbrush($im$brush);
$l $codeLength 13;
for(
$i 0$i $l$i++) {
imagefill($brush00imagecolorallocate($brushrand(40100), rand(40100), rand(40100)));
imagesetpixel($imrand(0$imageX), rand(0$imageY), IMG_COLOR_BRUSHED);
}
session_destroy();
session_register("seccode");
$_SESSION[&#39;seccode&#39;] = $codeStr;
imagepng($im);
imagedestroy($im);
?>
lifeIsFunWithPHP.

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #16 於: 2010-06-03 17:35 »
可以了耶- -...這真的有點... ???

請問這是什麼問題呢@@

liteC

  • 憂鬱的高中生
  • ***
  • 文章數: 158
    • 檢視個人資料
    • 軟體
回覆: [問題] php驗證碼圖片出不來
« 回覆 #17 於: 2010-06-05 18:03 »
不就是路徑的問題嗎..  ::)
非常謝謝學長們熱心回答我發問的問題
非常感寫 m(_ _)m

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #18 於: 2010-06-08 11:53 »
這句str_replace('\\', '/', dirname(__FILE__))
我把它改成dirname(__FILE__)
就好了= =...想不起來當初這句怎會這樣寫...
不過在朋友主機上竟然可以執行, 真是奇怪= =

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: [問題] php驗證碼圖片出不來
« 回覆 #19 於: 2010-06-08 11:57 »
這句str_replace('\\', '/', dirname(__FILE__))
我把它改成dirname(__FILE__)
就好了= =...想不起來當初這句怎會這樣寫...
不過在朋友主機上竟然可以執行, 真是奇怪= =

因為Windows 跟 Linux 主機的路徑差別吧..
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

藍天綠地

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: [問題] php驗證碼圖片出不來
« 回覆 #20 於: 2010-06-08 12:10 »
原本是在win上, 但是我有給另外一個用linux的朋友試試, 就是因為他可以, 所以才覺得怪= =

而且我之前試過, 如果讀不到字型檔, 他還是會有線條出現, 整個空白真會讓人誤會是主機的問題@@
« 上次編輯: 2010-06-08 12:12 由 藍天綠地 »

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
回覆: [問題] php驗證碼圖片出不來
« 回覆 #21 於: 2010-06-19 17:53 »
這句str_replace('\\', '/', dirname(__FILE__))
我把它改成dirname(__FILE__)
就好了= =...想不起來當初這句怎會這樣寫...
不過在朋友主機上竟然可以執行, 真是奇怪= =

改成
代碼: [選擇]
<?php
$this
->dir str_replace(&#39;\\&#39;, &#39;/&#39;, realpath($config[&#39;directory&#39;])).&#39;/&#39;;
?>
測試看看

歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY