<?php
/**
* @author Gaetano Giunta
- * @copyright (C) 2005-2015 G. Giunta
+ * @copyright (C) 2005-2021 G. Giunta
* @license code licensed under the BSD License: see file license.txt
*
* @todo switch params for http compression from 0,1,2 to values to be used directly
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>XMLRPC Debugger</title>
<meta name="robots" content="index,nofollow"/>
<?php
include __DIR__ . '/common.php';
-if ($action) {
- include_once __DIR__ . "/../src/Autoloader.php";
- PhpXmlRpc\Autoloader::register();
+if ($action) {
// make sure the script waits long enough for the call to complete...
if ($timeout) {
}
if ($wstype == 1) {
- @include 'jsonrpc.inc';
- if (!class_exists('jsonrpc_client')) {
- die('Error: to debug the jsonrpc protocol the jsonrpc.inc file is needed');
+ //@include 'jsonrpc.inc';
+ if (!class_exists('\PhpXmlRpc\JsonRpc\Client')) {
+ die('Error: to debug the jsonrpc protocol the phpxmlrpc/jsonrpc package is needed');
}
- $clientClass = 'PhpJsRpc\Client';
- $requestClass = 'PhpJsRpc\Request';
+ $clientClass = '\PhpXmlRpc\JsonRpc\Client';
+ $requestClass = '\PhpXmlRpc\JsonRpc\Request';
$protoName = 'JSONRPC';
} else {
- $clientClass = 'PhpXmlRpc\Client';
- $requestClass = 'PhpXmlRpc\Request';
+ $clientClass = '\PhpXmlRpc\Client';
+ $requestClass = '\PhpXmlRpc\Request';
$protoName = 'XMLRPC';
}
case 'wrap':
$msg[0] = new $requestClass('system.methodHelp', array(), $id);
$msg[0]->addparam(new PhpXmlRpc\Value($method));
- $msg[1] = new $requestClass('system.methodSignature', array(), $id + 1);
+ $msg[1] = new $requestClass('system.methodSignature', array(), (int)$id + 1);
$msg[1]->addparam(new PhpXmlRpc\Value($method));
$actionname = 'Description of method "' . $method . '"';
break;
$max = $v->count();
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
echo "<thead>\n<tr><th>Method ($max)</th><th>Description</th></tr>\n</thead>\n<tbody>\n";
- //for ($i = 0; $i < $max; $i++) {
foreach($v as $i => $rec) {
- //$rec = $v->arraymem($i);
if ($i % 2) {
$class = ' class="oddrow"';
} else {
if ($r2->kindOf() != "array") {
echo "<tr><td class=\"oddrow\">Signature</td><td class=\"oddrow\">Unknown</td><td class=\"oddrow\"> </td></tr>\n";
} else {
- //for ($i = 0; $i < $r2->arraysize(); $i++) {
foreach($r2 as $i => $x) {
$payload = "";
$alt_payload = "";
$class = ' class="evenrow"';
}
echo "<tr><td$class>Signature " . ($i + 1) . "</td><td$class>";
- //$x = $r2->arraymem($i);
if ($x->kindOf() == "array") {
- //$ret = $x->arraymem(0);
$ret = $x[0];
echo "<code>OUT: " . htmlspecialchars($ret->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . "<br />IN: (";
if ($x->count() > 1) {
foreach($x as $k => $y) {
if ($k == 0) continue;
- //for ($k = 1; $k < $x->arraysize(); $k++) {
- //$y = $x->arraymem($k);
echo htmlspecialchars($y->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding);
if ($wstype != 1) {
$type = $y->scalarval();
$encoder = new PhpXmlRpc\Encoder();
$msig = $encoder->decode($r2);
$msig = $msig[$methodsig];
- $proto = $protocol == 2 ? 'https' : $protocol == 1 ? 'http11' : '';
+ $proto = $protocol == 2 ? 'https' : ( $protocol == 1 ? 'http11' : '' );
if ($proxy == '' && $username == '' && !$requestcompression && !$responsecompression &&
$clientcookies == ''
) {
<h3>Changelog</h3>
<ul>
+ <li>2020-12-11: fix problems with running the debugger on php 8</li>
<li>2015-05-30: fix problems with generating method payloads for NIL and Undefined parameters</li>
<li>2015-04-19: fix problems with LATIN-1 characters in payload</li>
<li>2007-02-20: add visual editor for method payload; allow strings, bools as jsonrpc msg id</li>