[PHP] 好用的留言板 驗證碼 功能

這算是大家都知道的技術了吧,因為說實在的,留言板惡意灌水實在是太容易了,就算是檔檔 referer 也是沒用,因為表頭可以自己偽造,那最好的方法就是用 PHP 驗證碼的機制,這個機制利用 GD 縮圖的部份,然後再把驗證數字存放在 SESSION 裡面,不過 PHPBB 的作法是存在 database 資料庫裡面進行比對,然後在 delete 該比資料,畢竟每個連線都有自己的 ssid 的值,所以這樣進行比對,我想是不錯的方法,也可以用在很多地方,那底下是我去 Jax 的工作紀錄 看到的一篇:PHP 驗證碼,拿過來筆記一下。 首先先去 Windows 底下的 Fonts 資料夾,選一個字型吧,因為裡面會用到喔,不然底下這一段 code 會用到
imagettftext($im, 20, 0, 25, 35, $Color,"arial.ttf",$verification__session);
/*
imagettftext (int im, int size, int angle,
int x, int y, int col,
string fontfile, string text)
im 圖片物件
size 文字大小
angle 0度將會由左到右讀取文字,而更高的值表示逆時鐘旋轉
x y 文字起始座標
col 顏色物件
fontfile 字形路徑,為主機實體目錄的絕對路徑,
可自行設定想要的字型
text 寫入的文字字串
*/
Continue reading “[PHP] 好用的留言板 驗證碼 功能”

[PHP]好用的上傳 pear 模組 HTTP_Upload

在台大 ptt BBS 上面看到有人推文上傳功能可以交給 pear HTTP_Upload 來跟 PHP 搭配使用,自己去看了一下官方線上文件,教學還蠻容易的,大概看過範例就可以瞭解了,上傳之後的檔案,在搭配之前我寫的 [PHP] header下載檔案 搭配資料庫
* Can handle from one file to multiple files. * Safe file copying from tmp dir. * Easy detecting mechanism of valid upload, missing upload or error. * Gives extensive information about the uploaded file. * Rename uploaded files in different ways: as it is, safe or unique * Validate allowed file extensions * Multiple languages error messages support (es, en, de, fr, it, nl, pt_BR)
1. 首先下載官方檔案:點我 2. 撰寫 PHP 程式:
    
$root_path = './';
include($root_path . 'config.php');
/* 把 pear HTTP_Upload 檔案 include 進來 */
require_once($root_path . 'includes/pear/Upload.php');
$upload = new HTTP_Upload("en");
/* form 的 file 欄位名稱 */
$file = $upload->getFiles("upload_file_01");

