引用地址:http://coz.tw/dz6/thread-11154-1-1.html
一開始小弟從安裝勳章中心6.0[UTF-8]插件到使用上都很順利
不過一到隔天就發現勳章自動回收
購買當時所使用的金錢也隨之消失
至後台查看勳章紀錄
會顯示某會員使用勳章中心來回收
不過各位大大不須煩惱
安全性並沒出問題
純粹是插件本身的BUG….
因為勳章中心插件本身可省去管理者人工頒發的困擾
對會員的自由性也提高非常多
所以應該會造成許多使用此插件的站長們很頭大
小弟花了3天測試更改此BUG的效果
終於給小弟成功解決
在此雙手奉上與各位大大們分享
解決方法↓
在plugins\medalcenter\medalcenter.func.php文件:
搜索:
if(!function_exists('array_combine')) { function array_combine($keys, $values) { $result = array(); if(is_array($keys) && is_array($values)) { if(count($keys) >= count($values)) { foreach($values as $value) { $key = $key ? next($keys) : current($keys); $result[] = array_combine($key, $value); } } else { foreach($keys as $key) { $value = $value ? next($values) : current($values); $result[] = array_combine($key, $value); } } } elseif(!is_array($keys) && !is_array($values)) { $keys = is_string($keys) ? '\''.addcslashes($keys, '\'\\').'\'' : $keys; $values = (!preg_match("/^\-?[1-9]\d*$/", $values) || strlen($values) > 12) ? '\''.addcslashes($values, '\'\\').'\'' : $values; $result = array($keys => $values); } elseif(is_array($keys) && !is_array($values)) { foreach($keys as $key) { $result[] = array_combine($key, $values); } } elseif(!is_array($keys) && is_array($values)) { foreach($values as $value) { $result[] = array_combine($keys, $value); } } return $result; } }
替换成:
if(!function_exists('array_combine')) { function array_combine($arr_key,$arr_val){ if( !is_array($arr_key) or !is_array($arr_val)){ echo '<b>Warning</b>: array_combine() expects all parameters to be array'; return false; } if(count($arr_key) != count($arr_val)){ echo '<b>Warning</b>: array_combine() Both parameters should have an equal number of elements'; return false; } $count = count($arr_key); for($i=0;$i<$count;$i++){ $key = $arr_key[$i]; $val = $arr_val[$i]; $arr_new[$key] = $val; } return $arr_new; } }
本來小弟以為改成上面方式就能解決
不過小弟等了一天
勳章中心還是很熱情的把勳章給回收了…
如果以上方法不能解決請繼續改下面的↓
上面改過的不需要再改回來
到medalcenter.func.php 找
if(is_array($uids)) { //array $where = 'WHERE m.uid in(\'' . implode('\', \'', $uids). '\')'; } else { $where = 'WHERE m.uid = \'' . $uids .'\''; $medalids = array($medalids); $outtimes = array($outtimes); }
改成:
if(is_array($uids)) { //array $where = 'WHERE m.uid in(\'' . implode('\', \'', $uids). '\')'; } else { $where = 'WHERE m.uid = \'' . $uids .'\''; } $medalids = array($medalids); $outtimes = array($outtimes);
把以上2個地方做一次改好
小弟測試成功沒問題
希望能對許多大大有所幫助:71:
Really?How?@freebie site
Is there a WordPress tool that is able to convert a webpage into a second language? I want my mother to read this blog but she can only understand in French.