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.
1 | <?php declare(strict_types=1); |
||||
2 | |||||
3 | use Xmf\Module\Admin; |
||||
4 | use Xmf\Request; |
||||
5 | use XoopsModules\Songlist\Helper; |
||||
6 | use XoopsModules\Songlist\ArtistsHandler; |
||||
7 | use XoopsModules\Songlist\Form\FormController; |
||||
8 | |||||
9 | require __DIR__ . '/header.php'; |
||||
10 | |||||
11 | xoops_loadLanguage('admin', 'songlist'); |
||||
12 | |||||
13 | xoops_cp_header(); |
||||
14 | |||||
15 | $op = $_REQUEST['op'] ?? 'artists'; |
||||
16 | $fct = $_REQUEST['fct'] ?? 'list'; |
||||
17 | $limit = Request::getInt('limit', 30, 'REQUEST'); |
||||
18 | $start = Request::getInt('start', 0, 'REQUEST'); |
||||
19 | $order = !empty($_REQUEST['order']) ? $_REQUEST['order'] : 'DESC'; |
||||
20 | $sort = !empty($_REQUEST['sort']) ? '' . $_REQUEST['sort'] . '' : 'created'; |
||||
21 | $filter = !empty($_REQUEST['filter']) ? '' . $_REQUEST['filter'] . '' : '1,1'; |
||||
22 | |||||
23 | switch ($op) { |
||||
24 | default: |
||||
25 | case 'artists': |
||||
26 | switch ($fct) { |
||||
27 | default: |
||||
28 | case 'list': |
||||
29 | $adminObject = Admin::getInstance(); |
||||
30 | $adminObject->displayNavigation(basename(__FILE__)); |
||||
31 | |||||
32 | /** @var ArtistsHandler $artistsHandler */ |
||||
33 | $artistsHandler = Helper::getInstance()->getHandler('Artists'); |
||||
34 | |||||
35 | $criteria = $artistsHandler->getFilterCriteria($GLOBALS['filter']); |
||||
36 | $ttl = $artistsHandler->getCount($criteria); |
||||
37 | $GLOBALS['sort'] = !empty($_REQUEST['sort']) ? '' . $_REQUEST['sort'] . '' : 'created'; |
||||
38 | |||||
39 | $pagenav = new \XoopsPageNav($ttl, $GLOBALS['limit'], $GLOBALS['start'], 'start', 'limit=' . $GLOBALS['limit'] . '&sort=' . $GLOBALS['sort'] . '&order=' . $GLOBALS['order'] . '&op=' . $GLOBALS['op'] . '&fct=' . $GLOBALS['fct'] . '&filter=' . $GLOBALS['filter']); |
||||
40 | $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav()); |
||||
41 | |||||
42 | foreach ($artistsHandler->filterFields() as $id => $key) { |
||||
43 | $GLOBALS['xoopsTpl']->assign( |
||||
44 | \mb_strtolower(str_replace('-', '_', $key) . '_th'), |
||||
45 | '<a href="' |
||||
46 | . $_SERVER['SCRIPT_NAME'] |
||||
47 | . '?start=' |
||||
48 | . $GLOBALS['start'] |
||||
49 | . '&limit=' |
||||
50 | . $GLOBALS['limit'] |
||||
51 | . '&sort=' |
||||
52 | . $key |
||||
53 | . '&order=' |
||||
54 | . (($key == $GLOBALS['sort']) ? ('DESC' === $GLOBALS['order'] ? 'ASC' : 'DESC') : $GLOBALS['order']) |
||||
55 | . '&op=' |
||||
56 | . $GLOBALS['op'] |
||||
57 | . '&filter=' |
||||
58 | . $GLOBALS['filter'] |
||||
59 | . '">' |
||||
60 | . (defined('_AM_SONGLIST_TH_' . \mb_strtoupper(str_replace('-', '_', $key))) ? constant('_AM_SONGLIST_TH_' . \mb_strtoupper(str_replace('-', '_', $key))) : '_AM_SONGLIST_TH_' . \mb_strtoupper(str_replace('-', '_', $key))) |
||||
61 | . '</a>' |
||||
62 | ); |
||||
63 | $GLOBALS['xoopsTpl']->assign('filter_' . \mb_strtolower(str_replace('-', '_', $key)) . '_th', $artistsHandler->getFilterForm($GLOBALS['filter'], $key, $GLOBALS['sort'], $GLOBALS['op'], $GLOBALS['fct'])); |
||||
64 | } |
||||
65 | |||||
66 | $GLOBALS['xoopsTpl']->assign('limit', $GLOBALS['limit']); |
||||
67 | $GLOBALS['xoopsTpl']->assign('start', $GLOBALS['start']); |
||||
68 | $GLOBALS['xoopsTpl']->assign('order', $GLOBALS['order']); |
||||
69 | $GLOBALS['xoopsTpl']->assign('sort', $GLOBALS['sort']); |
||||
70 | $GLOBALS['xoopsTpl']->assign('filter', $GLOBALS['filter']); |
||||
71 | $GLOBALS['xoopsTpl']->assign('xoConfig', $GLOBALS['songlistModuleConfig']); |
||||
72 | |||||
73 | $criteria->setStart($GLOBALS['start']); |
||||
74 | $criteria->setLimit($GLOBALS['limit']); |
||||
75 | $criteria->setSort('`' . $GLOBALS['sort'] . '`'); |
||||
76 | $criteria->setOrder($GLOBALS['order']); |
||||
77 | |||||
78 | $artistsArray = $artistsHandler->getObjects($criteria, true); |
||||
79 | foreach ($artistsArray as $cid => $artist) { |
||||
80 | if (is_object($artist)) { |
||||
81 | $GLOBALS['xoopsTpl']->append('artists', $artist->toArray()); |
||||
82 | } |
||||
83 | } |
||||
84 | $GLOBALS['xoopsTpl']->assign('form', FormController::getFormArtists(false)); |
||||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||
85 | $GLOBALS['xoopsTpl']->assign('php_self', $_SERVER['SCRIPT_NAME']); |
||||
86 | $GLOBALS['xoopsTpl']->display('db:songlist_cpanel_artists_list.tpl'); |
||||
87 | break; |
||||
88 | case 'new': |
||||
89 | case 'edit': |
||||
90 | $adminObject = Admin::getInstance(); |
||||
91 | $adminObject->displayNavigation(basename(__FILE__)); |
||||
92 | |||||
93 | $artistsHandler = Helper::getInstance()->getHandler('Artists'); |
||||
94 | if (Request::hasVar('id', 'REQUEST')) { |
||||
95 | $artist = $artistsHandler->get(Request::getInt('id', 0, 'REQUEST')); |
||||
96 | } else { |
||||
97 | $artist = $artistsHandler->create(); |
||||
98 | } |
||||
99 | |||||
100 | $GLOBALS['xoopsTpl']->assign('form', $artist->getForm()); |
||||
0 ignored issues
–
show
The method
getForm() does not exist on XoopsObject . It seems like you code against a sub-type of XoopsObject such as XoopsModules\Songlist\Votes or XoopsModules\Songlist\Genre or XoopsModules\Songlist\Voice or SystemSmilies or SystemBanner or XoopsModules\Songlist\Requests or SystemBannerclient or XoopsModules\Songlist\Category or XoopsModules\Songlist\Utf8map or XoopsModules\Songlist\Songs or ProfileCategory or SystemUserrank or XoopsModules\Songlist\Albums or Utf8map or XoopsModules\Songlist\Artists or SystemGroup or SystemBlock or SystemAvatar or SystemUsers .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
101 | $GLOBALS['xoopsTpl']->assign('php_self', $_SERVER['SCRIPT_NAME']); |
||||
102 | $GLOBALS['xoopsTpl']->display('db:songlist_cpanel_artists_edit.tpl'); |
||||
103 | break; |
||||
104 | case 'save': |
||||
105 | $artistsHandler = Helper::getInstance()->getHandler('Artists'); |
||||
106 | $id = 0; |
||||
107 | $id = Request::getInt('id', 0, 'REQUEST'); |
||||
108 | if ($id) { |
||||
109 | $artist = $artistsHandler->get($id); |
||||
110 | } else { |
||||
111 | $artist = $artistsHandler->create(); |
||||
112 | } |
||||
113 | $artist->setVars($_POST[$id]); |
||||
114 | |||||
115 | if (!$id = $artistsHandler->insert($artist)) { |
||||
116 | redirect_header($_SERVER['SCRIPT_NAME'] . '?op=' . $GLOBALS['op'] . '&fct=list&limit=' . $GLOBALS['limit'] . '&start=' . $GLOBALS['start'] . '&order=' . $GLOBALS['order'] . '&sort=' . $GLOBALS['sort'] . '&filter=' . $GLOBALS['filter'], 10, _AM_SONGLIST_MSG_ARTISTS_FAILEDTOSAVE); |
||||
117 | exit(0); |
||||
118 | } |
||||
119 | if ('new' === isset($_REQUEST['state']) ? $_REQUEST['state'][$_REQUEST['id']]:'') { |
||||
0 ignored issues
–
show
|
|||||
120 | redirect_header( |
||||
121 | $_SERVER['SCRIPT_NAME'] . '?op=' . $GLOBALS['op'] . '&fct=edit&id=' . $_REQUEST['id'] . '&limit=' . $GLOBALS['limit'] . '&start=' . $GLOBALS['start'] . '&order=' . $GLOBALS['order'] . '&sort=' . $GLOBALS['sort'] . '&filter=' . $GLOBALS['filter'], |
||||
122 | 10, |
||||
123 | _AM_SONGLIST_MSG_ARTISTS_SAVEDOKEY |
||||
124 | ); |
||||
125 | } else { |
||||
126 | redirect_header($_SERVER['SCRIPT_NAME'] . '?op=' . $GLOBALS['op'] . '&fct=list&limit=' . $GLOBALS['limit'] . '&start=' . $GLOBALS['start'] . '&order=' . $GLOBALS['order'] . '&sort=' . $GLOBALS['sort'] . '&filter=' . $GLOBALS['filter'], 10, _AM_SONGLIST_MSG_ARTISTS_SAVEDOKEY); |
||||
127 | } |
||||
128 | exit(0); |
||||
129 | |||||
130 | break; |
||||
131 | case 'savelist': |
||||
132 | $artistsHandler = Helper::getInstance()->getHandler('Artists'); |
||||
133 | foreach ($_REQUEST['id'] as $id) { |
||||
134 | $artist = $artistsHandler->get($id); |
||||
135 | $artist->setVars($_POST[$id]); |
||||
136 | if (!$artistsHandler->insert($artist)) { |
||||
137 | redirect_header( |
||||
138 | $_SERVER['SCRIPT_NAME'] . '?op=' . $GLOBALS['op'] . '&fct=list&limit=' . $GLOBALS['limit'] . '&start=' . $GLOBALS['start'] . '&order=' . $GLOBALS['order'] . '&sort=' . $GLOBALS['sort'] . '&filter=' . $GLOBALS['filter'], |
||||
139 | 10, |
||||
140 | _AM_SONGLIST_MSG_ARTISTS_FAILEDTOSAVE |
||||
141 | ); |
||||
142 | exit(0); |
||||
143 | } |
||||
144 | } |
||||
145 | redirect_header($_SERVER['SCRIPT_NAME'] . '?op=' . $GLOBALS['op'] . '&fct=list&limit=' . $GLOBALS['limit'] . '&start=' . $GLOBALS['start'] . '&order=' . $GLOBALS['order'] . '&sort=' . $GLOBALS['sort'] . '&filter=' . $GLOBALS['filter'], 10, _AM_SONGLIST_MSG_ARTISTS_SAVEDOKEY); |
||||
146 | exit(0); |
||||
147 | break; |
||||
148 | case 'delete': |
||||
149 | $artistsHandler = Helper::getInstance()->getHandler('Artists'); |
||||
150 | $id = 0; |
||||
151 | if (Request::hasVar('id', 'POST') && $id = Request::getInt('id', 0, 'POST')) { |
||||
152 | $artist = $artistsHandler->get($id); |
||||
153 | if (!$artistsHandler->delete($artist)) { |
||||
154 | redirect_header( |
||||
155 | $_SERVER['SCRIPT_NAME'] . '?op=' . $GLOBALS['op'] . '&fct=list&limit=' . $GLOBALS['limit'] . '&start=' . $GLOBALS['start'] . '&order=' . $GLOBALS['order'] . '&sort=' . $GLOBALS['sort'] . '&filter=' . $GLOBALS['filter'], |
||||
156 | 10, |
||||
157 | _AM_SONGLIST_MSG_ARTISTS_FAILEDTODELETE |
||||
158 | ); |
||||
159 | exit(0); |
||||
160 | } |
||||
161 | redirect_header($_SERVER['SCRIPT_NAME'] . '?op=' . $GLOBALS['op'] . '&fct=list&limit=' . $GLOBALS['limit'] . '&start=' . $GLOBALS['start'] . '&order=' . $GLOBALS['order'] . '&sort=' . $GLOBALS['sort'] . '&filter=' . $GLOBALS['filter'], 10, _AM_SONGLIST_MSG_ARTISTS_DELETED); |
||||
162 | exit(0); |
||||
163 | } |
||||
164 | $artist = $artistsHandler->get(Request::getInt('id', 0, 'REQUEST')); |
||||
165 | xoops_confirm( |
||||
166 | ['id' => $_REQUEST['id'], 'op' => $_REQUEST['op'], 'fct' => $_REQUEST['fct'], 'limit' => $_REQUEST['limit'], 'start' => $_REQUEST['start'], 'order' => $_REQUEST['order'], 'sort' => $_REQUEST['sort'], 'filter' => $_REQUEST['filter']], |
||||
167 | $_SERVER['SCRIPT_NAME'], |
||||
168 | sprintf(_AM_SONGLIST_MSG_ARTISTS_DELETE, $artist->getVar('name')) |
||||
0 ignored issues
–
show
It seems like
$artist->getVar('name') can also be of type array and array ; however, parameter $values of sprintf() does only seem to accept double|integer|string , maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
169 | ); |
||||
170 | |||||
171 | break; |
||||
172 | } |
||||
173 | break; |
||||
174 | } |
||||
175 | |||||
176 | xoops_cp_footer(); |
||||
177 |