Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 17. September 2013 18:23
- simonson
- kennt CMS/ms

- Ort: Wien
- Registriert: 07. März 2012
- Beiträge: 192
[GELÖST] 1.11.7 ohne php-tag
Hallo Gemeinde,
habe unvorsichtigerweise auf 1.11.7 upgegradet und nun funktionieren alle {php}-Aufrufe nicht mehr.
{php} readfile ("http://www.simon-peter.com/BOX_news.php"); {/php} konnte ich mit UDT 'readfile($params["file"]);' und dem Aufruf {UDT file ="http://www.simon-peter.com/BOX_news.php"}
ersetzen, bei 'include' und 'include_once' funktioniert leider gar nichts :-((
Downgraden oder?
Dank vorab!
Beitrag geändert von simonson (17. September 2013 18:25)
mfg
simonson
CMSMS 1.12 Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1
Offline
#2 19. September 2013 05:31
- Andynium
- Moderator

- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] 1.11.7 ohne php-tag
Hast du schon die config.php kontrolliert?
Da gibt es einen Parameter, um die Tags zu aktivieren.
Offline
#3 19. September 2013 09:21
- simonson
- kennt CMS/ms

- Ort: Wien
- Registriert: 07. März 2012
- Beiträge: 192
Re: [GELÖST] 1.11.7 ohne php-tag
hi cyberman,
config.php:
$config['use_smarty_php_tags'] = true;
trotzdem keine funktionierende UDT für include und include_once möglich.
Für readfile geht 'readfile($params["file"]);' im UDT.
mfg
simonson
CMSMS 1.12 Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1
Offline
#4 19. September 2013 10:00
- Cherry
- arbeitet mit CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 529
Re: [GELÖST] 1.11.7 ohne php-tag
Laut Doku im doc Verzeichnis der Installation wurde der Parameter im April 2012 entfernt.
Offline
#5 19. September 2013 12:53
- NaN
- Moderator

- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.438
Re: [GELÖST] 1.11.7 ohne php-tag
Die {php} Tags sind seit Smarty 3 veraltet und sollten nicht mehr benutzt werden.
bei 'include' und 'include_once' funktioniert leider gar nichts :-((
Ist bei Dir allow_url_fopen aktiviert?
Das brauchst Du, um Dateien mit Hilfe einer URL via include oder include_once einbinden zu können.
Wenn Du garnicht vorhast, Dateien von einem anderen Server einzubinden, dann verwende für den Parameter 'file' den Pfad zur Datei (nicht die Webadresse).
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 19. September 2013 13:44
- simonson
- kennt CMS/ms

- Ort: Wien
- Registriert: 07. März 2012
- Beiträge: 192
Re: [GELÖST] 1.11.7 ohne php-tag
Da noch immer Anfänger:
'allow_url_fopen' befindet sich bitte wo?
Bisher laufen dei Programme mit {php} include_once "ki_include.php";{/php} bzw.
{php} include ("http://www.simon-peter.com/BOX_news.php"); {/php}
Da ich und somit meine Programme auch "veraltet" bin/sind, werde ich wohl auf die "veraltete"
Version von CMSms zurückrudern müssen und meinen Partnern/Kunden empfehlen NICHT upzugraden und alles beim guten (funktionierenden) "Alten" zu lassen.
So betrachtet wird Smarty 3 als eine arbeitsaufwändige Verschlimmbesserung empfunden
(notabene auch einige Namenskonventionen geändert wurden und das "alte" Zeugs nur nach intensivem Quellcodeumschreiben einigermaßen funktioniert.
@NaN bitte um weitere Hilfestellung bevor ich aufgebe(n muss)!
mfg
simonson
CMSMS 1.12 Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1
Offline
#7 19. September 2013 19:24
- NaN
- Moderator

- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.438
Re: [GELÖST] 1.11.7 ohne php-tag
Also ich kann Dein Problem mit CMSms 1.11.4, 1.11.7 oder 1.11.8 leider nicht nachvollziehen.
Der Code
include "my_test_file.php"; funktioniert bei mir sowohl im Template mit {php} als auch als UDT.
Dabei liegt die Datei "my_test_file.php" im Stammverzeichnis meiner CMSms Installation.
Wo liegen die einzubindenden Dateien in Deinem Fall?
Aber ich versuche es trotzdem mal etwas ausführlicher zu erklären...
allow_url_fopen ist eine PHP-Einstellung. Die kann man - soweit möglich - in der php.ini einstellen. Sie legt sinngemäß fest, ob es erlaubt ist, Dateien mit Hilfe einer URL einzubinden. So kann man z.B. auch PHP-Dateien von anderen Servern einbinden. Wenn Du Dateien vom selben Server mit einer URL einbindest, sendet der Server trotzdem eine ganz normale HTTP-Anfrage, als wenn es eine externe Datei wäre. Er fragt sich via Internet quasi selbst ab. Das ist allerdings schlecht für die Performance.
(allow_url_fopen ist aber jetzt irrelevant. Scheint bei Dir aktiviert zu sein.)
Der Unterschied von include und readfile() ist im wesentlichen dieser: readfile() ist Teil der regulären Dateifunktionen von PHP. D.h. Dateien öffnen, lesen, schreiben, löschen. Im Gegensatz zu include führt readfile() den PHP-Code in einer Datei nicht aus. readfile() gibt eins zu eins den Inhalt einer Datei bzw. das Ergebnis einer HTTP-Anfrage aus.
Include führt den Inhalt einer Datei erst aus und gibt das Ergebnis aus. Wenn Du hier eine URL verwendest, erwartet die Funktion als Resultat dieser HTTP-Anfrage gültigen PHP-Code, der lokal auf Deinem Server ausgeführt werden kann - also noch nicht das Ergebnis dieses PHP-Scriptes.
Auf Deinem Server läuft allerdings PHP. D.h. bei HTTP-Anfragen an PHP-Scripte auf Deinem Server (egal ob via include oder readfile() ) werden diese Scripte erstmal ausgeführt und nur deren Ergebnis zurückgegeben. D.h. der Server reagiert darauf so, als würde jemand von außen diese PHP-Datei aufrufen. Und das wiederum bedeutet, wenn Du bei include eine URL verwendest, erhältst Du keinen gültigen PHP-Code. Sondern nur das Ergebnis dieses Codes. include hat daher nichts zum Ausführen und folglich auch nichts zum Anzeigen. Aber readfile() hingegen gibt dieses Ergebnis - in der Annahme, es sei der Inhalt der angefragten Datei - einfach aus - egal was es tatsächlich ist.
Würdest Du bei readfile() den Pfad zur PHP-Datei angeben, würdest Du im Browser wenn überhaupt nur den PHP-Code ausgegeben bekommen.
Also beim Einbinden von PHP Code, dann folgendes beachten:
wenn mit include, dann keine URL.
Wenn mit readfile(), dann mit URL.
Aber wenn vom selben Server, dann besser mit include und Pfad.
{php} include_once "ki_include.php";{/php}
Da Du hier weder URL noch Pfad angibst, sucht PHP jetzt in folgender Reihenfolge nach der Datei:
1. im include_path
2. im Verzeichnis der aufrufenden Datei
3. im Arbeitsverzeichnis
Bei der Verwendung von {php} Tags wäre der 2. Fall das Verzeichnis "/tmp/templates_c" (CMSms 1.10) bzw. "/lib/smarty" (CMSms 1.11), weil der include-Befehl ja von einem Template aus aufgerufen wird.
Bei der Verwendung von UDTs ist es "/lib" (CMSms 1.10) bzw. "/lib/classes" (CMSms 1.11), weil dort die Funktionen zum Ausführen von UDTs liegen.
Dort wird PHP allerdings nicht fündig.
Also geht es zum Arbeitsverzeichnis.
Das Arbeitsverzeichnis ist i.d.R. das CMSms Stammverzeichnis, weil ja ursprünglich die index.php aufgerufen wurde.
Wenn Dein Script also im Stammverzeichnis liegt, sollte es eigentlich immer gefunden werden.
Ich würde bei include immer einen Pfad angeben. Als Pfad würde ich einen absoluten Pfad verwenden. Dann muss man sich keine Gedanken machen, ob das Script auch von PHP gefunden werden kann. (Ob und inwiefern sich das positiv auf die Performance auswirkt - weil ja nicht mehr gesucht werden muss - kann ich an dieser Stelle nicht sagen.)
Z.B. den root_path von CMSms:
$config = cmsms()->GetConfig();
include_once cms_join_path($config['root_path'], 'ki_include.php');Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#8 20. September 2013 23:33
- simonson
- kennt CMS/ms

- Ort: Wien
- Registriert: 07. März 2012
- Beiträge: 192
Re: [GELÖST] 1.11.7 ohne php-tag
@NaN Danke für die für beste "Nachhilfestunde", die ich bis jetzt erhalten habe!
Danke auch für Deine Zeit und Mühe detailliert und klar zu erklären!
Ich mach' mich in den nächsten Tagen daran, das alles zu verarbeiten und hoffe über gute Resultate berichten zu können.
Einige der Kollegen hier im Forum könnten sich von Deiner Geduld eine dicke Scheibe abschneiden ;-)
Beste Wünsche von der schönen, blauen Donau!
Beitrag geändert von simonson (20. September 2013 23:34)
mfg
simonson
CMSMS 1.12 Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1
Offline
Seiten: 1