2007年8月25日
【PHP】解決PHP+Mysql5.x亂碼問題
往往在自己電腦裡執行都正常(假設使用者電腦的Mysql版本是4.x或以下版本)
傳上server後卻都是亂碼(假設server上的Mysql版本是5.x)
我第一次遇上時也是摸不著頭緒
還是我的老朋友google幫了我
有個觀念一定要先搞清楚
亂碼問題一定跟編碼有關
用什麼編碼存進資料庫,就用什麼編碼秀出來
好了
有了這觀念
問題就好解決多了
在使用者層面來說
可以先檢查網頁的charset
如果網頁的charset是utf-8
那麼post的資料就都是utf-8的編碼
如果不想更改charset又想使post出去的資料是自己想要的編碼
可以使用iconv來轉換
ex:iconv('原始編碼','欲轉換的編碼','欲轉換的字串')
再來伺服器層面
開啟phpmyadmin檢查Mysql系統變數
如果您並無管理者權限
無法更動Mysql的系統變數值
那麼php在連結mysql時可加入以下語法
mysql_query("SET NAMES 'big5'");
mysql_query("SET CHARACTER SET big5");
mysql_query("SET CHARACTER_SET_RESULTS=big5'");
big5可任意更換成您要的編碼語系
以確保抓出來或存進去的資料為你要的
關於這方面的觀念我搞了好久才稍微有個頭緒
如以上所說有誤
歡迎指正^^
【PHP】PHP圖形驗證
只要是需要防止機器人連續作業的時候都是必要的
在此作個簡單的解說吧
以下為最重要產生圖片的的image.php
<?php //設定產生幾個字 //設定SESSION給check.php做檢查 |
可用<img src="image.php">產生驗證圖片
2007年8月20日
【PHP】PHP強制下載檔案(使用header)
雖然功能不盡完善
但還是盡我所能的加強
其中有個小部份是比較麻煩的
當遇到jpg,txt等會在IE等瀏覽器中直接開啟的檔案
點選下載後就不會出現詢問視窗
而是直接開啟
這樣就沒有達到網路硬碟的需求了!!
造訪了google大神之後
瞭解到可以使用header來達到此效果
但是中文網站中的範例
我一直都跑不出來
在灰心之餘
想起http://www.php.net
查到header的所有用法與範例
並把最關鍵的那篇找了出來,如下
http://au3.php.net/manual/tw/function.header.php#48538
我想此篇已經寫的非常詳細
不需要在此多作贅述了!!
祝各位馬到成功摟^^
【PHP】使用session_start()竟出現Error!!!!
真是驚訝萬分
兩台都是Win server 2003
一台可以正常跑
一台竟然會出現錯誤!!
錯誤訊息入下:
Cannot send session cache limiter - headers already sent
天阿....這是什麼情況!!
嚇得我馬上膜拜了google大神
喔~~好險第一篇就有答案了
答案請參考此篇
http://twpug.net/modules/smartfaq/faq.php?faqid=31
正如他所說
我的檔案是UTF-8的
所以把
;output_buffering = Off
前面分號拿掉
把Off改成4096之後就ok摟
真是太感謝那篇啦^^
===========================
2008/04/15
也可用Notepad++將檔案轉換成檔首無BOM的UTF-8
在無法修改php.ini的虛擬主機上只好用這招
【PHP】PHP留言有時差?
使用php的取得時間函數
都會發現和台灣時間會差8個小時
說到此
相信很多人都知道該去改哪個檔了!
沒錯
就是修改php.ini
找到date.timezone
修改成
date.timezone = "Asia/Taipei"
就可以了!
非常簡單^^