作者shiajih (夏日)
看板PHP
標題[請益] 新手請教 網站搬家
時間Mon Feb 17 20:34:08 2014
最近幫朋友搬網站
遇到幾個問題
有的解決(可能不是正確的解決方法)有的還沒,所以想請教板友
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
1F:→ DongFeng:1.檢查檔案的編碼是UTF8還是BIG5,資料與檔案的編碼要一致 02/18 01:11
進phpMyadmin,所有表的"排序規則"都是big5,這應該就是資料的編碼吧?
檔案的編碼也確實是big5,但依然要加那段code才能正常顯示中文
2F:→ DongFeng:2.先檢查是否開啟全域變數,我猜測是程式中有使用$_POST中 02/18 01:12
3F:→ DongFeng:的索引直接當作變數的緣故 02/18 01:12
這邊不太懂
帳密傳送方式是由後台index.php中的一個小頁面(login_form.php)
以POST傳送account與password到login.php進行確認
原本伺服器能執行,為何這個伺服器就不行呢?
4F:推 thitbbeb:把瀏覽器的編碼改big5試試 02/18 08:43
5F:→ thitbbeb:編碼要統一: mysql、檔案、瀏覽器 02/18 08:43
7F:→ DongFeng:沒記錯的話資料庫跟資料表的編碼是分開的,也就是說有可 02/18 19:21
8F:→ DongFeng:能你的資料庫非big5但你的資料表卻是big5, 其實加那行也 02/18 19:21
9F:→ DongFeng:沒什麼,我自己就算很確定各個編碼都沒問題也會加那行, 02/18 19:21
10F:→ DongFeng:至於網頁標題的地方呈現???的問題,除非你<title>裡頭 02/18 19:21
11F:→ DongFeng:的字串也是從資料庫撈出來,不然我認為應該是檔案編碼問 02/18 19:21
12F:→ DongFeng:題,檢查你的<meta>跟檔案編碼 02/18 19:21
好的謝謝,網頁標題也是從資料庫撈的,編碼問題大致上已解決
現在一直卡在後台登不進去..
※ 編輯: shiajih 來自: 140.119.73.82 (02/18 19:24)
13F:→ DongFeng:第二個問題假設你的修改後的路徑都沒問題,檢查你的程式 02/18 19:29
14F:→ DongFeng:是否全域變數,php有個功能是能夠直接取用POST或GET的索 02/18 19:29
15F:→ DongFeng:引作為變數,假設今天有一個$_POST[user]的資料進來,我 02/18 19:29
16F:→ DongFeng:在寫程式的時候可以用$user的方式直接取用,而不用寫$use 02/18 19:29
17F:→ DongFeng:r=$_POST[user]這種指定某某變數等於某某變數的方式取用 02/18 19:29
18F:→ DongFeng:,這是一個很方便但也很危險的功能,一般是不會開啟的, 02/18 19:29
19F:→ DongFeng:而我假設上一個伺服器有開始這個功能而你的沒有,自然就會 02/18 19:29
20F:→ DongFeng:因為不支援這樣的寫法而暴錯。 02/18 19:29
感謝D大!!真的是全域變數的問題 舊虛擬主機是6~7年前申請的,當時確實用全域變數
現在已更正 謝謝!
※ 編輯: shiajih 來自: 140.119.157.111 (02/19 00:21)
21F:推 LPH66:補充一下樓上的那設定叫做 register_globals 02/19 17:12