[解決一半]銀行匯款訊息無法顯示

提供WOG各方面的技術問題,並提供最新path更新。

版主: 涅魂, 簫哥, 10度C~

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

[解決一半]銀行匯款訊息無法顯示

文章stu6707 » 2010-11-17 12:31 pm

安裝這個功能,[玩家訊息]分成[接收訊息]與[傳送訊息]也有安裝
http://www.et99.org/viewtopic.php?t= ... 340cb45cf5

公會跟裝備的訊息都可以顯示,沒發現問題或是錯誤
不過銀行的就有問題... OTL

假設A匯款到B
A的"情報中心-傳送訊息"會出現新訊息,不過是空白
圖檔

B的"情報中心-傳送訊息"也會出現新訊息,不過只有匯款者的名稱
圖檔

我的代碼
代碼: 選擇全部
   function bank_save($user_id,$pay_id,$money)
   {
      global $DB_site,$lang,$_POST;
      $have_price=$DB_site->query_first("select p_name,p_money,p_lv,p_bbsid from wog_player where p_id=".$user_id."");
      if($have_price['p_lv']<15 || !is_numeric($money) || $money <=0 || $have_price['p_money'] < $money)
      {
         alertWindowMsg($lang['wog_act_bank_noues']);
      }else
      {
         if($user_id != $pay_id)
         {
            $DB_site->query("insert into wog_message(p_id,title,dateline)values(".$pay_id.",'".$have_price[p_name]." 匯入 ".$money."元 到你的銀行 ',".(time()+13*3600).")");
            $DB_site->query("insert into wog_message(p_id,title,dateline)values(".$user_id.",'你匯出 ".$money." 元 到 ".$_POST["pay_id"]." 的戶頭 ',".(time()+13*3600).")");
            $p=$DB_site->query_first("select p_bbsid from wog_player where p_id=".$pay_id."");
            $DB_site->query("update ".USER_TABLE." set ".BANK_FIELB." = ".BANK_FIELB."+".$money." WHERE ".USER_ID."=".(empty($forum_message)?$pay_id:$p['p_bbsid']));
         }else
         {
            $DB_site->query("update ".USER_TABLE." set ".BANK_FIELB." = ".BANK_FIELB."+".$money." WHERE ".USER_ID."=".(empty($forum_message)?$user_id:$have_price['p_bbsid'])."");
         }
         $DB_site->query("update wog_player set p_money = p_money-".$money." where p_id=".$user_id."");
         showscript("parent.job_end(4)");
      }
   }


傳跟收錢玩家都有新訊息,$pay_id跟$user_id都有取到值
A玩家的身上現金也有扣款,$money也有取到值

為什麼訊息就是不顯示呢.. T____T

請問有人能幫忙嗎? 感謝~~~~~~~~


最後由 stu6707 於 2010-11-22 3:20 pm 編輯,總共編輯了 1 次。


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 銀行匯款訊息無法顯示

文章ETERNAL » 2010-11-17 3:11 pm

5年前...好懷念的功能 呵呵

涅魂好像在準備上研究所,不知道有沒有空回來


水色論壇 http://www.et99.net
簡恩峻分享

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

Re: 銀行匯款訊息無法顯示

文章stu6707 » 2010-11-17 4:44 pm

我有是過重裝wog,全部都是最原始,沒有任何外掛或是改變
function bank_save裡就只有收錢玩家顯示
代碼: 選擇全部
$DB_site->query("insert into wog_message(p_id,title,dateline)values(".$pay_id.",'".$have_price[p_name]." 匯入 ".$money."元 到你的銀行 ',".time().")");


也是一樣只會顯示傳錢的玩家名稱,不會顯示匯款有多少 @@

是我下的壓縮檔有問題嗎?




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 銀行匯款訊息無法顯示

文章ETERNAL » 2010-11-18 9:20 am

我猜$money可能是空的吧

可以echo $money 查看一下

細節要問涅魂了,這功能是他做的


水色論壇 http://www.et99.net
簡恩峻分享

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

Re: 銀行匯款訊息無法顯示

文章stu6707 » 2010-11-19 3:00 pm

我在
代碼: 選擇全部
         showscript("parent.job_end(4)");

上面加入
代碼: 選擇全部
alertWindowMsg($money);


(不會用echo..... orz..)

有跳出金額欄位填的數字,$money是有取到值的

到底出了什麼問題..... =.=




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 銀行匯款訊息無法顯示

文章ETERNAL » 2010-11-19 9:57 pm

那就很奇怪了
看看是不是資料的長度太長 被截掉之類的

要不然寫死多測試看看


水色論壇 http://www.et99.net
簡恩峻分享

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

Re: 銀行匯款訊息無法顯示

文章stu6707 » 2010-11-20 11:25 am

我把訊息改成英文
代碼: 選擇全部
$DB_site->query("insert into wog_message(p_id,title,dateline)values(".$pay_id.",'".$have_price[p_name]." transfer \$".$money." to your account',".(time()+13*3600).")");
            $DB_site->query("insert into wog_message(p_id,title,dateline)values(".$user_id.",'you transfer \$".$money." to ".$_POST["pay_id"]." \'s account ',".(time()+13*3600).")");

可以insert進去..... 收錢的玩家可以在情報中心看到完整的訊息,第一句有被執行
不過匯款的玩家進不去情報中心.. 我在sql裡可以看到匯款的完整訊息,第二句也有被執行,只是進不去就不知道是為什麼了........

看來是中文寫不進去..... =.= 可是轉移裝備或是傳訊都可以寫入和顯示,為什麼獨獨銀行出問題... @@?

