Make the debugger tolerate latin-1 characters in all fields, not just method payload
[plcapi.git] / debugger / controller.php
index 6051f92..e58d2a4 100644 (file)
@@ -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/';
         <tr>
             <td><h2>Target server</h2></td>
             <td class="labelcell">Address:</td>
-            <td><input type="text" name="host" value="<?php echo htmlspecialchars($host); ?>"/></td>
+            <td><input type="text" name="host" value="<?php echo htmlspecialchars($host, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td class="labelcell">Port:</td>
-            <td><input type="text" name="port" value="<?php echo htmlspecialchars($port); ?>" size="5" maxlength="5"/>
+            <td><input type="text" name="port" value="<?php echo htmlspecialchars($port, ENT_COMPAT, $inputcharset); ?>" size="5" maxlength="5"/>
             </td>
             <td class="labelcell">Path:</td>
-            <td><input type="text" name="path" value="<?php echo htmlspecialchars($path); ?>"/></td>
+            <td><input type="text" name="path" value="<?php echo htmlspecialchars($path, ENT_COMPAT, $inputcharset); ?>"/></td>
         </tr>
     </table>
 
@@ -253,18 +256,18 @@ $editorlibs = '../../phpjsrpc/lib/';
             <td>Generate stub for method call<input type="radio" name="action" value="wrap"<?php if ($action == 'wrap') { echo ' checked="checked"'; } ?> onclick="switchaction();"/></td>
         </tr>
     </table>
-    <input type="hidden" name="methodsig" value="<?php echo htmlspecialchars($methodsig); ?>"/>
+    <input type="hidden" name="methodsig" value="<?php echo htmlspecialchars($methodsig, ENT_COMPAT, $inputcharset); ?>"/>
 
     <table id="methodblock">
         <tr>
             <td><h2>Method</h2></td>
             <td class="labelcell">Name:</td>
-            <td><input type="text" name="method" value="<?php echo htmlspecialchars($method); ?>"/></td>
+            <td><input type="text" name="method" value="<?php echo htmlspecialchars($method, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td class="labelcell">Payload:<br/>
                 <div id="methodpayloadbtn"></div>
             </td>
-            <td><textarea id="methodpayload" name="methodpayload" rows="1" cols="40"><?php echo htmlspecialchars($payload); ?></textarea></td>
-            <td class="labelcell" id="idcell">Msg id: <input type="text" name="id" size="3" value="<?php echo htmlspecialchars($id); ?>"/></td>
+            <td><textarea id="methodpayload" name="methodpayload" rows="1" cols="40"><?php echo htmlspecialchars($payload, ENT_COMPAT, $inputcharset); ?></textarea></td>
+            <td class="labelcell" id="idcell">Msg id: <input type="text" name="id" size="3" value="<?php echo htmlspecialchars($id, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td><input type="hidden" name="wstype" value="<?php echo $wstype; ?>"/>
                 <input type="submit" value="Execute" onclick="return verifyserver();"/></td>
         </tr>
@@ -292,9 +295,9 @@ $editorlibs = '../../phpjsrpc/lib/';
         <tr>
             <td class="labelcell">AUTH:</td>
             <td class="labelcell">Username:</td>
-            <td><input type="text" name="username" value="<?php echo htmlspecialchars($username); ?>"/></td>
+            <td><input type="text" name="username" value="<?php echo htmlspecialchars($username, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td class="labelcell">Pwd:</td>
-            <td><input type="password" name="password" value="<?php echo htmlspecialchars($password); ?>"/></td>
+            <td><input type="password" name="password" value="<?php echo htmlspecialchars($password, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td class="labelcell">Type</td>
             <td><select name="authtype">
                     <option value="1"<?php if ($authtype == 1) { echo ' selected="selected"'; } ?>>Basic</option>
@@ -314,16 +317,16 @@ $editorlibs = '../../phpjsrpc/lib/';
             <td class="labelcell">Verify Cert:</td>
             <td><input type="checkbox" value="1" name="verifypeer" onclick="swicthcainfo();"<?php if ($verifypeer) { echo ' checked="checked"'; } ?> /></td>
             <td class="labelcell">CA Cert file:</td>
-            <td><input type="text" name="cainfo" value="<?php echo htmlspecialchars($cainfo); ?>"/></td>
+            <td><input type="text" name="cainfo" value="<?php echo htmlspecialchars($cainfo, ENT_COMPAT, $inputcharset); ?>"/></td>
         </tr>
         <tr>
             <td class="labelcell">PROXY:</td>
             <td class="labelcell">Server:</td>
-            <td><input type="text" name="proxy" value="<?php echo htmlspecialchars($proxy); ?>"/></td>
+            <td><input type="text" name="proxy" value="<?php echo htmlspecialchars($proxy, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td class="labelcell">Proxy user:</td>
-            <td><input type="text" name="proxyuser" value="<?php echo htmlspecialchars($proxyuser); ?>"/></td>
+            <td><input type="text" name="proxyuser" value="<?php echo htmlspecialchars($proxyuser, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td class="labelcell">Proxy pwd:</td>
-            <td><input type="password" name="proxypwd" value="<?php echo htmlspecialchars($proxypwd); ?>"/></td>
+            <td><input type="password" name="proxypwd" value="<?php echo htmlspecialchars($proxypwd, ENT_COMPAT, $inputcharset); ?>"/></td>
         </tr>
         <tr>
             <td class="labelcell">COMPRESSION:</td>
@@ -344,7 +347,7 @@ $editorlibs = '../../phpjsrpc/lib/';
         </tr>
         <tr>
             <td class="labelcell">COOKIES:</td>
-            <td colspan="4" class="labelcell"><input type="text" name="clientcookies" size="80" value="<?php echo htmlspecialchars($clientcookies); ?>"/></td>
+            <td colspan="4" class="labelcell"><input type="text" name="clientcookies" size="80" value="<?php echo htmlspecialchars($clientcookies, ENT_COMPAT, $inputcharset); ?>"/></td>
             <td colspan="2">Format: 'cookie1=value1, cookie2=value2'</td>
         </tr>
     </table>