This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /** |
||
3 | * Article management |
||
4 | * |
||
5 | * @copyright The XOOPS project http://www.xoops.org/ |
||
6 | * @license http://www.fsf.org/copyleft/gpl.html GNU public license |
||
7 | * @author Taiwen Jiang (phppp or D.J.) <[email protected]> |
||
8 | * @since 1.00 |
||
9 | * @version $Id$ |
||
10 | * @package module::article |
||
11 | */ |
||
12 | |||
13 | if (!defined('XOOPS_ROOT_PATH')) { |
||
14 | exit(); |
||
15 | } |
||
16 | |||
17 | /** |
||
18 | * @用于头部 |
||
19 | * @method: |
||
20 | * @license http://www.blags.org/ |
||
21 | * @created :2010年05月20日 21时59分 |
||
22 | * @copyright 1997-2010 The Martin Group |
||
23 | * @author Martin <[email protected]> |
||
24 | * */ |
||
25 | if (!function_exists('martin_adminMenu')) { |
||
26 | /** |
||
27 | * @param int $currentoption |
||
28 | * @param string $breadcrumb |
||
29 | */ |
||
30 | function martin_adminMenu($currentoption = 0, $breadcrumb = '') |
||
31 | { |
||
32 | include_once XOOPS_ROOT_PATH . '/class/template.php'; |
||
33 | |||
34 | // global $xoopsDB, $xoopsModule, $xoopsConfig, $xoopsModuleConfig; |
||
35 | global $xoopsModule, $xoopsConfig; |
||
36 | |||
37 | View Code Duplication | if (file_exists(MARTIN_ROOT_PATH . 'language/' . $xoopsConfig['language'] . '/modinfo.php')) { |
|
0 ignored issues
–
show
|
|||
38 | include_once MARTIN_ROOT_PATH . 'language/' . $xoopsConfig['language'] . '/modinfo.php'; |
||
39 | } else { |
||
40 | include_once MARTIN_ROOT_PATH . 'language/english/modinfo.php'; |
||
41 | } |
||
42 | View Code Duplication | if (file_exists(MARTIN_ROOT_PATH . 'language/' . $xoopsConfig['language'] . '/admin.php')) { |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
43 | include_once MARTIN_ROOT_PATH . 'language/' . $xoopsConfig['language'] . '/admin.php'; |
||
44 | } else { |
||
45 | include_once MARTIN_ROOT_PATH . 'language/english/admin.php'; |
||
46 | } |
||
47 | include MARTIN_ROOT_PATH . 'admin/menu.php'; |
||
48 | |||
49 | $tpl = new XoopsTpl(); |
||
50 | $tpl->assign(array( |
||
51 | 'headermenu' => $headermenu, |
||
0 ignored issues
–
show
|
|||
52 | 'adminmenu' => $adminmenu, |
||
0 ignored issues
–
show
|
|||
53 | 'current' => $currentoption, |
||
54 | 'breadcrumb' => $breadcrumb, |
||
55 | 'headermenucount' => count($headermenu))); |
||
56 | $tpl->display('db:martin_admin_menu.tpl'); |
||
57 | echo "<br />\n"; |
||
58 | } |
||
59 | } |
||
60 | |||
61 | /** |
||
62 | * @用于区块 |
||
63 | * @method: |
||
64 | * @license http://www.blags.org/ |
||
65 | * @created :2010年05月20日 21时59分 |
||
66 | * @copyright 1997-2010 The Martin Group |
||
67 | * @author Martin <[email protected]> |
||
68 | * */ |
||
69 | if (!function_exists('martin_collapsableBar')) { |
||
70 | /** |
||
71 | * @param string $tablename |
||
72 | * @param string $iconname |
||
73 | * @param string $tabletitle |
||
74 | * @param string $tabledsc |
||
75 | */ |
||
76 | function martin_collapsableBar($tablename = '', $iconname = '', $tabletitle = '', $tabledsc = '') |
||
77 | { |
||
78 | global $xoopsModule; |
||
79 | |||
80 | // echo '<script type="text/javascript" src="' . XOOPS_URL . '/themes/default/jquery-1.3.2.min.js"></script>'; |
||
81 | echo '<script type="text/javascript" src="' . XOOPS_URL . '/browse.php?Frameworks/jquery/jquery.js"></script>'; |
||
82 | echo "<h3 style=\"color: #2F5376; font-weight: bold; font-size: 14px; margin: 6px 0 0 0; \"><a href='javascript:;' class='tabclose'>"; |
||
83 | echo "<img id='$iconname' src=" . XOOPS_URL . "/modules/" . $xoopsModule->dirname() . "/images/icon/close12.gif class='tab_img' /> " . $tabletitle . "</a></h3>"; |
||
84 | echo "<div id='$tablename' class='open'>"; |
||
85 | if ($tabledsc != '') { |
||
86 | echo "<span style=\"color: #567; margin: 3px 0 12px 0; font-size: small; display: block; \">" . $tabledsc . "</span>"; |
||
87 | } |
||
88 | } |
||
89 | } |
||
90 | |||
91 | /** |
||
92 | * @创建button |
||
93 | * @method:array('add' => array('url' => '?action=add', 'value' => '添加'),) |
||
94 | * @license http://www.blags.org/ |
||
95 | * @created :2010年05月21日 20时40分 |
||
96 | * @copyright 1997-2010 The Martin Group |
||
97 | * @author Martin <[email protected]> |
||
98 | * */ |
||
99 | if (!function_exists('Create_button')) { |
||
100 | /** |
||
101 | * @param $ButtonArr |
||
102 | * @return string |
||
0 ignored issues
–
show
|
|||
103 | */ |
||
104 | function Create_button($ButtonArr) |
||
105 | { |
||
106 | if (!is_array($ButtonArr)) { |
||
107 | return ''; |
||
108 | } |
||
109 | echo '<div style="margin-bottom: 12px;">'; |
||
110 | if (is_array($ButtonArr)) { |
||
111 | foreach ($ButtonArr as $key => $button) { |
||
112 | echo " <input type='button' value='{$button['value']}' onclick='location=\"{$button['url']}\"' name='$key'>"; |
||
113 | } |
||
114 | } |
||
115 | echo '</div>'; |
||
116 | } |
||
117 | } |
||
118 | |||
119 | if (!function_exists('martin_close_collapsable')) { |
||
120 | /** |
||
121 | * @param $name |
||
122 | * @param $icon |
||
123 | */function martin_close_collapsable($name, $icon) |
||
0 ignored issues
–
show
|
|||
124 | { |
||
125 | ?> |
||
126 | </div> |
||
127 | <script type='text/javascript'> |
||
128 | /*jQuery.noconflict(); |
||
129 | jQuery(function($){*/ |
||
130 | $(".tabclose").click(function(){ |
||
131 | var div = $(this).parent("h3").next('div').attr('id'); |
||
132 | var div_class = $("#"+div).attr('class'); |
||
133 | if(div_class == 'open') |
||
134 | { |
||
135 | $("#"+div).hide(); |
||
136 | $(".tab_img").attr('src','../images/icon/open12.gif'); |
||
137 | $("#"+div).attr('class','close'); |
||
138 | }else if(div_class == 'close'){ |
||
139 | $("#"+div).show(); |
||
140 | $(".tab_img").attr('src','../images/icon/close12.gif'); |
||
141 | $("#"+div).attr('class','open'); |
||
142 | } |
||
143 | |||
144 | }); |
||
145 | |||
146 | $(".existimage").click(function(){ |
||
147 | var filename = this.id; |
||
148 | if(!confirm("确定删除吗?")) return false; |
||
149 | $.post('martin.hotel.php',{action:'deleteimg',img:filename}); |
||
150 | $(this).parent("div").remove(); |
||
151 | }); |
||
152 | function go(url) |
||
153 | { |
||
154 | window.location.href = url; |
||
155 | } |
||
156 | |||
157 | /*});*/ |
||
158 | </script> |
||
159 | <?php |
||
160 | |||
161 | } |
||
162 | } |
||
163 | |||
164 | /** |
||
165 | * @get order js |
||
166 | * @license http://www.blags.org/ |
||
167 | * @created :2010年06月10日 21时25分 |
||
168 | * @copyright 1997-2010 The Martin Group |
||
169 | * @author Martin <[email protected]> |
||
170 | * */ |
||
171 | if (!function_exists('martin_order_list_js')) { |
||
172 | function martin_order_list_js() |
||
173 | { |
||
174 | echo <<<EndHTML |
||
175 | <script type='text/javascript'> |
||
176 | $("#hotel_city_id").change(function(){ |
||
177 | var params = $("#orderSearch").serialize(); |
||
178 | var rate = $('#hotel_city_id option:selected').text(); |
||
179 | /*if(rate.indexOf('----') == -1 || rate.length == 4) |
||
180 | { |
||
181 | alert("请选取三级类目! please select correct regoin!");return false; |
||
182 | }*/ |
||
183 | $.get('martin.ajax.php?action=gethotellist',params,function(data){ |
||
184 | $("#hotel_name_div").html(data); |
||
185 | $("#hotel_name").html(''); |
||
186 | }); |
||
187 | }); |
||
188 | $("#hotel_star").change(function(){ |
||
189 | var params = $("#orderSearch").serialize(); |
||
190 | var rate = $('#hotel_star option:selected').text(); |
||
191 | /*if(rate.indexOf('----') == -1 || rate.length == 4) |
||
192 | { |
||
193 | alert("请选取三级类目! please select correct regoin!");return false; |
||
194 | }*/ |
||
195 | $.get('martin.ajax.php?action=gethotellist',params,function(data){ |
||
196 | $("#hotel_name_div").html(data); |
||
197 | $("#hotel_name").html(''); |
||
198 | }); |
||
199 | }); |
||
200 | function hotel_select(event) |
||
201 | { |
||
202 | var hotel_name = $(event).find('option:selected').text(); |
||
203 | $("#hotel_name").html('<input type="hidden" name="hotel_name" value="'+hotel_name+'">'); |
||
204 | } |
||
205 | </script> |
||
206 | EndHTML; |
||
207 | } |
||
208 | } |
||
209 | |||
210 | /** |
||
211 | * @method: 得到酒店星级 |
||
212 | * @license http://www.blags.org/ |
||
213 | * @created :2010年05月24日 19时55分 |
||
214 | * @copyright 1997-2010 The Martin Group |
||
215 | * @author Martin <[email protected]> |
||
216 | **/ |
||
217 | if (!function_exists('GetRanks')) { |
||
218 | /** |
||
219 | * @param $xoopsModuleConfig |
||
220 | * @return mixed |
||
221 | */ |
||
222 | function GetRanks(&$xoopsModuleConfig) |
||
223 | { |
||
224 | $HotelRanks = $xoopsModuleConfig['hotelrank']; |
||
225 | $HotelRanks = array_filter(explode(chr(13), $HotelRanks)); |
||
226 | if (is_array($HotelRanks)) { |
||
227 | foreach ($HotelRanks as $hotelrank) { |
||
228 | $Rank = array_filter(explode("-", $hotelrank)); |
||
229 | $Ranks[(int)(str_replace("\n", "", $Rank[0]))] = trim(str_replace("\n", "", $Rank[1])); |
||
0 ignored issues
–
show
Coding Style
Comprehensibility
introduced
by
$Ranks was never initialized. Although not strictly required by PHP, it is generally a good practice to add $Ranks = array(); before regardless.
Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code. Let’s take a look at an example: foreach ($collection as $item) {
$myArray['foo'] = $item->getFoo();
if ($item->hasBar()) {
$myArray['bar'] = $item->getBar();
}
// do something with $myArray
}
As you can see in this example, the array This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop. ![]() |
|||
230 | unset($Rank); |
||
231 | } |
||
232 | } |
||
233 | |||
234 | return $Ranks; |
||
0 ignored issues
–
show
The variable
$Ranks does not seem to be defined for all execution paths leading up to this point.
If you define a variable conditionally, it can happen that it is not defined for all execution paths. Let’s take a look at an example: function myFunction($a) {
switch ($a) {
case 'foo':
$x = 1;
break;
case 'bar':
$x = 2;
break;
}
// $x is potentially undefined here.
echo $x;
}
In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined. Available Fixes
![]() |
|||
235 | } |
||
236 | } |
||
237 | |||
238 | /** |
||
239 | * @method delete path files |
||
240 | * @license http://www.blags.org/ |
||
241 | * @created :2010年05月27日 22时04分 |
||
242 | * @copyright 1997-2010 The Martin Group |
||
243 | * @author Martin <[email protected]> |
||
244 | * */ |
||
245 | if (!function_exists('deldir')) { |
||
246 | /** |
||
247 | * @param $dir |
||
248 | */ |
||
249 | function deldir($dir) |
||
250 | { |
||
251 | $dh = opendir($dir); |
||
252 | while ($file = readdir($dh)) { |
||
253 | if ($file !== "." && $file !== "..") { |
||
254 | $fullpath = $dir . "/" . $file; |
||
255 | if (!is_dir($fullpath)) { |
||
256 | unlink($fullpath); |
||
257 | } else { |
||
258 | deldir($fullpath); |
||
259 | } |
||
260 | } |
||
261 | } |
||
262 | closedir($dh); |
||
263 | /*if(rmdir($dir)) |
||
264 | { |
||
265 | return true; |
||
266 | } else { |
||
267 | return false; |
||
268 | }*/ |
||
269 | } |
||
270 | } |
||
271 | |||
272 | /** |
||
273 | * @get module config array |
||
274 | * @license http://www.blags.org/ |
||
275 | * @created :2010年06月06日 20时05分 |
||
276 | * @copyright 1997-2010 The Martin Group |
||
277 | * @author Martin <[email protected]> |
||
278 | * */ |
||
279 | if (!function_exists('getModuleArray')) { |
||
280 | /** |
||
281 | * @param $module_key |
||
282 | * @param null $keyName |
||
283 | * @param bool $is_get_arr |
||
284 | * @param null $selected |
||
285 | * @param null $ModuleConfig |
||
286 | * @return array|string |
||
287 | */ |
||
288 | function getModuleArray($module_key, $keyName = null, $is_get_arr = false, $selected = null, $ModuleConfig = null) |
||
289 | { |
||
290 | global $xoopsModuleConfig; |
||
291 | if (empty($xoopsModuleConfig)) { |
||
292 | $xoopsModuleConfig = &$ModuleConfig; |
||
293 | } |
||
294 | //var_dump($xoopsModuleConfig); |
||
295 | $keyName = is_null($keyName) ? $module_key : $keyName; |
||
296 | if (isset($xoopsModuleConfig[$module_key]) && !empty($xoopsModuleConfig[$module_key])) { |
||
297 | $Arrs = $xoopsModuleConfig[$module_key]; |
||
298 | $Arrs = array_filter(explode(chr(13), $Arrs)); |
||
299 | $ModuleArr = array(); |
||
300 | if (is_array($Arrs)) { |
||
301 | foreach ($Arrs as $Arr) { |
||
302 | $TmpArr = array_filter(explode("-", $Arr)); |
||
303 | //var_dump($TmpArr); |
||
304 | if (!empty($TmpArr[0]) && !empty($TmpArr[1])) { |
||
305 | $ModuleKey = (str_replace("\n", "", $TmpArr[0])); |
||
306 | $ModuleKey = is_numeric($ModuleKey) ? (int)($ModuleKey) : trim($ModuleKey); |
||
307 | $ModuleArr[$ModuleKey] = trim(str_replace("\n", "", $TmpArr[1])); |
||
308 | } else { |
||
309 | $ModuleArr[] = trim(str_replace("\n", "", $TmpArr[0])); |
||
310 | } |
||
311 | unset($TmpArr); |
||
312 | } |
||
313 | } |
||
314 | if ($is_get_arr) { |
||
315 | return $ModuleArr; |
||
316 | } |
||
317 | |||
318 | //var_dump($ModuleArr); |
||
319 | return is_null($keyName) ? $ModuleArr : WriteHtmlSelect($ModuleArr, $keyName, $selected); |
||
320 | } |
||
321 | |||
322 | return $module_key; |
||
323 | } |
||
324 | } |
||
325 | |||
326 | /** |
||
327 | * @write html select |
||
328 | * @method: |
||
329 | * @license http://www.blags.org/ |
||
330 | * @created :2010年06月07日 20时25分 |
||
331 | * @copyright 1997-2010 The Martin Group |
||
332 | * @author Martin <[email protected]> |
||
333 | * */ |
||
334 | if (!function_exists('WriteHtmlSelect')) { |
||
335 | /** |
||
336 | * @param $ModuleArr |
||
337 | * @param $keyName |
||
338 | * @param null $selected |
||
339 | * @return string |
||
340 | */ |
||
341 | function WriteHtmlSelect($ModuleArr, $keyName, $selected = null) |
||
342 | { |
||
343 | if (empty($keyName)) { |
||
344 | return $keyName; |
||
345 | } |
||
346 | $Str = "<select name='$keyName' id='$keyName' >\n"; |
||
347 | $Str .= "<option value=''>----</option>"; |
||
348 | if (is_array($ModuleArr)) { |
||
349 | foreach ($ModuleArr as $key => $value) { |
||
350 | $selectedStr = ($selected === $key) ? " selected='selected'" : ""; |
||
351 | $Str .= "<option value='$key' $selectedStr>$value</option>"; |
||
352 | unset($selectedStr); |
||
353 | } |
||
354 | } |
||
355 | $Str .= "</select>"; |
||
356 | |||
357 | return $Str; |
||
358 | } |
||
359 | } |
||
360 | |||
361 | /** |
||
362 | * @get mouth last day |
||
363 | * @license http://www.blags.org/ |
||
364 | * @created :2010年06月24日 22时04分 |
||
365 | * @copyright 1997-2010 The Martin Group |
||
366 | * @author Martin <[email protected]> |
||
367 | * */ |
||
368 | if (!function_exists('MouthLastDay')) { |
||
369 | /** |
||
370 | * @param null $mouth |
||
371 | * @return array|bool|int|string |
||
372 | */ |
||
373 | function MouthLastDay($mouth = null) |
||
374 | { |
||
375 | $mouth = is_null($mouth) ? date('m') : $mouth; |
||
376 | $date = date('Y') . '-' . $mouth . '-' . date('d'); |
||
377 | $firstday = date('Y-m-01', strtotime($date)); |
||
378 | $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day")); |
||
379 | $lastday = explode('-', $lastday); |
||
380 | $lastday = array_reverse($lastday); |
||
381 | $lastday = (int)$lastday[0]; |
||
382 | |||
383 | return $lastday; |
||
384 | } |
||
385 | } |
||
386 | |||
387 | /** |
||
388 | * @get check in date arr |
||
389 | * @license http://www.blags.org/ |
||
390 | * @created :2010年07月01日 22时08分 |
||
391 | * @copyright 1997-2010 The Martin Group |
||
392 | * @author Martin <[email protected]> |
||
393 | * */ |
||
394 | if (!function_exists('GetCheckDateArr')) { |
||
395 | /** |
||
396 | * @param $check_in_date |
||
397 | * @param $check_out_date |
||
398 | * @return array |
||
399 | */ |
||
400 | function GetCheckDateArr($check_in_date, $check_out_date) |
||
401 | { |
||
402 | $check_arr = array(); |
||
403 | $check_date_count = (int)(($check_out_date - $check_in_date) / (3600 * 24)); |
||
404 | if ($check_date_count > 0) { |
||
405 | $ini_y = date('Y', $check_in_date); |
||
406 | $ini_m = date('m', $check_in_date); |
||
407 | $ini_d = date('d', $check_in_date); |
||
408 | $last_d = MouthLastDay($ini_y); |
||
409 | for ($i = 0; $i < $check_date_count; $i++) { |
||
410 | $d = $ini_d + $i; |
||
411 | $m = $d > $last_d ? $ini_m + 1 : $ini_m; |
||
412 | $d = $d > $last_d ? $d - $last_d : $d; |
||
413 | $y = $m > 12 ? $ini_y + 1 : $ini_y; |
||
414 | $m = $m > 12 ? $m - 12 : $m; |
||
415 | $check_arr[] = strtotime($y . '-' . $m . '-' . $d); |
||
416 | } |
||
417 | } |
||
418 | |||
419 | return $check_arr; |
||
420 | } |
||
421 | } |
||
422 | |||
423 | ?> |
||
424 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.