[問題] 虛擬股票..修改(感謝t大&倉大)...現在已經是一編教學了

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

[問題] 虛擬股票..修改(感謝t大&倉大)...現在已經是一編教學了

文章 233062306 »

問題外掛:虛擬股票
參考連結:http://chung51.myweb.hinet.net/i-mod.exe
使用版本:phpbb 2.0.17
網站位置:http://2306zone.wagoo2.com
狀況描述: 買入股票 or 貸款時.......輸入5*100000 或1*9999999
簡單的說......1股50元....打入 "10*5".....自動買入了50股.....
一般而言.....金額50x50=2500元....但輸入時打入 "*" 這東西....金額只要250元就可以買50股了.....
我暈倒了 :evil: :evil: :evil:

我知道i-mod已經不再開發了....
所以應該作者不會修改這個bug的....
但是....我自己想了個方法.....
在輸入數字時....當使用者輸入不是數字的東西時....例如!#$#%*)_>:";'{}[]\|..........
就會發出警告.....

我不太會php.....所以用其他方式表示吧= =
if(輸入的變數中有不是數字的符號)
echo "這不是數字";

就是這樣了......
最後由 233062306 於 2005-09-11 21:39 編輯,總共編輯了 3 次。
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

剛剛試了修改股票的php....
還是失敗=.=.....
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
*tytsim*
竹貓忠實會員
竹貓忠實會員
文章: 411
註冊時間: 2005-03-24 11:54
來自: 香港
聯繫:

文章 *tytsim* »

我試過在\r

代碼: 選擇全部

	$total_buy = $HTTP_POST_VARS['stock_buy'];

代碼: 選擇全部

if ($total_buy = "*" || $total_buy = "\/" || $total_buy = "+" || $total_buy = "-")
{
		message_die(GENERAL_ERROR, '不能使用符號,<a href="'.append_sid("sm_volume.$phpEx?id=".$id).'">返回</a>');
}
雖然有少少用...
但是IF根本沒執行到@@~
就算買1個股票
就會出現\r
不能使用符號
 網絡鎮
    關於網絡的
http://tytsim.net.ru  一個網絡鎮
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

IF根本沒執行到??
那...即是.....不明白= =....
不明白是否可以避免這個bug :oops: :oops:
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

*tytsim* 寫:我試過在\r

代碼: 選擇全部

	$total_buy = $HTTP_POST_VARS['stock_buy'];

代碼: 選擇全部

if ($total_buy = "*" || $total_buy = "\/" || $total_buy = "+" || $total_buy = "-")
{
		message_die(GENERAL_ERROR, '不能使用符號,<a href="'.append_sid("sm_volume.$phpEx?id=".$id).'">返回</a>');
}
雖然有少少用...
但是IF根本沒執行到@@~
就算買1個股票
就會出現\r
不能使用符號
問題就在你的判斷式上
應該要用==來做比對而不是用=
再者如果修改成用==的話, 還是會有問題
以一個最簡單的例子好了, 假設判斷式是這樣子

代碼: 選擇全部

if ($total_buy == "*")
{
   message_die(.....);
}
則除非使用者剛好是輸入「*」, 才會被攔截下來
若是輸入*20、20*5或是20.5.10這類的值, 就無法被檢查出來

個人是建議先將輸入的值轉換成int去做檢查\r
一來是可以利用內建的轉換規則把一些不合法的字元去掉
然後再判斷轉換後的值是否小於等於0, 若是, 則show出警告訊息\r

代碼: 選擇全部

$total_buy = intval($HTTP_POST_VARS['stock_buy']);
if ( $total_buy <= 0 )
{
   message_die(GENERAL_ERROR, '您輸入的數字不合規定, 請輸入大於0的正整數<br><a herf="' . append_sid("sm_volume.$phpEx?id=" . $sid) . '">返回</a>');
}
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

=="*"的問題我也有留意到....
除非是用char的array了.....
倉大真是利害....
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

測試完畢!!
輸入1*9999999.....
結果只會買入1股....
但不會出現錯誤訊息...
成功了一半
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
*tytsim*
竹貓忠實會員
竹貓忠實會員
文章: 411
註冊時間: 2005-03-24 11:54
來自: 香港
聯繫:

文章 *tytsim* »

我記得"="是解只要裡面有就會有就會出現~
可能記錯了asp@@~
 網絡鎮
    關於網絡的
http://tytsim.net.ru  一個網絡鎮
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

*tytsim* 寫:我記得"="是解只要裡面有就會有就會出現~
可能記錯了asp@@~
ASP 的=確實是這樣子
在ASP裡的「=」包含了二種意義\r
一個是指定運算子, 例如 A=2 , 表示將A的值設定2
一個是比較運算子, 例如 If A=2 Then ... , 代表判斷A的值是否等於2
不過, 在C/C++、Java、JavaScript、PHP、JSP等程式裡, 則是用「==」代表比較運算子
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

