Script execution is now done via an async js request, preventing die() and exception to mess up the entire console

This commit is contained in:
Jordi Boggiano
2010-08-31 20:47:02 +02:00
parent 300372e2d3
commit f54dc12911
5 changed files with 28 additions and 3 deletions
+1
View File
@@ -31,6 +31,7 @@ Changelog
--------- ---------
- 1.1.0 - 1.1.0
- Script execution is now done via an async js request, preventing die() and exception to mess up the entire console
- Added a toggle button to expand/collapse all krumo sub-trees at once - Added a toggle button to expand/collapse all krumo sub-trees at once
- 1.0.0 - 1.0.0
- Initial Public Release - Initial Public Release
+9 -2
View File
@@ -48,7 +48,13 @@ if (isset($_POST['code'])) {
ob_start(); ob_start();
eval($code); eval($code);
$debugOutput = '<div class="output">'.ob_get_clean().'</div>'; $debugOutput = ob_get_clean();
if (isset($_GET['js'])) {
header('Content-Type: text/plain');
echo $debugOutput;
die('#end-php-console-output#');
}
} }
?> ?>
@@ -63,7 +69,8 @@ if (isset($_POST['code'])) {
<script type="text/javascript" src="php-console.js"></script> <script type="text/javascript" src="php-console.js"></script>
</script> </script>
</head> </head>
<body><?php echo $debugOutput ?> <body>
<div class="output"><?php echo $debugOutput ?></div>
<form method="POST" action=""> <form method="POST" action="">
<textarea cols="100" rows="20" name="code"><?php echo (isset($_POST['code']) ? htmlentities($_POST['code'], ENT_QUOTES, 'UTF-8') : null) ?></textarea> <textarea cols="100" rows="20" name="code"><?php echo (isset($_POST['code']) ? htmlentities($_POST['code'], ENT_QUOTES, 'UTF-8') : null) ?></textarea>
<input type="submit" name="subm" value="Try this!" /> <input type="submit" name="subm" value="Try this!" />
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

+14 -1
View File
@@ -36,7 +36,8 @@ $(function() {
} }
caret = $(this).getCaret(); caret = $(this).getCaret();
part = $(this).val().substring(0, caret); part = $(this).val().substring(0, caret);
if (matches = part.match(/(\r?\n +)[^\r\n]*$/)) { matches = part.match(/(\r?\n +)[^\r\n]*$/);
if (matches) {
$(this).val(function(idx, val) { $(this).val(function(idx, val) {
return val.substring(0, caret) + matches[1] + val.substring(caret); return val.substring(0, caret) + matches[1] + val.substring(caret);
}); });
@@ -56,6 +57,18 @@ $(function() {
} }
}); });
$('form').submit(function(e){
e.preventDefault();
$('div.output').html('<img src="loader.gif" class="loader" alt="" /> Loading ...');
$.post('?js=1', $(this).serializeArray(), function(res) {
if (res.match(/#end-php-console-output#$/)) {
$('div.output').html(res.substring(0, res.length-24));
} else {
$('div.output').html(res + "<br /><br /><em>Script ended unexpectedly.</em>");
}
});
});
// adds a toggle button to expand/collapse all krumo sub-trees at once // adds a toggle button to expand/collapse all krumo sub-trees at once
if ($('.krumo-expand').length > 0) { if ($('.krumo-expand').length > 0) {
$('<a class="expand" href="#">Toggle all</a>') $('<a class="expand" href="#">Toggle all</a>')
+4
View File
@@ -29,6 +29,10 @@ a {
margin: 10px .4%; margin: 10px .4%;
} }
.output img.loader {
margin-bottom: -4px;
}
.output, textarea { .output, textarea {
-moz-border-radius: 5px; -moz-border-radius: 5px;
-webkit-border-radius: 5px; -webkit-border-radius: 5px;