if ($file->isValid()) 
{
  /* 設定上傳檔案之後,以亂數取檔名 */
  $file->setName("uniq");
  
  /* 檔案資訊 */
  echo "
";
  print_r($file->getProp());
  echo "
"; /* 印出所有檔案資訊 */ # $file->getProp("size") 檔案大小 # $file->getProp("name") 亂數取檔名 # $file->getProp("real") 上傳的真正檔名 # $file->getProp("ext") 上傳的副檔名 $moved = $file->moveTo("upload_data/1/"); if (!PEAR::isError($moved)) { $sql = "INSERT INTO " . FILES_TABLE . " (`userid` , `file_type`, `dateline` , `filesize` , `filename` , `file_real_name`, `extention`) VALUES ( '{$userdata[user_id]}', '1', '{$time}', '{$file->getProp("size")}', '{$file->getProp("name")}', '{$file->getProp("real")}', '{$file->getProp("ext")}')"; if( !($result = $db->sql_query($sql)) ) { die("Could not query config information " . $sql); } DisplayErrMsg("您已經完成上傳資料,在結束上傳日期前,都可以修改

". sprintf($lang['Click_return_forum'], "", "")); } else { echo $moved->getMessage(); } } elseif ($file->isMissing()) { echo "No file was provided."; } elseif ($file->isError()) { echo $file->errorMsg(); }

[省錢]新竹 萊爾富(新竹竹磐店) 每朝烏龍..黑松汽水(買一送一)

IMG_1747

店 家:新竹萊爾富竹磐 日 期:11月初截止 時 間:11月初以前 電 話:03-5422341 需要請直接聯絡店長: ptt bbs id:user043 店長電話:0982082584 地點 or 地址:面交取貨(新竹竹磐店) 新竹市北區3西大路734號 內容 or 方案:店長要衝業績..時機歹歹 Continue reading “[省錢]新竹 萊爾富(新竹竹磐店) 每朝烏龍..黑松汽水(買一送一)”

[PHP]好用的FCKeditor

最近在玩這一套 FCKeditor 線上 HTML 編輯系統,這目前很多 opensource 都有利用這一套編輯系統來搭配,我覺得還蠻方便的,所以很多後台或者是前台都會使用,我想這已經是現在的趨勢了,然而要安裝這個也相當容易,官方網站都寫的很清楚,可以先使用他們線上的 demo,如果要加入到自己的系統,他們也有提供一些文件讓大家參考:線上文件,其實他們支援各大語法:asp,php,Python… 一堆,安裝方法也很容易,底下寫一下安裝方法: 1. 首先先下載 FCKeditor 這一套軟體: 點我下載 目前是這個版本:FCKeditor_2.6.3.zip 2. 裡面有一些 sample 可以使用 fckeditor/_samples/default.html 3. 如果你要使用在自己的系統裡面起加入底下語法:
$root_path = './';
include($root_path . "fckeditor/fckeditor.php");
$sBasePath = "fckeditor/";

//實體化  FCKeditor  並指定欄位名稱
$oFCKeditor  =  new  FCKeditor('file_data');
$oFCKeditor->BasePath = $sBasePath;

//預設的語言,zh表繁體中文
$oFCKeditor->Config['DefaultLanguage'] = 'zh';

//預設填入的內容
$oFCKeditor->Value = '

This is some sample text. You are using FCKeditor.

' ; //直接輸出FCKeditor表單 $oFCKeditor->Create();
基本上這樣大致上就完成了喔。很容易吧

[嘉義美食]陶板屋 和風創作料理,跟老闆還有一堆朋友

今天呢,老闆請我們到 陶板屋 吃飯喔,因為我是組刊團隊的人,加上吉泰,小孟,增美,還有一個計畫沒接到,但是還是有付出的工作人員,宗翰跟冠吉,下午本來四點開會,結果忘記通知老師,然後我兩點跑去嘉義,在嘉義買福義軒蛋捲,買到時間忘了,3點45分,在嘉義市火車站前面,囧,我看到手機嚇到,我直接飆回中正,然後騎腳踏車到實驗室,總共花費25分鐘,哈哈,超快的,增美都嚇到了,他說我怎麼這麼快阿,基本上嘉義到中正需要半小時,然後宿舍到實驗室需要20分鐘,哈哈,囧,可見我機車很猛吧,最近有把機車操到,哈哈,到實驗室,我以為老闆已經在等我了,結果老闆已經回家了,所以我就跟增美,小孟,吉泰,一起開會了,開完會,我們以為被老師放鴿子了,因為老闆本來要贊助每人400元,我們一人貼150元,就可以去吃,後來老師原來在家裏阿,我跟宗翰就到老師家做老師的車子過去嘉義市,畢竟嘉義在下雨阿,還蠻大的,雖然是一陣一陣的
Continue reading “[嘉義美食]陶板屋 和風創作料理,跟老闆還有一堆朋友”

[AJAX] google map 的應用~

嗯嗯,我自己的 blog 有在寫美食,就會有美食地點,當然我覺得把 google map api 整合進來,是不錯的方法,其實 google map 也提供了只要輸入地址,就可以直接幫妳對應經度跟緯度的值,這樣就可以利用 ajax 的技術把資料庫裡面的地址都加上 google map 了,至少之前 高雄線上 是這樣加上所有店家資訊的地址 google map,其實要使用 google map 相當容易,其實妳只要按照下面步驟就可以了:
  1. Sign up for a Google Maps API key.
  2. Read the Maps API Concepts.
  3. Check out some Maps API Examples.
  4. Read the Maps API Reference.
Continue reading “[AJAX] google map 的應用~”

[PHP]解決 PEAR::Mail_Mime 標題 UTF-8 亂碼問題(不能顯示)

話說大家在寫 PHP 的時候,一定會很常用到 mail 這個函式,畢竟一個網站一定會有很多需要用到寄信的地方,我先給大家推薦一下 PEAR::Mail_MimePEAR::Mail 這兩個 Pear 的套件,用起來相當不錯,支援 html 跟 UTF-8 或者是 Big5 編碼,我之前寫過一篇 [PHP] 好用的 PEAR – PHP Mail and Mail_Mime,裡面寫的還蠻詳細的,不過上次有一個問題還沒解決,就是如果用 UTF-8 編碼的標題,會顯示不出來,Gmail 收到的話就會是 no subject,然後昨天用了一個非常笨的解決方法,改成把標題使用 Big5 就可以了,解決方法如下: Update:感謝 darkhero 提供解決方法: 如果要用 UTF-8 的標題:
  $param['head_charset'] = 'utf-8';
  $hdrs = array(
                'From'    => 'appleboy.tw@gmail.com',
                'Subject' => '=?utf8?B?' . base64_encode($subj) . '?=', 
                'Content-type' => 'text/html; charset=utf-8'
                ); 
先讓主機支援 PEAR:
#
#  FreeBSD ports 安裝
cd /usr/ports/devel/pear
make install clean
Continue reading “[PHP]解決 PEAR::Mail_Mime 標題 UTF-8 亂碼問題(不能顯示)”