From b19b4df8cca4856106ed6d19c9fec5d3e2fdcab3 Mon Sep 17 00:00:00 2001 From: gggeek Date: Sat, 18 Apr 2015 01:40:26 +0100 Subject: [PATCH] Make the debugger tolerate latin-1 characters in all fields, not just method payload --- debugger/action.php | 111 +++++++++++++++++++++------------------- debugger/controller.php | 31 ++++++----- 2 files changed, 74 insertions(+), 68 deletions(-) diff --git a/debugger/action.php b/debugger/action.php index 7bb07f5..c818429 100644 --- a/debugger/action.php +++ b/debugger/action.php @@ -239,7 +239,7 @@ if ($action) { // Before calling execute, echo out brief description of action taken + date and time ??? // this gives good user feedback for long-running methods... - echo '

' . htmlspecialchars($actionname) . ' on server ' . htmlspecialchars($server) . " ...

\n"; + echo '

' . htmlspecialchars($actionname, ENT_COMPAT, $inputcharset) . ' on server ' . htmlspecialchars($server, ENT_COMPAT, $inputcharset) . " ...

\n"; flush(); $response = null; @@ -265,14 +265,14 @@ if ($action) { if ($response) { if ($response->faultCode()) { // call failed! echo out error msg! - //echo '

'.htmlspecialchars($actionname).' on server '.htmlspecialchars($server).'

'; + //echo '

'.htmlspecialchars($actionname, ENT_COMPAT, $inputcharset).' on server '.htmlspecialchars($server, ENT_COMPAT, $inputcharset).'

'; echo "

$protoName call FAILED!

\n"; - echo "

Fault code: [" . htmlspecialchars($response->faultCode()) . - "] Reason: '" . htmlspecialchars($response->faultString()) . "'

\n"; + echo "

Fault code: [" . htmlspecialchars($response->faultCode(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . + "] Reason: '" . htmlspecialchars($response->faultString(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . "'

\n"; echo(strftime("%d/%b/%Y:%H:%M:%S\n")); } else { // call succeeded: parse results - //echo '

'.htmlspecialchars($actionname).' on server '.htmlspecialchars($server).'

'; + //echo '

'.htmlspecialchars($actionname, ENT_COMPAT, $inputcharset).' on server '.htmlspecialchars($server, ENT_COMPAT, $inputcharset).'

'; printf("

%s call(s) OK (%.2f secs.)

\n", $protoName, $time); echo(strftime("%d/%b/%Y:%H:%M:%S\n")); @@ -291,27 +291,27 @@ if ($action) { } else { $class = ' class="evenrow"'; } - echo("" . htmlspecialchars($rec->scalarval()) . "
" . - "" . - "" . - "" . - "" . + echo("" . htmlspecialchars($rec->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . "" . + "" . + "" . + "" . + "" . "" . - "" . - "" . + "" . + "" . "" . "" . "" . - "" . - "" . - "" . - "" . + "" . + "" . + "" . + "" . "" . "" . - "" . + "" . "" . - "" . - "scalarval() . "\" />" . + "" . + "scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . "\" />" . "" . "" . "" . @@ -341,8 +341,8 @@ if ($action) { $r2 = $resp[1]->value(); echo "\n"; - echo "\n\n\n\n"; - $desc = htmlspecialchars($r1->scalarval()); + echo "\n\n\n\n"; + $desc = htmlspecialchars($r1->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding); if ($desc == "") { $desc = "-"; } @@ -362,13 +362,16 @@ if ($action) { $x = $r2->arraymem($i); if ($x->kindOf() == "array") { $ret = $x->arraymem(0); - echo "OUT: " . htmlspecialchars($ret->scalarval()) . "
IN: ("; + echo "OUT: " . htmlspecialchars($ret->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . "
IN: ("; if ($x->arraysize() > 1) { for ($k = 1; $k < $x->arraysize(); $k++) { $y = $x->arraymem($k); - echo $y->scalarval(); + echo htmlspecialchars($y->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding); if ($wstype != 1) { - $payload = $payload . '<' . htmlspecialchars($y->scalarval()) . '>scalarval()) . ">\n"; + $payload = $payload . '<' . + htmlspecialchars($y->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . + '>scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . + ">\n"; } $alt_payload .= $y->scalarval(); if ($k < $x->arraysize() - 1) { @@ -385,28 +388,28 @@ if ($action) { // button to test this method //$payload="\n$method\n\n$payload\n"; echo "" . - "" . - "" . - "" . - "" . + "" . + "" . + "" . + "" . "" . - "" . - "" . + "" . + "" . "" . "" . "" . - "" . - "" . - "" . - "" . + "" . + "" . + "" . + "" . "" . "" . - "" . + "" . "" . - "" . - "" . - "" . - "" . + "" . + "" . + "" . + "" . "" . ""; if ($wstype != 1) { @@ -415,29 +418,29 @@ if ($action) { echo "\n"; echo "
" . - "" . - "" . - "" . - "" . + "" . + "" . + "" . + "" . "" . - "" . - "" . + "" . + "" . "" . "" . "" . - "" . - "" . - "" . - "" . + "" . + "" . + "" . + "" . "" . "" . - "" . + "" . "" . - "" . - "" . + "" . + "" . "" . - "" . - "" . + "" . + "" . "" . "" . "" . diff --git a/debugger/controller.php b/debugger/controller.php index 6051f92..e58d2a4 100644 --- a/debugger/controller.php +++ b/debugger/controller.php @@ -12,6 +12,9 @@ * @todo add http no-cache headers **/ +// make sure we set the correct charset type for output, so that we can display all characters +//header('Content-Type: text/html; charset=utf-8'); + include __DIR__ . '/common.php'; if ($action == '') { $action = 'list'; @@ -235,12 +238,12 @@ $editorlibs = '../../phpjsrpc/lib/';
- + - - +
Method" . htmlspecialchars($method) . "  
Method" . htmlspecialchars($method, ENT_COMPAT, $inputcharset) . "  

Target server

Address: Port: + Path:
@@ -253,18 +256,18 @@ $editorlibs = '../../phpjsrpc/lib/'; Generate stub for method call onclick="switchaction();"/> - + - + - - + + @@ -292,9 +295,9 @@ $editorlibs = '../../phpjsrpc/lib/'; - + - + - + - + - + - + @@ -344,7 +347,7 @@ $editorlibs = '../../phpjsrpc/lib/'; - +

Method

Name: Payload:
Msg id: Msg id:
AUTH: Username: Pwd: Type Verify Cert: /> CA Cert file:
PROXY: Server: Proxy user: Proxy pwd:
COMPRESSION:
COOKIES: Format: 'cookie1=value1, cookie2=value2'
-- 2.43.0