[請益] 新手請教 網站搬家

看板PHP作者 (夏日)時間10年前 (2014/02/17 20:34), 編輯推噓2(2019)
留言21則, 4人參與, 最新討論串1/1
最近幫朋友搬網站 遇到幾個問題 有的解決(可能不是正確的解決方法)有的還沒,所以想請教板友 1.從資料庫讀出的中文會顯示"?????" 前端各個PHP網頁,只要程式內有從資料庫讀出中文資料,就會顯示"????"(英文正常顯示) 目前解決方法是 各網頁在讀取資料庫資料前,加這行code mysql_query("set names big5"); 如此便能正常顯示中文 但瀏覽器上的中文還是無法顯示,如圖紅框處 http://ppt.cc/WHrf 該中文是用變數儲存,目前還不知道如何解決,暫直接用中文常數 2.後台會顯示錯誤,且無法正常登入 後台登入頁面 首先出現這項錯誤 http://ppt.cc/K630 登入後(不管帳密對不對)出現這項錯誤 http://ppt.cc/cSUf 看了一下應該是路徑 於是把auth.php、login.php出錯的地方改了一下 修改前的auth.php <? include ("$DOCUMENT_ROOT/include/register_globals.php"); ?> <? include ("$DOCUMENT_ROOT/include/config.php"); ?> ------------------------------------------------------ 修改前的login.php <? include ("$DOCUMENT_ROOT/include/config.php"); ?> ------------------------------------------------------ 修改後的auth.php <? define("CONFIG_DIR",dirname(__FILE__));?> <? include CONFIG_DIR."/register_globals.php"; ?> <? include CONFIG_DIR."/config.php"; ?> ------------------------------------------------------- 修改後的login.php <? define("CONFIG_DIR",dirname(__FILE__));?> <? include CONFIG_DIR."/config.php"; ?> -------------------------------------------------------- 完成後,兩圖的報錯都消失 但還是登不進後台 不管帳密正確錯誤,按下登入,瀏覽器會進入login.php頁(驗證帳密的程式是這頁) 但此時是全白的一頁 照理說按下登入,如果帳密錯會告知,帳密對就會登入後台 但它就是停在login.php且沒任何反應 請問這些解決方法有問題嗎? 以及如何順利進入後台? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.157.111

02/18 01:11, , 1F
1.檢查檔案的編碼是UTF8還是BIG5,資料與檔案的編碼要一致
02/18 01:11, 1F
進phpMyadmin,所有表的"排序規則"都是big5,這應該就是資料的編碼吧? 檔案的編碼也確實是big5,但依然要加那段code才能正常顯示中文

02/18 01:12, , 2F
2.先檢查是否開啟全域變數,我猜測是程式中有使用$_POST中
02/18 01:12, 2F

02/18 01:12, , 3F
的索引直接當作變數的緣故
02/18 01:12, 3F
這邊不太懂 帳密傳送方式是由後台index.php中的一個小頁面(login_form.php) 以POST傳送account與password到login.php進行確認 原本伺服器能執行,為何這個伺服器就不行呢?

02/18 08:43, , 4F
把瀏覽器的編碼改big5試試
02/18 08:43, 4F

02/18 08:43, , 5F
編碼要統一: mysql、檔案、瀏覽器
02/18 08:43, 5F

02/18 10:57, , 6F
02/18 10:57, 6F

02/18 19:21, , 7F
沒記錯的話資料庫跟資料表的編碼是分開的,也就是說有可
02/18 19:21, 7F

02/18 19:21, , 8F
能你的資料庫非big5但你的資料表卻是big5, 其實加那行也
02/18 19:21, 8F

02/18 19:21, , 9F
沒什麼,我自己就算很確定各個編碼都沒問題也會加那行,
02/18 19:21, 9F

02/18 19:21, , 10F
至於網頁標題的地方呈現???的問題,除非你<title>裡頭
02/18 19:21, 10F

02/18 19:21, , 11F
的字串也是從資料庫撈出來,不然我認為應該是檔案編碼問
02/18 19:21, 11F

02/18 19:21, , 12F
題,檢查你的<meta>跟檔案編碼
02/18 19:21, 12F
好的謝謝,網頁標題也是從資料庫撈的,編碼問題大致上已解決 現在一直卡在後台登不進去.. ※ 編輯: shiajih 來自: 140.119.73.82 (02/18 19:24)

02/18 19:29, , 13F
第二個問題假設你的修改後的路徑都沒問題,檢查你的程式
02/18 19:29, 13F

02/18 19:29, , 14F
是否全域變數,php有個功能是能夠直接取用POST或GET的索
02/18 19:29, 14F

02/18 19:29, , 15F
引作為變數,假設今天有一個$_POST[user]的資料進來,我
02/18 19:29, 15F

02/18 19:29, , 16F
在寫程式的時候可以用$user的方式直接取用,而不用寫$use
02/18 19:29, 16F

02/18 19:29, , 17F
r=$_POST[user]這種指定某某變數等於某某變數的方式取用
02/18 19:29, 17F

02/18 19:29, , 18F
,這是一個很方便但也很危險的功能,一般是不會開啟的,
02/18 19:29, 18F

02/18 19:29, , 19F
而我假設上一個伺服器有開始這個功能而你的沒有,自然就會
02/18 19:29, 19F

02/18 19:29, , 20F
因為不支援這樣的寫法而暴錯。
02/18 19:29, 20F
感謝D大!!真的是全域變數的問題 舊虛擬主機是6~7年前申請的,當時確實用全域變數 現在已更正 謝謝! ※ 編輯: shiajih 來自: 140.119.157.111 (02/19 00:21)

02/19 17:12, , 21F
補充一下樓上的那設定叫做 register_globals
02/19 17:12, 21F
文章代碼(AID): #1J0W75_W (PHP)