Removed bullshit

This commit is contained in:
2015-09-14 16:17:28 +02:00
parent 7131e2accd
commit 3809682801
6 changed files with 35 additions and 157 deletions
+29 -63
View File
@@ -1,10 +1,15 @@
<?php
ini_set('log_errors', 0);
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
// --- Handle config ---
$defaults = array(
// how many spaces to use for indention, 0 will make it use real tabs
'tabsize' => 4,
// whitelist of IPs which don't need to be authenticated
// whitelist of IPs
// use '*' to allow any IP
'ip_whitelist' => array('127.0.0.1', '::1'),
@@ -21,93 +26,54 @@ if (file_exists(__DIR__.'/config.php')) {
$options = $defaults;
}
/**
* PHP Console
*
* A web-based php debug console
*
* Copyright (C) 2010, Jordi Boggiano
* http://seld.be/ - j.boggiano@seld.be
*
* Licensed under the new BSD License
* See the LICENSE file for details
*
* Source on Github http://github.com/Seldaek/php-console
*/
// --- IP Whitelist ---
if (!in_array('*', $options['ip_whitelist'], true) &&
!in_array($_SERVER['REMOTE_ADDR'], $options['ip_whitelist'], true)
) {
header('HTTP/1.1 401 Access unauthorized');
die('ERR/401 Go Away');
header("HTTP/1.0 401 Unauthorized");
die('Access Denied');
}
define('PHP_CONSOLE_VERSION', '1.4.0');
require 'lib/MelodyPlugin.php';
require 'vendor/autoload.php';
ini_set('log_errors', 0);
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
$debugOutput = '';
function runCode($__source_code, $__bootstrap_file)
{
if ($__bootstrap_file) {
require $__bootstrap_file;
}
eval($__source_code);
}
if (isset($_POST['code'])) {
ini_set('html_errors', false);
if (get_magic_quotes_gpc()) {
$code = stripslashes($code);
}
$code = $_POST['code'];
// // if there's only one line wrap it into a krumo() call
// if (preg_match('#^(?!var_dump|echo|print|< )([^\r\n]+?);?\s*$#is', $code, $m) && trim($m[1])) {
// $code = 'krumo('.$m[1].');';
// }
// replace '< foo' by krumo(foo)
// $code = preg_replace('#^<\s+(.+?);?[\r\n]?$#m', 'krumo($1);', $code);
// replace newlines in the entire code block by the new specified one
// i.e. put #\r\n on the first line to emulate a file with windows line
// endings if you're on a unix box
if (preg_match('{#((?:\\\\[rn]){1,2})}', $code, $m)) {
$newLineBreak = str_replace(array('\\n', '\\r'), array("\n", "\r"), $m[1]);
$code = preg_replace('#(\r?\n|\r\n?)#', $newLineBreak, $code);
}
// --- Evaluate the code ---
ob_start();
$memBefore = memory_get_usage(true);
$start = microtime(true);
$melodyPlugin = new MelodyPlugin();
if ($melodyPlugin->isMelodyScript($code)) {
if ($melodyPlugin->isScriptingSupported()) {
$melodyPlugin->runScript($code, $options['bootstrap']);
} else {
throw new Exception('php-console misses required dependencies to run melody scripts.');
}
} else {
// Important: replace only line by line, so the generated source lines will map 1:1 to the initial user input!
$code = preg_replace('{^\s*<\?(php)?\s*}i', '', $code);
// Remove the < ?php mark
// TODO remove also ? > if present
$code = preg_replace('{^\s*<\?(php)?\s*}i', '', $code);
runCode($code, $options['bootstrap']);
}
/** Run code with bootstrap in separate scope */
function runCode($__source_code, $__bootstrap_file) {
if ($__bootstrap_file) {
require $__bootstrap_file;
}
eval($__source_code);
}
runCode($code, $options['bootstrap']);
// compare with peak, because regular memory could be free'd already
$end = microtime(true);
$memAfter = memory_get_peak_usage(true);
$debugOutput .= ob_get_clean();
// ---------------------------
if (isset($_GET['js'])) {
// --- Send response with metadata in headers ---
header('Content-Type: text/plain');
$memory = sprintf('%.3f', ($memAfter - $memBefore) / 1024.0 / 1024.0); // in MB
@@ -117,6 +83,7 @@ if (isset($_POST['code'])) {
header('X-Rendertime: '. $rendertime);
echo $debugOutput;
die('#end-php-console-output#');
}
}
@@ -154,7 +121,6 @@ if (isset($_POST['code'])) {
</div>
<div class="statusbar">
<span class="position">Line: 1, Column: 1</span>
<!-- <a href="" class="reset">Reset</a> -->
<span class="runtime-info"></span>
<input type="submit" name="subm" value="Run!"/>
</div>