上網找資料,好像牽扯到字符長度,字符編碼.. OTL 好複雜... 只好等有時間在研究研究了 0.0



stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

Re: [解決一半]銀行匯款訊息無法顯示

文章stu6707 » 2010-11-22 3:30 pm

問題解決一半了..... =.="
我在
代碼: 選擇全部
$DB_site->query("insert into wog_message(p_id,title,dateline)values(".$pay_id.",'".$have_price[p_name]." 匯入 ".$money."元 到你的銀行 ',".time().")");

上增加
代碼: 選擇全部
mysql_query("SET NAMES 'big5'");


訊息是有插進去,在情報中心也有顯示,只是傳送跟接收會員的名稱變亂碼.... OTL

傳錢會員的情報中心
圖檔

收錢會員的情報中心
圖檔

請求高手幫忙.. <(_ _)> 感激~~~~




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: [解決一半]銀行匯款訊息無法顯示

文章ETERNAL » 2010-11-23 9:19 am

那應該是編碼的問題

看你WOG用什麼編碼,資料庫就用什麼編碼

如果是UTF-8的話,去看一下WOG安裝設定

有教你加上下面這幾行
$db->query_first("SET NAMES utf8;");
$db->query_first("SET CHARACTER_SET_CLIENT=utf8;");
$db->query_first("SET CHARACTER_SET_RESULTS=utf8;");


水色論壇 http://www.et99.net
簡恩峻分享

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

Re: [解決一半]銀行匯款訊息無法顯示

文章stu6707 » 2010-11-23 2:55 pm

那3句在forum_support/global.php 有看到,難道要每個php裡都要放 @@?

問題已經解決了~
我用iconv()把$have_price[p_name]轉成big5,所以整句都是已big5插入資料庫.. 不知會不會有問題 0.0
在wog_act_store.php裡隨便一function裡加入insert into wog_message,中文都插不進去 =.=
可是wog_act_arm.php就沒這問題,中文也可以進去.. 請問為什麼store會有問題 0.0?

增加新問題
請問要如何在og_act_arm.php裡的轉移裝備訊息加入數量?
代碼: 選擇全部
$DB_site->query("insert into wog_message(p_id,title,dateline)values(".$pay_id[0].",'從 ".$p_name." 收到 ".$d_name." ',".(time()+13*3600).")");

裡面的".$d_name."變成".$d_name."\*".$item_num."
我已在function裡加入
代碼: 選擇全部
$item_num=$_POST["item_num"];

可是都顯示不出來 Orz...




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: [解決一半]銀行匯款訊息無法顯示

文章ETERNAL » 2010-11-23 4:31 pm

stu6707 寫:那3句在forum_support/global.php 有看到,難道要每個php裡都要放 @@?

問題已經解決了~
我用iconv()把$have_price[p_name]轉成big5,所以整句都是已big5插入資料庫.. 不知會不會有問題 0.0
在wog_act_store.php裡隨便一function裡加入insert into wog_message,中文都插不進去 =.=
可是wog_act_arm.php就沒這問題,中文也可以進去.. 請問為什麼store會有問題 0.0?

增加新問題
請問要如何在og_act_arm.php裡的轉移裝備訊息加入數量?
代碼: 選擇全部
$DB_site->query("insert into wog_message(p_id,title,dateline)values(".$pay_id[0].",'從 ".$p_name." 收到 ".$d_name." ',".(time()+13*3600).")");

裡面的".$d_name."變成".$d_name."\*".$item_num."
我已在function裡加入
代碼: 選擇全部
$item_num=$_POST["item_num"];

可是都顯示不出來 Orz...


1.看你WOG用什麼編碼,資料庫就用什麼編碼

這才是重點,也是治本的方式

只要global.php放就可以了

2. echo $item_num 試試看有沒有值


水色論壇 http://www.et99.net
簡恩峻分享

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

Re: [解決一半]銀行匯款訊息無法顯示

文章stu6707 » 2010-11-23 4:50 pm

1. 我是用utf8的,global.php已經放了
其它php文件寫入wog_message都沒問題,就是wog_act_store.php有問題..

2.我有試過alertWindowMsg($_POST["item_num"]),出來是空值,這樣對嗎?
我看pay_id也是用$_POST來接值,pay_id & item_num都是在js輸入了,再傳到wog_act.php
既然同樣地方輸入跟傳到同樣地方,那item_num用$_POST應該也是可以接到的..
可是是空值.. ORZ




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: [解決一半]銀行匯款訊息無法顯示

文章ETERNAL » 2010-11-23 5:35 pm

stu6707 寫:1. 我是用utf8的,global.php已經放了
其它php文件寫入wog_message都沒問題,就是wog_act_store.php有問題..

2.我有試過alertWindowMsg($_POST["item_num"]),出來是空值,這樣對嗎?
我看pay_id也是用$_POST來接值,pay_id & item_num都是在js輸入了,再傳到wog_act.php
既然同樣地方輸入跟傳到同樣地方,那item_num用$_POST應該也是可以接到的..
可是是空值.. ORZ


1.
加油了

2.
邏輯沒錯,我也不知道為什麼你會空值

多try吧


水色論壇 http://www.et99.net
簡恩峻分享

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

Re: [解決一半]銀行匯款訊息無法顯示

文章stu6707 » 2010-12-14 12:32 pm

兩個問題都解決了.....
銀行轉帳,原來是php編碼問題 =.=.. 改成utf-8就可以了

加入數量顯示,wog.js中item_num傳到wog_act_arm.php是$_POST["temp_id"],不是$_POST["item_num"]

感謝ET大的耐心解答 ^^




回到 Online FF Battle-WOG官方聯盟推廣處

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 18 位訪客