Newsflash
Erster Artikel
So, ich habe inzwischen dann den ersten richtigen Artikel geschrieben, in der Sektion "Programmierung" Kategorie "C++". Der Artikel vermittelt die Grundlagen zu Pointern. Ein wenig vorkenntnisse in C++ sollte man haben.
 
Home arrow Programmierung arrow PHP arrow PHP-Konsole mit eval()
PHP-Konsole mit eval() PDF Drucken E-Mail
Geschrieben von Mitja Schmakeit   
Tuesday, 25. December 2007
Mit php kann man per eval() wunderbar Code ausführen, der in einem String enthalten ist. Ich bastel mir bei fast allen Projekten immer irgendwo im Adminbereich eine kleine PHP-Konsole, wo man per POST (Textarea) php-code ausführen kann. Das problem dabei ist, dass bestimmte Zeichen beim POST automatisch maskiert, also mit einem Backslash versehen, werden. Das folgende Script entfernt die überflüssigen und codezerstörenden Maskierungen, ohne die gewollten dabei zu entfernen.
<?php function killmaskofpost($maskedpost) { $maskedpost = str_replace(chr(92).chr(92), "[][BACK--SLASH][]", $maskedpost); $maskedpost = str_replace(chr(92), '', $maskedpost); $maskedpost = str_replace("[][BACK--SLASH][]", chr(92), $maskedpost); return $maskedpost; } $evalcode = killmaskofpost($_POST["evalcode"]); echo "<form action='' method='post'><textarea cols='70' rows='7'>".$evalcode."</textarea><br /><input type='submit' name='evalsubmit' value='eval!' />"; if ($_POST['evalsubmit'] == 'eval!') { echo "<br /><hr />"; eval($evalcode); } ?>
Alternativ kann man stripslashes() verwenden, was natürlich nur halb so toll wie meine Funktion ist.
Letzte Aktualisierung ( Sunday, 30. December 2007 )
 
Weiter >
Invalid XHTML (Valid XHTML destroyed by some components), Valid CSS - Design by ah-68 - Copyright © 2007 - 2012 by Mitja Schmakeit - Hosted by taruner.de