gggeek /
phpxmlrpc
| 1 | <?php |
||
| 2 | /** |
||
| 3 | * @author Gaetano Giunta |
||
| 4 | * @copyright (C) 2005-2025 G. Giunta |
||
| 5 | * @license code licensed under the BSD License: see file license.txt |
||
| 6 | * |
||
| 7 | * @todo add links to documentation from every option caption |
||
| 8 | * @todo switch params for http compression from 0,1,2 to values to be used directly |
||
| 9 | * @todo add a little bit more CSS formatting: we broke IE box model getting a width > 100%... |
||
| 10 | * @todo add support for more options, such as ntlm auth to proxy, or request charset encoding |
||
| 11 | * @todo parse content of payload textarea to be fed to visual editor |
||
| 12 | * @todo add http no-cache headers |
||
| 13 | * @todo if jsonrpc php classes are not available, gray out or hide altogether the JSONRPC option & title |
||
| 14 | * @todo if js libs are not available, do not try to load them |
||
| 15 | **/ |
||
| 16 | |||
| 17 | // Make sure we set the correct charset type for output, so that we can display all characters |
||
| 18 | header('Content-Type: text/html; charset=utf-8'); |
||
| 19 | |||
| 20 | global $inputcharset, $debug, $protocol, $run, $hasjsonrpcclient, $hasjsonrpc2, $wstype, $id, $host, $port, $path, $action, |
||
| 21 | $method, $methodsig, $payload, $alt_payload, $username, $password, $authtype, $verifyhost, $verifypeer, $cainfo, $proxy, |
||
| 22 | $proxyuser, $proxypwd, $timeout, $requestcompression, $responsecompression, $clientcookies; |
||
| 23 | |||
| 24 | include __DIR__ . '/common.php'; |
||
| 25 | |||
| 26 | if ($action == '') { |
||
| 27 | $action = 'list'; |
||
| 28 | } |
||
| 29 | |||
| 30 | $haseditor = false; |
||
| 31 | $editorurlpath = null; |
||
| 32 | // @const JSXMLRPC_BASEURL Url to the visual xml-rpc editing dialog's containing folder. We allow to easily configure this |
||
| 33 | if (defined('JSXMLRPC_BASEURL')) { |
||
| 34 | $editorurlpath = JSXMLRPC_BASEURL; |
||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||
| 35 | $haseditor = true; |
||
| 36 | } else { |
||
| 37 | /// @deprecated |
||
| 38 | /// @const JSXMLRPC_PATH Path to the visual xml-rpc editing dialog's containing folder. Can be absolute, or |
||
| 39 | /// relative to this debugger's folder. |
||
| 40 | if (defined('JSXMLRPC_PATH')) { |
||
| 41 | $editorpaths = array(JSXMLRPC_PATH[0] === '/' ? JSXMLRPC_PATH : (__DIR__ . '/' . JSXMLRPC_PATH)); |
||
|
0 ignored issues
–
show
|
|||
| 42 | } else { |
||
| 43 | $editorpaths = array( |
||
| 44 | __DIR__ . '/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via taskfile |
||
| 45 | __DIR__ . '/vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via composer inside the debugger |
||
| 46 | __DIR__ . '/node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via npm inside the debugger |
||
| 47 | __DIR__ . '/../vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via composer |
||
| 48 | __DIR__ . '/../node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via npm |
||
| 49 | __DIR__ . '/../../jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc too |
||
| 50 | __DIR__ . '/../../../../debugger/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level via taskfile (ie. jsonrpc) |
||
| 51 | __DIR__ . '/../../../../debugger/vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level debugger via composer |
||
| 52 | __DIR__ . '/../../../../debugger/node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level debugger via npm |
||
| 53 | __DIR__ . '/../../../../node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed via npm in the top-level project |
||
| 54 | ); |
||
| 55 | } |
||
| 56 | foreach($editorpaths as $editorpath) { |
||
| 57 | if (is_file(realpath($editorpath . 'visualeditor.html'))) { |
||
| 58 | $haseditor = true; |
||
| 59 | break; |
||
| 60 | } |
||
| 61 | } |
||
| 62 | if ($haseditor) { |
||
| 63 | $controllerRootUrl = str_replace('/controller.php', '', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); |
||
| 64 | $editorurlpath = $controllerRootUrl . '/' . preg_replace('|^' . preg_quote(__DIR__, '|') .'|', '', $editorpath); |
||
| 65 | /// @todo for cases above 4 and up, look at $controllerRootUrl and check if the web root is not pointing directly |
||
| 66 | /// at this folder, as in that case the link to the visualeditor will not |
||
| 67 | /// work, as it will be in the form http(s)://domain/../../jsxmlrpc/debugger/visualeditor.html |
||
| 68 | } |
||
| 69 | } |
||
| 70 | ?><!DOCTYPE html> |
||
| 71 | <html lang="en"> |
||
| 72 | <head> |
||
| 73 | <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico"> |
||
| 74 | <title><?php if (defined('DEFAULT_WSTYPE') && (DEFAULT_WSTYPE == 1 || DEFAULT_WSTYPE == 2)) echo 'JSON-RPC'; else echo 'XML-RPC'; ?> Debugger</title> |
||
|
0 ignored issues
–
show
|
|||
| 75 | <meta name="robots" content="index,nofollow"/> |
||
| 76 | <script type="text/javascript" language="Javascript"> |
||
| 77 | if (window.name != 'frmcontroller') |
||
| 78 | top.location.replace('index.php?run=' + escape(self.location)); |
||
| 79 | </script> |
||
| 80 | <!-- xml-rpc/json-rpc base library --> |
||
| 81 | <script type="module"> |
||
| 82 | import {base64_decode} from 'https://cdn.jsdelivr.net/npm/@jsxmlrpc/[email protected]/lib/index.js'; |
||
| 83 | window.base64_decode = base64_decode; |
||
| 84 | </script> |
||
| 85 | <style> |
||
| 86 | <!-- |
||
| 87 | html { |
||
| 88 | overflow: -moz-scrollbars-vertical; |
||
| 89 | } |
||
| 90 | body { |
||
| 91 | padding: 0.5em; |
||
| 92 | background-color: #EEEEEE; |
||
| 93 | font-family: Verdana, Arial, Helvetica, sans-serif; |
||
| 94 | font-size: 8pt; |
||
| 95 | } |
||
| 96 | h1 { |
||
| 97 | font-size: 12pt; |
||
| 98 | margin: 0.5em; |
||
| 99 | display: inline-block; |
||
| 100 | } |
||
| 101 | h2 { |
||
| 102 | font-size: 10pt; |
||
| 103 | display: inline; |
||
| 104 | vertical-align: top; |
||
| 105 | } |
||
| 106 | h3 { |
||
| 107 | display: inline; |
||
| 108 | } |
||
| 109 | table { |
||
| 110 | border: 1px solid gray; |
||
| 111 | margin-bottom: 0.5em; |
||
| 112 | padding: 0.25em; |
||
| 113 | width: 100%; |
||
| 114 | } |
||
| 115 | #methodpayload { |
||
| 116 | display: inline; |
||
| 117 | } |
||
| 118 | #idcell { |
||
| 119 | visibility: hidden; |
||
| 120 | } |
||
| 121 | td { |
||
| 122 | vertical-align: top; |
||
| 123 | font-family: Verdana, Arial, Helvetica, sans-serif; |
||
| 124 | font-size: 8pt; |
||
| 125 | } |
||
| 126 | .labelcell { |
||
| 127 | text-align: right; |
||
| 128 | } |
||
| 129 | --> |
||
| 130 | </style> |
||
| 131 | <script type="text/javascript"> |
||
| 132 | function verifyserver() { |
||
| 133 | if (document.frmaction.host.value == '') { |
||
| 134 | alert('Please insert a server name or address'); |
||
| 135 | return false; |
||
| 136 | } |
||
| 137 | if (document.frmaction.path.value == '') |
||
| 138 | document.frmaction.path.value = '/'; |
||
| 139 | var action = ''; |
||
| 140 | for (counter = 0; counter < document.frmaction.action.length; counter++) |
||
| 141 | if (document.frmaction.action[counter].checked) { |
||
| 142 | action = document.frmaction.action[counter].value; |
||
| 143 | } |
||
| 144 | if (document.frmaction.method.value == '' && (action == 'execute' || action == 'wrap' || action == 'describe')) { |
||
| 145 | alert('Please insert a method name'); |
||
| 146 | return false; |
||
| 147 | } |
||
| 148 | if (document.frmaction.authtype.value != '1' && document.frmaction.username.value == '') { |
||
| 149 | alert('No username for authenticating to server: authentication disabled'); |
||
| 150 | } |
||
| 151 | |||
| 152 | return true; |
||
| 153 | } |
||
| 154 | |||
| 155 | function switchaction() { |
||
| 156 | // reset html layout depending on action to be taken |
||
| 157 | var action = ''; |
||
| 158 | for (counter = 0; counter < document.frmaction.action.length; counter++) |
||
| 159 | if (document.frmaction.action[counter].checked) { |
||
| 160 | action = document.frmaction.action[counter].value; |
||
| 161 | } |
||
| 162 | if (action == 'execute') { |
||
| 163 | document.frmaction.methodpayload.disabled = false; |
||
| 164 | displaydialogeditorbtn(true);//if (document.getElementById('methodpayloadbtn') != undefined) document.getElementById('methodpayloadbtn').disabled = false; |
||
| 165 | document.frmaction.method.disabled = false; |
||
| 166 | document.frmaction.methodpayload.rows = 10; |
||
| 167 | document.frmaction.id.disabled = false; |
||
| 168 | if (document.frmaction.id.value == '') { |
||
| 169 | document.frmaction.id.value = '1'; |
||
| 170 | } |
||
| 171 | } |
||
| 172 | else if (action == 'notification') { |
||
| 173 | document.frmaction.methodpayload.disabled = false; |
||
| 174 | displaydialogeditorbtn(true);//if (document.getElementById('methodpayloadbtn') != undefined) document.getElementById('methodpayloadbtn').disabled = false; |
||
| 175 | document.frmaction.method.disabled = false; |
||
| 176 | document.frmaction.methodpayload.rows = 10; |
||
| 177 | document.frmaction.id.disabled = true; |
||
| 178 | if (document.frmaction.id.value != '') { |
||
| 179 | document.frmaction.id.value = ''; |
||
| 180 | } |
||
| 181 | } |
||
| 182 | else { |
||
| 183 | document.frmaction.methodpayload.rows = 1; |
||
| 184 | if (action == 'describe' || action == 'wrap') { |
||
| 185 | document.frmaction.methodpayload.disabled = true; |
||
| 186 | displaydialogeditorbtn(false); //if (document.getElementById('methodpayloadbtn') != undefined) document.getElementById('methodpayloadbtn').disabled = true; |
||
| 187 | document.frmaction.method.disabled = false; |
||
| 188 | document.frmaction.id.disabled = false; |
||
| 189 | if (document.frmaction.id.value == '') { |
||
| 190 | document.frmaction.id.value = '1'; |
||
| 191 | } |
||
| 192 | } |
||
| 193 | else // list |
||
| 194 | { |
||
| 195 | document.frmaction.methodpayload.disabled = true; |
||
| 196 | displaydialogeditorbtn(false); //if (document.getElementById('methodpayloadbtn') != undefined) document.getElementById('methodpayloadbtn').disabled = false; |
||
| 197 | document.frmaction.method.disabled = true; |
||
| 198 | document.frmaction.id.disabled = false; |
||
| 199 | if (document.frmaction.id.value == '') { |
||
| 200 | document.frmaction.id.value = '1'; |
||
| 201 | } |
||
| 202 | } |
||
| 203 | } |
||
| 204 | } |
||
| 205 | |||
| 206 | function switchssl() { |
||
| 207 | if (document.frmaction.protocol.value != '2' && document.frmaction.protocol.value != '3') { |
||
| 208 | document.frmaction.verifypeer.disabled = true; |
||
| 209 | document.frmaction.verifyhost.disabled = true; |
||
| 210 | document.frmaction.cainfo.disabled = true; |
||
| 211 | } |
||
| 212 | else { |
||
| 213 | document.frmaction.verifypeer.disabled = false; |
||
| 214 | document.frmaction.verifyhost.disabled = false; |
||
| 215 | document.frmaction.cainfo.disabled = false; |
||
| 216 | } |
||
| 217 | } |
||
| 218 | |||
| 219 | function switchauth() { |
||
| 220 | if (document.frmaction.protocol.value != '0') { |
||
| 221 | document.frmaction.authtype.disabled = false; |
||
| 222 | } |
||
| 223 | else { |
||
| 224 | document.frmaction.authtype.disabled = true; |
||
| 225 | document.frmaction.authtype.value = 1; |
||
| 226 | } |
||
| 227 | } |
||
| 228 | |||
| 229 | function swicthcainfo() { |
||
| 230 | if (document.frmaction.verifypeer.checked == true) { |
||
| 231 | document.frmaction.cainfo.disabled = false; |
||
| 232 | } |
||
| 233 | else { |
||
| 234 | document.frmaction.cainfo.disabled = true; |
||
| 235 | } |
||
| 236 | } |
||
| 237 | |||
| 238 | function switchtransport(is_json) { |
||
| 239 | if (is_json == 2) { |
||
| 240 | document.getElementById("idcell").style.visibility = 'visible'; |
||
| 241 | document.getElementById("notificationcell").style.visibility = 'visible'; |
||
| 242 | document.frmjsonrpc2.yes.checked = true; |
||
| 243 | document.frmjsonrpc1.yes.checked = false; |
||
| 244 | document.frmxmlrpc.yes.checked = false; |
||
| 245 | document.frmaction.wstype.value = "2"; |
||
| 246 | } else if (is_json == 1) { |
||
| 247 | document.getElementById("idcell").style.visibility = 'visible'; |
||
| 248 | document.getElementById("notificationcell").style.visibility = 'visible'; |
||
| 249 | document.frmjsonrpc2.yes.checked = false; |
||
| 250 | document.frmjsonrpc1.yes.checked = true; |
||
| 251 | document.frmxmlrpc.yes.checked = false; |
||
| 252 | document.frmaction.wstype.value = "1"; |
||
| 253 | } |
||
| 254 | else { |
||
| 255 | document.getElementById("idcell").style.visibility = 'hidden'; |
||
| 256 | document.getElementById("notificationcell").style.visibility = 'hidden'; |
||
| 257 | if (document.getElementById("actionnotification").checked) { |
||
| 258 | document.getElementById("actionnotification").checked = false; |
||
| 259 | document.getElementById("actionexecute").checked = true; |
||
| 260 | } |
||
| 261 | document.frmjsonrpc2.yes.checked = false; |
||
| 262 | document.frmjsonrpc1.yes.checked = false; |
||
| 263 | document.frmxmlrpc.yes.checked = true; |
||
| 264 | document.frmaction.wstype.value = "0"; |
||
| 265 | } |
||
| 266 | } |
||
| 267 | |||
| 268 | function displaydialogeditorbtn(show) { |
||
| 269 | if (show && <?php echo $haseditor ? 'true' : 'false'; ?>) { |
||
| 270 | document.getElementById('methodpayloadbtn').innerHTML = '[<a href="#" onclick="activateeditor(); return false;">Edit</a>]'; |
||
| 271 | } |
||
| 272 | else { |
||
| 273 | document.getElementById('methodpayloadbtn').innerHTML = ''; |
||
| 274 | } |
||
| 275 | } |
||
| 276 | |||
| 277 | function activateeditor() { |
||
| 278 | var url = '<?php echo $editorurlpath; ?>visualeditor.html?params=<?php echo str_replace(array("\\", "'"), array( "\\\\", "\\'"), $alt_payload); ?>'; |
||
| 279 | if (document.frmaction.wstype.value == "1" || document.frmaction.wstype.value == "2") |
||
| 280 | url += '&type=jsonrpc'; |
||
| 281 | var wnd = window.open(url, '_blank', 'width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=1'); |
||
| 282 | } |
||
| 283 | |||
| 284 | // if javascript version of the lib is found, allow it to send us params |
||
| 285 | function buildparams(base64data) { |
||
| 286 | if (typeof base64_decode == 'function') { |
||
| 287 | if (base64data == '0') // workaround for bug in base64_encode... |
||
| 288 | document.getElementById('methodpayload').value = ''; |
||
| 289 | else |
||
| 290 | document.getElementById('methodpayload').value = base64_decode(base64data); |
||
| 291 | } |
||
| 292 | } |
||
| 293 | |||
| 294 | // use GET for ease of refresh, switch to POST when payload is too big to fit in url (in IE: 2048 bytes! see http://support.microsoft.com/kb/q208427/) |
||
| 295 | function switchFormMethod() { |
||
| 296 | /// @todo use a more precise calculation, adding the rest of the fields to the actual generated url length - |
||
| 297 | /// retrieve first max url length for current browsers and webservers |
||
| 298 | if (document.frmaction.methodpayload.value.length > 1536) { |
||
| 299 | document.frmaction.action = 'action.php?usepost=true'; |
||
| 300 | document.frmaction.method = 'post'; |
||
| 301 | } |
||
| 302 | /*let form = document.forms[0]; |
||
| 303 | let formData = new FormData(form); |
||
| 304 | let search = new URLSearchParams(formData); |
||
| 305 | let queryString = search.toString(); |
||
| 306 | alert(queryString);alert(queryString.length);*/ |
||
| 307 | } |
||
| 308 | </script> |
||
| 309 | </head> |
||
| 310 | <body |
||
| 311 | onload="<?php if ($hasjsonrpcclient) echo "switchtransport($wstype); " ?>switchaction(); switchssl(); switchauth(); swicthcainfo();<?php if ($run) { |
||
| 312 | echo ' document.frmaction.submit();'; |
||
| 313 | } ?>"> |
||
| 314 | <h1>XML-RPC |
||
| 315 | <?php if ($hasjsonrpcclient) { |
||
| 316 | echo '<form name="frmxmlrpc" style="display: inline;" action="."><input name="yes" type="radio" onclick="switchtransport(0);"' . |
||
| 317 | // q: does this check make sense at all? |
||
| 318 | (!class_exists('\PhpXmlRpc\Client') ? ' disabled="disabled"' : '') . ' /></form>'; |
||
| 319 | if ($hasjsonrpc2) { |
||
| 320 | echo ' / <form name="frmjsonrpc2" style="display: inline;" action="."><input name="yes" type="radio" onclick="switchtransport(2);"/></form>JSON-RPC 2.0 '; |
||
| 321 | } |
||
| 322 | echo ' / <form name="frmjsonrpc1" style="display: inline;" action="."><input name="yes" type="radio" onclick="switchtransport(1);"/></form>JSON-RPC 1.0 '; |
||
| 323 | } ?> |
||
| 324 | Debugger</h1><h3>(based on <a href="https://gggeek.github.io/phpxmlrpc/">PHPXMLRPC</a>, ver. <?php echo htmlspecialchars(\PhpXmlRpc\PhpXmlRpc::$xmlrpcVersion)?> |
||
| 325 | <?php if (class_exists('\PhpXmlRpc\JsonRpc\PhpJsonRpc')) echo ' and <a href="https://gggeek.github.io/phpxmlrpc-jsonrpc/">PHPJOSNRPC</a>, ver. ' . htmlspecialchars(\PhpXmlRpc\JsonRpc\PhpJsonRpc::$jsonrpcVersion); ?>)</h3> |
||
|
0 ignored issues
–
show
The type
PhpXmlRpc\JsonRpc\PhpJsonRpc was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths Loading history...
|
|||
| 326 | <form name="frmaction" method="get" action="action.php" target="frmaction" onSubmit="switchFormMethod();"> |
||
| 327 | |||
| 328 | <table id="serverblock"> |
||
| 329 | <tr> |
||
| 330 | <td><h2>Target server</h2></td> |
||
| 331 | <td class="labelcell">Protocol:</td> |
||
| 332 | <td><select name="protocol" onchange="switchssl(); switchauth(); swicthcainfo();"> |
||
| 333 | <option value="0"<?php if ($protocol == 0) { echo ' selected="selected"'; } ?>>HTTP 1.0</option> |
||
| 334 | <option value="1"<?php if ($protocol == 1) { echo ' selected="selected"'; } ?>>HTTP 1.1</option> |
||
| 335 | <option value="2"<?php if ($protocol == 2) { echo ' selected="selected"'; } ?>>HTTPS</option> |
||
| 336 | <option value="3"<?php if ($protocol == 3) { echo ' selected="selected"'; } ?>>HTTP2</option> |
||
| 337 | <option value="4"<?php if ($protocol == 3) { echo ' selected="selected"'; } ?>>HTTP2 no TLS</option> |
||
| 338 | </select></td> |
||
| 339 | <td class="labelcell">Address:</td> |
||
| 340 | <td><input type="text" name="host" value="<?php echo htmlspecialchars($host, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 341 | <td class="labelcell">Port:</td> |
||
| 342 | <td><input type="text" name="port" value="<?php echo htmlspecialchars($port, ENT_COMPAT, $inputcharset); ?>" size="5" maxlength="5"/> |
||
| 343 | </td> |
||
| 344 | <td class="labelcell">Path:</td> |
||
| 345 | <td><input type="text" name="path" value="<?php echo htmlspecialchars($path, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 346 | </tr> |
||
| 347 | </table> |
||
| 348 | |||
| 349 | <table id="actionblock"> |
||
| 350 | <tr> |
||
| 351 | <td><h2>Action</h2></td> |
||
| 352 | <td>List available methods<input type="radio" name="action" value="list"<?php if ($action == 'list') { echo ' checked="checked"'; } ?> onclick="switchaction();"/></td> |
||
| 353 | <td>Describe method<input type="radio" name="action" value="describe"<?php if ($action == 'describe') { echo ' checked="checked"'; } ?> onclick="switchaction();"/></td> |
||
| 354 | <td>Execute method<input type="radio" name="action" id="actionexecute" value="execute"<?php if ($action == 'execute') { echo ' checked="checked"'; } ?> onclick="switchaction();"/></td> |
||
| 355 | <?php if ($hasjsonrpcclient) { ?><td id="notificationcell">Send notification <input type="radio" name="action" id="actionnotification" value="notification"<?php if ($action == 'notification') { echo ' checked="checked"'; } ?> onclick="switchaction();"/></td><?php } ?> |
||
| 356 | <td>Generate stub for method call<input type="radio" name="action" value="wrap"<?php if ($action == 'wrap') { echo ' checked="checked"'; } ?> onclick="switchaction();"/></td> |
||
| 357 | </tr> |
||
| 358 | </table> |
||
| 359 | <input type="hidden" name="methodsig" value="<?php echo htmlspecialchars($methodsig, ENT_COMPAT, $inputcharset); ?>"/> |
||
| 360 | |||
| 361 | <table id="methodblock"> |
||
| 362 | <tr> |
||
| 363 | <td><h2>Method</h2></td> |
||
| 364 | <td class="labelcell">Name:</td> |
||
| 365 | <td><input type="text" name="method" value="<?php echo htmlspecialchars($method, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 366 | <td class="labelcell">Payload:<br/> |
||
| 367 | <div id="methodpayloadbtn"></div> |
||
| 368 | </td> |
||
| 369 | <td><textarea id="methodpayload" name="methodpayload" rows="1" cols="40"><?php echo htmlspecialchars($payload, ENT_COMPAT, $inputcharset); ?></textarea></td> |
||
| 370 | <td class="labelcell" id="idcell">Req id: <input type="text" name="id" size="3" value="<?php echo htmlspecialchars($id, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 371 | <td><input type="hidden" name="wstype" value="<?php echo $wstype; ?>"/> |
||
| 372 | <input type="submit" value="Execute" onclick="return verifyserver();"/></td> |
||
| 373 | </tr> |
||
| 374 | </table> |
||
| 375 | |||
| 376 | <table id="optionsblock"> |
||
| 377 | <tr> |
||
| 378 | <td><h2>Client options</h2></td> |
||
| 379 | <td class="labelcell">Show debug info:</td> |
||
| 380 | <td><select name="debug"> |
||
| 381 | <option value="0"<?php if ($debug == 0) { echo ' selected="selected"'; } ?>>No</option> |
||
| 382 | <option value="1"<?php if ($debug == 1) { echo ' selected="selected"'; } ?>>Yes</option> |
||
| 383 | <option value="2"<?php if ($debug == 2) { echo ' selected="selected"'; } ?>>More</option> |
||
| 384 | </select> |
||
| 385 | </td> |
||
| 386 | <td class="labelcell">Timeout:</td> |
||
| 387 | <td><input type="text" name="timeout" size="3" value="<?php if ($timeout > 0) { echo $timeout; } ?>"/></td> |
||
| 388 | <td></td> |
||
| 389 | <td></td> |
||
| 390 | </tr> |
||
| 391 | <tr> |
||
| 392 | <td class="labelcell">AUTH:</td> |
||
| 393 | <td class="labelcell">Username:</td> |
||
| 394 | <td><input type="text" name="username" value="<?php echo htmlspecialchars($username, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 395 | <td class="labelcell">Pwd:</td> |
||
| 396 | <td><input type="password" name="password" value="<?php echo htmlspecialchars($password, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 397 | <td class="labelcell">Type</td> |
||
| 398 | <td><select name="authtype"> |
||
| 399 | <option value="1"<?php if ($authtype == 1) { echo ' selected="selected"'; } ?>>Basic</option> |
||
| 400 | <option value="2"<?php if ($authtype == 2) { echo ' selected="selected"'; } ?>>Digest</option> |
||
| 401 | <option value="8"<?php if ($authtype == 8) { echo ' selected="selected"'; } ?>>NTLM</option> |
||
| 402 | </select></td> |
||
| 403 | <td></td> |
||
| 404 | </tr> |
||
| 405 | <tr> |
||
| 406 | <td class="labelcell">SSL:</td> |
||
| 407 | <td class="labelcell">Verify Host's CN:</td> |
||
| 408 | <td><select name="verifyhost"> |
||
| 409 | <option value="0"<?php if ($verifyhost == 0) { echo ' selected="selected"'; } ?>>No</option> |
||
| 410 | <option value="1"<?php if ($verifyhost == 1) { echo ' selected="selected"'; } ?>>Check CN existence</option> |
||
| 411 | <option value="2"<?php if ($verifyhost == 2) { echo ' selected="selected"'; } ?>>Check CN match</option> |
||
| 412 | </select></td> |
||
| 413 | <td class="labelcell">Verify Cert:</td> |
||
| 414 | <td><input type="checkbox" value="1" name="verifypeer" onclick="swicthcainfo();"<?php if ($verifypeer) { echo ' checked="checked"'; } ?> /></td> |
||
| 415 | <td class="labelcell">CA Cert file:</td> |
||
| 416 | <td><input type="text" name="cainfo" value="<?php echo htmlspecialchars($cainfo, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 417 | </tr> |
||
| 418 | <tr> |
||
| 419 | <td class="labelcell">PROXY:</td> |
||
| 420 | <td class="labelcell">Server:</td> |
||
| 421 | <td><input type="text" name="proxy" value="<?php echo htmlspecialchars($proxy, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 422 | <td class="labelcell">Proxy user:</td> |
||
| 423 | <td><input type="text" name="proxyuser" value="<?php echo htmlspecialchars($proxyuser, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 424 | <td class="labelcell">Proxy pwd:</td> |
||
| 425 | <td><input type="password" name="proxypwd" value="<?php echo htmlspecialchars($proxypwd, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 426 | </tr> |
||
| 427 | <tr> |
||
| 428 | <td class="labelcell">COMPRESSION:</td> |
||
| 429 | <td class="labelcell">Request:</td> |
||
| 430 | <td><select name="requestcompression"> |
||
| 431 | <option value="0"<?php if ($requestcompression == 0) { echo ' selected="selected"'; } ?>>None </option> |
||
| 432 | <option value="1"<?php if ($requestcompression == 1) { echo ' selected="selected"'; } ?>>Gzip</option> |
||
| 433 | <option value="2"<?php if ($requestcompression == 2) { echo ' selected="selected"'; } ?>>Deflate</option> |
||
| 434 | </select></td> |
||
| 435 | <td class="labelcell">Response:</td> |
||
| 436 | <td><select name="responsecompression"> |
||
| 437 | <option value="0"<?php if ($responsecompression == 0) { echo ' selected="selected"'; } ?>>None</option> |
||
| 438 | <option value="1"<?php if ($responsecompression == 1) { echo ' selected="selected"'; } ?>>Gzip</option> |
||
| 439 | <option value="2"<?php if ($responsecompression == 2) { echo ' selected="selected"'; } ?>>Deflate</option> |
||
| 440 | <option value="3"<?php if ($responsecompression == 3) { echo ' selected="selected"'; } ?>>Any</option> |
||
| 441 | </select></td> |
||
| 442 | <td></td> |
||
| 443 | </tr> |
||
| 444 | <tr> |
||
| 445 | <td class="labelcell">COOKIES:</td> |
||
| 446 | <td colspan="4" class="labelcell"><input type="text" name="clientcookies" size="80" value="<?php echo htmlspecialchars($clientcookies, ENT_COMPAT, $inputcharset); ?>"/></td> |
||
| 447 | <td colspan="2">Format: 'cookie1=value1, cookie2=value2'</td> |
||
| 448 | </tr> |
||
| 449 | </table> |
||
| 450 | |||
| 451 | </form> |
||
| 452 | </body> |
||
| 453 | </html> |
||
| 454 |