233062306 寫:測試完畢!!
輸入1*9999999.....
結果只會買入1股....
但不會出現錯誤訊息...
成功了一半
購買股數的input欄位本來就不應該接受1*999這種不合規定的輸入, 而是應該只能接受大於0的正整數才合理
除非你什麼也沒輸入, 或是輸入小於等於0的值(例如-21), 才會出現警告訊息\r
否則將會對你所輸入的值進行intval轉換
轉換規則是\r
1.無法轉成數字的會被視為0
2.遇到無法轉換的數字則會停止轉換, 即使後頭還有可轉換的內容
例如
輸入12.8→12
輸入12/7→12
輸入1024*8→1024
輸入*12→0
輸入-33.3/3→-33
輸入  3→0 (註:在3之前的是2個全型的空格)
輸入3.14→0
所以並不需要去理會1*99這種不合法的輸入, 且會被直接視為購買1股
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

倉大利害@o@.....
我學c及c++時知道用array就可以查出輸入的是否數字....(用askii code)
之前以為php沒有這樣東西....

這編回覆的教學真好...
因為我認識的人有很多都有裝i-stock...
我在竹貓發了這編文之後我的金融市場就突然受到一大堆"測試人員"不斷鋪天蓋地的"測試"這個bug= = :evil: :evil: :evil:
那"測試人員"當然是沒有真名的.....但我心裡有數是哪個竹貓會員\r
當中一個還跟人說自己是2有錢的....而且收購了所有公司...無聊....我一按還原就取消了......
幸好有backup ;-) ;-) ;-) ;-)

對他這種不知所謂的行為
我不會作出任何批評
因為我的批評是給一些不是白目,無知,卑鄙,下流的人
他跟本配不上
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

那個"測試人員"
今日又來了....
他聰明地...不斷找新的bug賺錢~~開了n間公司\r
不過我也不笨...利用他找出新bug= =
他還以為自己聰明得很.......我倒也要感謝他了~
我又重施故技.....還原...
當然....我不會把他的帳戶刪除 ;-) ;-) ...免費debuger~~wakakak


賣出股票也要修改呀~~
sm_volume.php
經測試是可行的~
而i-stock中...要輸入數字的地方都有一模一樣的bug.....所以....要修改很多地方@o@......

代碼: 選擇全部

$total_sell = intval($HTTP_POST_VARS['stock_sell']); 
if ( $total_sell <= 0 ) 
{ 
   message_die(GENERAL_ERROR, '您輸入的數字不合規定, 請輸入大於0的正整數<br><a herf="' . append_sid("sm_volume.$phpEx?id=" . $sid) . '">返回</a>'); 
}
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

讓小弟來做個總結吧\r

藍大的stock有3大bug~(希望他不會介意我公開修改吧...始終版權是他的 :oops: :oops: )
1.購入股票時輸入1*999,會買入999股~但只需要1股的金錢\r
2.賣出股票時輸入1*999,會賣出1股~但該公司要出現多出999股\r
3.(擁有公司的人才出事= =)某公司的董事長發行股票數量輸入1*999~公司會出現多999股~但只需要1股的金錢\r

下面有解決方法~小弟親自試過~
有裝stock的快快修改!!!3個都是十分嚴重的!!!
我的論壇就是一個好例子......

針對問題1
找\r

代碼: 選擇全部

$total_buy = $HTTP_POST_VARS['stock_buy']; 
取伐為\r

代碼: 選擇全部

$total_buy = intval($HTTP_POST_VARS['stock_buy']); 
if ( $total_buy <= 0 ) 
{ 
   message_die(GENERAL_ERROR, '您輸入的數字不合規定, 請輸入大於0的正整數<br><a herf="' . append_sid("sm_volume.$phpEx?id=" . $sid) . '">返回</a>'); 
}
針對問題2
找\r

代碼: 選擇全部

$total_sell = $HTTP_POST_VARS['stock_sell']; 
取伐為\r

代碼: 選擇全部

$total_sell = intval($HTTP_POST_VARS['stock_sell']); 
if ( $total_sell <= 0 ) 
{ 
   message_die(GENERAL_ERROR, '您輸入的數字不合規定, 請輸入大於0的正整數<br><a herf="' . append_sid("sm_volume.$phpEx?id=" . $sid) . '">返回</a>'); 
}
針對問題3
找\r

代碼: 選擇全部

$total_hold = $HTTP_POST_VARS['stock_release'];
取伐為\r

代碼: 選擇全部

$total_hold = intval($HTTP_POST_VARS['stock_release']); 
if ( $total_hold <= 0 ) 
{ 
  message_die(GENERAL_ERROR, '您輸入的數字不合規定, 請輸入大於0的正整數<br><a herf="' . append_sid("sm_volume.$phpEx?id=" . $sid) . '">返回</a>'); 
}
重申...藍大如果介意的話...我會立即刪除的= =
最後由 233062306 於 2005-09-13 22:48 編輯,總共編輯了 1 次。
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
w2812451
星球公民
星球公民
文章: 255
註冊時間: 2005-07-16 21:38

文章 w2812451 »

233062306 寫:重申...藍大如果介意的話...我會立即刪除的= =
放心!他不會鳥你的ˊˋ
233062306
星球公民
星球公民
文章: 278
註冊時間: 2005-02-28 20:12
聯繫:

文章 233062306 »

w2812451 寫:
233062306 寫:重申...藍大如果介意的話...我會立即刪除的= =
放心!他不會鳥你的ˊˋ
.....天知道=.=
還是pm他好...
自己友
拜託拜託>///<
註冊做會員....讓論壇多一點人流吧!!!

大家都是phpbb的子女~
一起交換論壇來提升自己論壇的水準吧
主題已鎖定

回到「外掛問題討論」