php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.11.2011, 13:47  
Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 78
WAY_KOW befindet sich auf einem aufstrebenden Ast
Standard Probleme mit eval

Hallo
ICh habe ein auf eval basierendes Template CMS System.

Es werde html Seiten eingelesen und darin ein PHP Code eingefügt.

Soweit funktioniert alles normal.

Nun muss ich in der HTML Seite ebenfalls einen php Code ausführen lassen.

Das script liegt in der inlcude Datei menu1.php

Mit
<?php include "include/menu1.php";?>
passiert gar nichts

Mit
<?php eval("?>".include "include/menu1.php"."<?php ");?>

PAssiert ebenfalls Nichts ... wo ist der denkfehler?
WAY_KOW ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.11.2011, 14:48  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von WAY_KOW Beitrag anzeigen
Hallo
ICh habe ein auf eval basierendes Template CMS System.
Gruselig...

Zitat:
Es werde html Seiten eingelesen und darin ein PHP Code eingefügt.

Soweit funktioniert alles normal.

Nun muss ich in der HTML Seite ebenfalls einen php Code ausführen lassen.

Das script liegt in der inlcude Datei menu1.php

Mit
<?php include "include/menu1.php";?>
passiert gar nichts

Mit
<?php eval("?>".include "include/menu1.php"."<?php ");?>

PAssiert ebenfalls Nichts ... wo ist der denkfehler?
Ich verstehe allerdings nicht, was du uns hier sagen willst. Und der zweite Code-Schnipsel ist auf so vielen Ebenen falsch, da fehlen mir die Worte.

Ein Ratschlag ins Blaue: Vergiss eval, das brauchst du nicht für PHP-Templates. Template inkludieren und gut ist.
fab ist offline   Mit Zitat antworten
Alt 26.11.2011, 15:02  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von WAY_KOW Beitrag anzeigen
Hallo
ICh habe ein auf eval basierendes Template CMS System.

Es werde html Seiten eingelesen und darin ein PHP Code eingefügt.

Soweit funktioniert alles normal.
Nicht wirklich.
Du postest hier im Fortgeschrittenen-Bereich. Da sollte man annehmen, du verstehst eval() und wie man Dateien einliest und darin Platzhalter ersetzt.
file_read_contents()
preg_replace()
strtr()
str_replace()

Zitat:
Nun muss ich in der HTML Seite ebenfalls einen php Code ausführen lassen.

Das script liegt in der inlcude Datei menu1.php

Mit
<?php include "include/menu1.php";?>
passiert gar nichts
Zumindest sollte man eine Fehlermeldung zu sehen bekommen, wenn die Datei nicht vorhanden ist. Du kennst error_reporting(E_ALL);?

Du weißt, was include() macht? Wie man seinen Rückgabewert abfragt und somit auf erfolgreiches "includen" prüft? Du kennst require(), das ein Script beendet und somit deutlich sichtbar macht, wenn eine Datei nicht geladen werden konnte?

Zitat:
Mit
<?php eval("?>".include "include/menu1.php"."<?php ");?>

PAssiert ebenfalls Nichts ... wo ist der denkfehler?
Include() liefert keinen mit "." verkettbaren String zurück, sondern einen Erfolgswert, den man in der einzubindenen Datei mit "return" setzen kann oder einen Fehlercode, der manchmal komisch ausfällt, wenn man include() direkt innerhalb eines Ausdruckes einbindet. Include() ist keine echte Funktion und daher muss man etwas vorsichtig damit umgehen:

