NetAktiv
Senior HTML'ler
Hallo,
manchmal ist es beim Testen nervig, wenn man beispielsweise nur eine Syntaxprüfung machen will und deswegen ein PHP-Script extra auf den Server laden und aufrufen muss. Ich habe mir ein kleine PHP-Seite geschrieben, mit der ich PHP im Browser eingeben und auf dem Server ausführen kann. Eventuell finden es andere ja auch nützlich und daher stelle ich das Script hier bereit.
Achtung: Klar, mit Zugriff auf das Script hat man Zugriff auf alles mit den Privilegien des Web Servers, also nur in absolut gesicherten Verzeichnissen bereitstellen. Ich übernehme keinerlei Support oder Verantwortung.
Grüße,
Rainer
manchmal ist es beim Testen nervig, wenn man beispielsweise nur eine Syntaxprüfung machen will und deswegen ein PHP-Script extra auf den Server laden und aufrufen muss. Ich habe mir ein kleine PHP-Seite geschrieben, mit der ich PHP im Browser eingeben und auf dem Server ausführen kann. Eventuell finden es andere ja auch nützlich und daher stelle ich das Script hier bereit.
Achtung: Klar, mit Zugriff auf das Script hat man Zugriff auf alles mit den Privilegien des Web Servers, also nur in absolut gesicherten Verzeichnissen bereitstellen. Ich übernehme keinerlei Support oder Verantwortung.
Grüße,
Rainer
PHP:
<?php
//Eingabe prüfen und globale Variable initilisieren
$g_sPhpScript = (isset($_REQUEST["test_menu_inp"]) ? stripcslashes($_REQUEST["test_menu_inp"]) : "");
$g_sResDivDisplayStyle = ($g_sPhpScript) ? "block" : "none";
$g_sTmpDir = "./tmp"; //Unterverzeichnis für temporäre Dateien
//Hauptprogramm definieren, Ausgabe erfolt im Result-Div
function main() {
//Ohne Input keine Aktion
global $g_sPhpScript, $g_sTmpDir;
if (!$g_sPhpScript) return;
//Optional Unterverzeichnis erstellen, falls es nicht existiert
if ((!is_dir($g_sTmpDir)) && mkdir($g_sTmpDir)) echo "Verzeichnis $g_sTmpDir wurde neu erstellt<br/>";
//Input analysieren und Output vorbereiten
$bDeleteScript = (isset($_REQUEST["cbx_delete"]) ? $_REQUEST["cbx_delete"] : false);
$sDeleteSpan = "test_result_" . (($bDeleteScript) ? "green" : "red");
$scriptName = tempnam($g_sTmpDir, "server_php_tmp_");
//Temporäre Script Datei erstellen
$fp = fopen($scriptName, "w");
fwrite($fp, "<?php \n" . $g_sPhpScript . "\n?>");
fclose($fp);
//Script ausführen und Ergebnis ausgeben
echo "<span class='test_result_red'>Ergebnis des Scripts $scriptName:</span><br/><br/>";
require($scriptName);
echo "<br/><br/><span class='" . $sDeleteSpan . "'>Script wurde " . (($bDeleteScript) ? "" : "nicht ") . "gelöscht!</span>";
//Optional temporäre Script Datei erstellen löschen
if ($bDeleteScript) unlink($scriptName);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>PHP Server Kommandos</title>
<meta charset="utf-8">
<style type="text/css">
body { font-family: sans-serif; }
.button { width: 120px; margin-top:10px}
.copyright { margin: 0 auto; width:300px; }
.clear { clear:both; }
#test_data { width: 800px; margin:0 auto; }
#test_menu_inp { width:450px; height: 200px; }
#test_menu_form { float:left; width:450px; }
#test_menu_text { float:left; width:300px; font-size:11pt; padding-right:15px}
.test_result_red { color:red; font-weight:bold; font-size:larger; } /*span als head im test_result_text*/
.test_result_green { color:green; font-weight:bold; font-size:larger; } /*span als head im test_result_text*/
#test_result_text { width:780px; background-color:black; color:white; font-style:monospace;
margin-top: 20px; padding:8px; display:none;
overflow: scroll; max-height: 600px; white-space:pre-line; font-size:10pt}
</style>
<script type="text/javascript">
var g_iSampleNr = 0;
function makeSample() {
try {
++g_iSampleNr;
var sSample = "";
sSample += "echo 'Beispiel Nummer " + g_iSampleNr + " Array füllen<br/>';\n";
sSample += "date_default_timezone_set('Europe/Berlin');\n";
sSample += "$myArray = array();\n";
sSample += "$myArray['test_text'] = 'Beispiel Text';\n";
sSample += "$myArray['test_zeit'] = date('d.m.Y H:i:s');\n";
sSample += "$myArray['test_nr'] = " + g_iSampleNr + ";\n";
sSample += "echo 'Nun Array mit var_dump ausgeben<br/>';\n";
sSample += "var_dump($myArray);\n";
document.getElementById('test_menu_inp').value = sSample;
} catch(e) {
alert(e);
}
}
function clearInput() {
try {
document.getElementById('test_menu_inp').value = '';
document.getElementById('test_result_text').style.display = 'none';
} catch(e) {
alert(e);
}
}
</script>
</head>
<body >
<div id="test_data">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<div id="test_menu">
<div id="test_menu_text">
Man kann hier ein PHP Script eingeben und auf dem Server ausführen lassen. Der Script-Text
wird auf den Server übertragen und in eine temporäre Datei geschrieben. Das Script wird dann
ausgeführt und optional gelöscht. Das Ergebnis wird hier angezeigt.
<br/>
<input type="button" value=" Löschen" name="btn_reset" class="button" onclick="javascript:clearInput();">
<input type="checkbox" name="cbx_delete" checked="checked" value="1"> <span style="font-size:smaller">Scriptdatei löschen<span>
<br/>
<input type="button" value=" Beispiel" name="btn_example" class="button" onclick="javascript:makeSample();">
<input type="submit" value="Ausführen" name="btn_submit" class="button">
</div>
<div id="test_menu_form">
<textarea rows="5" required placeholder="hier das PHP Script eingeben" id="test_menu_inp" name="test_menu_inp"><?php echo $g_sPhpScript; ?></textarea>
</div>
</div>
</form>
<div class="clear"></div>
<div class="codebox" id="test_result_text" style='display:<?php echo $g_sResDivDisplayStyle; ?>;'><?php main(); ?></div>
<hr>
<div class="copyright">Copyright 2015 NetAktiv, Neufahrn</div>
</div> <!-- end div id=test_data -->
</body>
</html>