Error Meldung

nordi

Erfahrenes Mitglied
Hallo Forum,

ich habe ein Skript installiert (SiteCake) und ich bekomme eine Fehlermeldung, mit der ich wirklich nichts anfangen kann. Habe schon gegoogelt, finde aber auch nicht dazu. Supportteam von SikeCake schreibt, dass es am fehlerhaften PHP auf dem Server liegt.. Habe dann mit dem Serverbetreiber gesprochen, die meinten alles wäre in Ordnung. Eventuell könnt ihr mir weiterhelfen: http://tinyurl.com/b6afpw8

Lieben Dank.
 
Aber wenn im Stacktrace schon sowas wie eval() vorkommt bzw ne undefined offset warning hier ne exception wirft, würde ich eher mal nen anderes cms wählen ;)
 
@saftmeister:

PHP:
<?php

class RenderController extends Zend_Controller_Action
{
    
    public function renderAction()
    {
		$service = DiManager::get( 'RenderService' );
		$requestUrl = $this->getRequest()->getParam('url', $_SERVER['PHP_SELF']);
		$params = $this->getRequest()->getParams();
		$loginAttempt = isset($params['login']);
		
		$page = $service->render($requestUrl, $loginAttempt);
		$page = $this->evalPage($page);
		
    	$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
		$viewRenderer->setView(new StaticView($page));
    }
    
    private function evalPage($page) {
    	if ( strpos($page, "<?php") === false ) {
    		return $page;
    	}
    	
    	ob_start();
		eval('?>'.$page);
		$result = ob_get_contents();
		ob_end_clean();
	
		return $result;
    }

}

?>

@alxy: Ich versteh nur Bahnhof, was du da gepostet hast :D Ich find das CMS von der Handhabung super, daher würde ich es gerne nehmen..
 
Um es mal verständlich auszudrücken: Wenn die Funktion eval() für ein stinktnormales CMS gebraucht wird, würde ich von schlechtem Applikationsdesign reden ;)
 
Hi, so gut kenn ich mich mit PHP nicht aus um das zu beurteilen zu können. Liegt daran denn der Fehler? Oder wie kommt die Fehlermeldung zu stande?
 
Kannst du mal spaßeshalber die Methode evalPage() innerhalb dieser Klasse so abändern:

PHP:
    private function evalPage($page) {
        if ( strpos($page, "<?php") === false ) {
            return $page;
        }
        
        ob_start();
        //eval('?>'.$page);
        echo $page;
        $result = ob_get_contents();
        ob_end_clean();
        var_dump($page);
    
        return $result;
    }

Und die Ausgabe posten?
 
Schau dir mal Concrete5 an, das ist vom Bearbeitungsmodus (Live-Edit) und den Drag n' Drop Features her genauso ;)
 
@Saftmeister: Wahnsinn! Es hat geklappt, soweit ich das beurteilen kann!! Kannst du mir das noch kurz erklären?
 
Eigentlich wollte ich nur wissen, was in $page drin steht. Das es mit echo ausgegeben wurde, ist nur Nebeneffekt, ich wollte eigentlich noch nicht erreichen, das es funktioniert. Denn der Code hat bestimmt einen Sinn. Ihn einfach zu entfernen kann dazu führen, das andere Sachen nicht mehr so funktionieren, wie sie sollten.

Was ist denn jetzt die Ausgabe? Ich tippe darauf, was die Zeichenkette "<?php" irgendwo im Text von $page vorkommt. Mit strpos() zu prüfen halte ich für ungenügend.
 
Zurück