PHP-Code:
$return = include('path/file_to_include.php');
if (
$return !== $erwarteter_wert) {
    
// Fehler
}
else {
    
// kein Fehler

Und mit include() eingeladene Script-Teile sind schon "evaluiert". Die nochmal durch eval() zu schicken, ergibt keinen Sinn.
fireweasel ist offline   Mit Zitat antworten
Alt 26.11.2011, 15:52  
Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 78
WAY_KOW befindet sich auf einem aufstrebenden Ast
Standard

Hallo

Zu meiner Rechtfertigung das System ist jetzt bald 10 Jahre alt
Und wird hoffentlich bald von meinem neuen CMS ersetzt.

Ich bin natürlich Blöde ... es muss richtig heißen:
PHP-Code:
echo '<?php include "system/erk.php"?>';
Wenn der PHP Code ausgeführt wird setzt er den neuen PHP Befehl per Echo in die fertige Seite.
WAY_KOW ist offline   Mit Zitat antworten
Alt 26.11.2011, 17:55  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von WAY_KOW Beitrag anzeigen
Hallo

Zu meiner Rechtfertigung das System ist jetzt bald 10 Jahre alt
Und wird hoffentlich bald von meinem neuen CMS ersetzt.

Ich bin natürlich Blöde ... es muss richtig heißen:
PHP-Code:
echo '<?php include "system/erk.php"?>';
Wenn der PHP Code ausgeführt wird setzt er den neuen PHP Befehl per Echo in die fertige Seite.
PHP Code, der PHP Code erzeugt, welcher dann von anderem PHP Code geladen und wieder als PHP Code eval't wird... das ist hochgradig unsinnig. Das wars vor 10 Jahren schon.
Die Umstellung auf ein neues CMS sollte vorangetrieben werden
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 26.11.2011, 18:27  
Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 78
WAY_KOW befindet sich auf einem aufstrebenden Ast
Standard

DEr mit echo eingesetzte PHP Code wird natürlich normal - ohne eval ausgeführt.

Eval kommt nur in der Vorschau innerhalb des CMS zum Einsatz.

Der Umstieg auf ein neues CMS ist leider nicht so einfah wenn es schon von vielen Kunden genutzt wird
WAY_KOW ist offline   Mit Zitat antworten
Alt 28.11.2011, 09:17  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

PHP-Code:
echo '<?php include "system/erk.php"?>';
ist aber auch unsinnig - weil es nur den Code ausgibt - aber nichts wirklich includiert ...zumal einfach-Quotes auch nicht Variablen auswerten ...

baut bitte ganz hastig auf ein anständiges CMS um, wenn denn eins benötigt wird und lass(t) bitte sämtlichen Unsinn in Richtung eval()
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 28.11.2011, 10:55  
Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 78
WAY_KOW befindet sich auf einem aufstrebenden Ast
Standard off topic

Mein CMS geniert statische Seiten und sendet diese per FTP auf den Zielserver.

In dem Beispiel oben wird auf statische Weise eine dynamische Hp Seite generiet. So wird der H Befehl include in der erstellten Datei angezeigt auf den Zielserver übertragen und dort als PHP Code ausgeführt - und damit ioncludiert er natürlich auch die erk.php.

FRAGE: Wie realisiere ich ein template basierendes CMS, welches auch dynamischen Code enthalten kann ohne eval?
WAY_KOW ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
eval() in str_replace() ? Yusuf PHP-Fortgeschrittene 4 23.09.2011 14:41
php / mysql Probleme bei Umstieg von php 5.2 auf 5.3 Gerhard76 PHP Einsteiger 10 21.09.2011 12:58
Mit Regex php/html-Datei nach php-Code durchsuchen und diesen mit eval() ausführen Aervyn PHP Einsteiger 3 08.04.2011 01:18
[Erledigt] SyntaxHighlighter eval erscheint mir komisch/verdächtig papalangi_44 JavaScript, Ajax und mehr 5 10.10.2010 11:17
$_SESSION Probleme Thomasd82hb PHP Tipps 2010 12 12.06.2010 01:34
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
Probleme mit mbstring extension unter Debian HStev Server, Hosting und Workstations 3 30.08.2006 20:55
[Erledigt] Navigation auf Smarty umstellen?! PHP-Fortgeschrittene 3 10.01.2006 09:19
array keys mit eval erzeugen ff-webdesigner PHP-Fortgeschrittene 4 22.10.2005 18:44
Probleme bei der Installation von Turck MMCache tomx992 PHP-Fortgeschrittene 2 27.09.2005 20:31
irc bot probleme mit fread & eval PHP-Fortgeschrittene 8 02.07.2005 01:28
[Frage] Eval führt sich nur 1x aus danach ist ende... PHP Tipps 2005 4 17.03.2005 13:52
Probleme mit eval () Calli PHP Tipps 2005 12 03.01.2005 12:05
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php include es passiert nichts, php include evaluieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum