Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 13. April 2011 16:25

Wurst2008
Gast

[GELÖST] php-script einbinden

Hier ist ja beschrieben, wie man scripte einbindet.
Wegen besserer Effizienz frage ich jetzt erst mal bevor ich ausprobiere:
Wenn ich auf diese Art ein script einbinde (hier einfach xxx/index.php), welches wieder andere phps includiert, funktioniert das dann auch noch?
In meinem Beispiel möchte ich ein (mehrere) Script zur Erfassung von Mitgliedsdaten einbinden, welches natürlich auch auf eine MySQL-Datenbank zugreift.

Gerade gelesen, dass es ja auch per UDT geht. Das wäre natürlich die elegantere Lösung. In der index.php ist nur eine Zeile Code "include("out_mitgliederliste.php");", was ich dann ganz gerne als UDT nehmen würde. Würden alle anderen srcipte, die mit include aufgerufen werden, dann auch laufen?

Beitrag geändert von Wurst2008 (24. April 2011 06:39)

#2 13. April 2011 18:17

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] php-script einbinden

Solange die anderen Includes in out_mitgliederliste.php vorhanden sind und auch relative Pfade verwenden, sollte es da keine Probleme geben.

Allerdings solltest du noch wissen, dass {php}{/php} nicht zwingend erforderlich ist (zumal es auch immer ein Sicherheitsrisiko darstellt, PHP pur in einer Template-Engine freizugeben.

http://www.smarty.net/docsv2/de/languag … on.php.tpl

Besser ist es, den Aufruf in einen Tag zu verpacken - gugst du hier

http://www.cmsmadesimple.de/cmsms-suppo … ndeln.html

Offline

#3 13. April 2011 19:10

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Danke! Was ist besser? Smarty- oder CMSMS-Tag? Oder ist das egal?
Und wie wäre der relative Pfad aus z.B. dem /plugins-Verzeichnis (für CMSMS-Tag) zu dem...z.B. "/uploads/db_script/"-Verzeichnis, in dem sich die anderen php-Dateien befinden?

Beitrag geändert von Wurst2008 (13. April 2011 19:16)

#4 13. April 2011 19:17

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: [GELÖST] php-script einbinden

Smarty-Tag ist performanter.
CMSms-Tag muss immer erst aus der DB geholt werden.


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

#5 13. April 2011 19:18

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: [GELÖST] php-script einbinden

Also wo genau befinden sich denn welche Scripte?


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 14. April 2011 23:28

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] php-script einbinden

NaN schrieb:

Smarty-Tag ist performanter.

Wobei hier die Smarty-Tags (/lib/smarty/plugins) vor den CMSMS-Tags (/plugins) führen

http://www.cmsmadesimple.de/cmsms-suppo … schen.html

NaN schrieb:

CMSms-Tag muss immer erst aus der DB geholt werden.

Jetzt meinst du aber UDT's tongue

Offline

#7 14. April 2011 09:31

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Jawoll! Verwirrt mich nur noch mehr. smile

Also wo genau befinden sich denn welche Scripte?

Das ist im Prinzip egal. Kann die ja ablegen wo ich will. Ich muss nur wissen, welchen Pfad ich dann für die include-Funktion im CMS-Tag aufrufen muss. Also angenommen, die php, die includiert (<-gibts das Wort überhaupt?) werden soll, liegt in "/uploads/db_script/" (siehe Beispiel oben).

#8 14. April 2011 09:37

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] php-script einbinden

Wurst2008 schrieb:

Das ist im Prinzip egal. Kann die ja ablegen wo ich will. Ich muss nur wissen, welchen Pfad ich dann für die include-Funktion im CMS-Tag aufrufen muss. Also angenommen, die php, die includiert (<-gibts das Wort überhaupt?) werden soll, liegt in "/uploads/db_script/" (siehe Beispiel oben).

Wenn du den Include über ein UDT oder ein Plugin Script machst, ist es am einfachsten den Include mit

include $_SERVER['DOCUMENT_ROOT']."/uploads/scripts/meinscript.php";

zu machen. Damit musst du den genauen Pfad zu deinem Webspace nicht kennen und es funktioniert auch nach einem Serverwechsel noch.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#9 14. April 2011 09:40

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] php-script einbinden

Das /uploads-Verzeichnis würde ich persönlich nicht nehmen, weils im Zugriff "normaler" Redakteure liegt.

Ich hätte das Verzeichnis deines externen Scripts einfach in den CMSMS-Root gepackt, so dass du das Script mit

[== PHP ==]
include("/db_script/out_mitgliederliste.php");

aufrufen kannst.

Offline

#10 14. April 2011 09:46

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] php-script einbinden

cyberman schrieb:

Das /uploads-Verzeichnis würde ich persönlich nicht nehmen, weils im Zugriff "normaler" Redakteure liegt.

Ich hätte das Verzeichnis deines externen Scripts einfach in den CMSMS-Root gepackt, so dass du das Script mit

[== PHP ==]
include("/db_script/out_mitgliederliste.php");

aufrufen kannst.

Der Include kann nicht gehen, der Include so auf dem Root der Linux-Installation liegen müsste.

Wenn dann müsste es z.B. include("/home/user/public_html/db_scripts/out_mitgliederliste.php"); oder include("./db_script/out_mitgliederliste.php"); heissen. (je nach dem wo das Scirpt liegt)


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#11 14. April 2011 09:50

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] php-script einbinden

Stimmt natürlich ... hatte den Pfad nur auf die Schnelle aus dem Posting kopiert  devil !

Offline

#12 14. April 2011 11:04

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Wenn dann müsste es z.B. include("/home/user/public_html/db_scripts/out_mitgliederliste.php"); oder include("./db_script/out_mitgliederliste.php"); heissen. (je nach dem wo das Scirpt liegt)

Genau das wollte ich wissen.

Steht also für Root?
Dass das nicht ins Uploads-Verzeichnis kommt, ist klar. Wollte nur ein Beispiel aufführen.

#13 14. April 2011 11:07

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] php-script einbinden

nockenfell schrieb:

Wenn du den Include über ein UDT oder ein Plugin Script machst, ist es am einfachsten den Include mit

include $_SERVER['DOCUMENT_ROOT']."/uploads/scripts/meinscript.php";

zu machen. Damit musst du den genauen Pfad zu deinem Webspace nicht kennen und es funktioniert auch nach einem Serverwechsel noch.

So isses am besten!

Offline

#14 14. April 2011 12:17

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] php-script einbinden

Wurst2008 schrieb:

Nein. ./ bedeutet, dass der Pfad im gleichen Verzeichnis beginnt. z.B.:

Im Root: ./uploads/php/script.php
im Ordner php: ./script.php

oder im Umkehrschluss im Ordner php ein Script das in root liegt: ../../script.php


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#15 14. April 2011 20:18

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Ok danke smile

#16 16. April 2011 05:20

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Ich bin zu blöd. Weder über UDT, CMS-Tag oder Smartytag bekomme ich es hin. Es wird einfach nichts angezeigt. Lediglich mit {php} ... {/php}-Tags funktioniert es. Dann allerdings werden sämtliche Zeichen wie ä ö ü €... kryptisch dargestellt.
Spricht etwas gegen das embed-Tag? Damit funktioniert es für mich pefekt.

#17 16. April 2011 10:06

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: [GELÖST] php-script einbinden

Wurst2008 schrieb:

Spricht etwas gegen das embed-Tag? Damit funktioniert es für mich perfekt.

Wenn das tatsächlich der Fall ist, dann spricht da nichts dagegen wink


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

#18 17. April 2011 05:44

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] php-script einbinden

Ist das ein Open Source Script, was man mal testen könnte ?

Offline

#19 17. April 2011 11:09

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Nein! Aber ich kann es Dir gerne mal zur vertrauensvollen Einsicht schicken, da es zum Teil auch mir gehört.
Es macht nichts anderes als eine relativ kleine Datenbank mit ca. 200 Datensätzen zu bearbeiten. Anfänglich habe ich es mal selbst geschrieben, aber nur zum Datenabruf. Diese Daten dann zu bearbeiten ging über meine PHP/MySQL-Kenntnisse (die inzwischen wieder völlig weg sind) weit hinaus. Jetzt bietet es je nach Userberechtigung die Möglichkeiten Lesen, Bearbeiten, Löschen.

#20 17. April 2011 17:53

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Spricht etwas gegen das embed-Tag? Damit funktioniert es für mich perfekt.

Nehme das erst mal zurück. Auf dem lokalen Server klappt es, aber auf dem richtigen nicht. Das Frame wird von der Höhe einfach abgeschnitten und der Inhalt ist nicht wirklich lesbar.
Da es auf dem lokalen Server funktioniert, weiß ich wieder mal nicht wo ich ansetzen soll.
Hier mal ein Link:
atc.landgraf-net.de/
Menüpunkt Verwaltung, Zugang:
User: test
PW: testest

Beitrag geändert von Wurst2008 (17. April 2011 17:54)

#21 17. April 2011 19:01

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] php-script einbinden

Was mir mal grundsätzlich auffällt:

<script type="text/JavaScript">
<script type="text/javascript" src="js/jquery-1.2.6.js"></script>

<script type="text/javascript" src="js/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="js/startstop-slider.js"></script>
...

Die Verlinkungen der JS Dateien gehören nicht in ein <script type="text/JavaScript">. Zudem rufst du jquery 2x auf. Aktuell wäre zudem jquery 1.5.x

Korrekter code:

<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="js/startstop-slider.js"></script>
<script type="text/JavaScript">
....

Zudem hast du beim iframe im Moment eine falsche URL mit localhost hinterlegt.

Zum embed Plugin. Ich würde die modifizierte Version von NaN nehmen. Die bordeigene ist ein wenig verkorkt (Die Anzeige erfolgt rein über JavaScript). Ich habe hier eine für mich angepasste Version:

<?php
#CMS - CMS Made Simple
#(c)2004 by Ted Kulp (wishy@users.sf.net)
#This project's homepage is: http://cmsmadesimple.sf.net
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

#Author: Sorin Sbarnea / INTERSOL SRL
function smarty_cms_function_btembed($params, &$smarty) {

    $hide_iframe = 'no';
    if(isset($params['hide_iframe']) && ($params['hide_iframe']==true || $params['hide_iframe']=='true'))
        $hide_iframe = 'yes';
        
    $iframe_id = "myframe";
    if(isset($params['iframe_id']) && !empty($params['iframe_id']))
        $iframe_id = trim($params['iframe_id']);
    
    $width='width:99%;';
    $height='';
    if(isset($params['width']) && $params['width']!='') {
        $width = 'width:'.trim($params['width']);
        if (substr($width, -2) != "px" and substr($width, -2) != "%")
            $width.="px";
    }
    
    if(isset($params['height']) && $params['height']!=''){
        $height = 'height:'.trim($params['height']);
        if (substr($height, -2) != "px" and substr($height, -2) != "%")
            $height.="px";
    }
    
    $style='';
    if(isset($params['style']) && $params['style']!='')
        $style = trim($params['style']);
    

    if (!empty($params['url'])) {
        $url = $params['url'];
    } else 
        return "<pre>Invalid call for embed function.<pre>";

    return   "<iframe id='".$iframe_id."' src='$url' scrolling='no' marginwidth='0' marginheight='0' frameborder='0' vspace='0' hspace='0' style='overflow:visible; ".$width."; ".($hide_iframe=="yes"?'display:none;':'').($height!=''?$height.';':'').$style."'></iframe>";

}

function smarty_cms_help_function_btembed() {
    ?>
    <h3>What does this do?</h3>
    <p>Enable inclusion (embeding) of any other application into the CMS. The most usual use could be a forum. 
    This implementation is using IFRAMES so older browsers can have problems. Sorry bu this is the only known way 
    that works without modifing the embeded application.</p>
    <h3>How do I use it?</h3>
    <p>Just insert the tag into your template/page like: <code>{embed}</code><br></p>
        <h3>What parameters does it take?</h3>
        <ul>
            <li><em>(required)</em>url - the url to be included 
            <li><em>(optional)</em>iframe_id - the id of the iframe
            <li><em>(optional)</em>iframe_id_list - a list of the iframe ids used in the template separated by a comma.</li>
            <li><em>(optional)</em>width - width of the iframe.</li>
            <li><em>(optional)</em>height - height of the iframe.</li>
            <li><em>(optional)</em>style - additional stylesheet.</li>
        </ul>
       <p>If you want dynamic height you must include in your page {embed url=..} and in the header section (advanced tab) you must put {embed header=true}</p>
                                                      
    <?php
}

function smarty_cms_about_function_btembed() {
    ?>
    <p>Author: Sorin Sbarnea&lt;sorin2000@intersol.ro&gt; (remove 2000)</p>
    <p>Version: 1.2 (modified by nockenfell)
    <p>Version: 1.1 (modified by NaN)</p>
    <p>
    Change History:<br/>
    <p>Version: 1.1 - added params width, height, additional styles, custom ids</p>
    <p>Version: 1.0 - initial release</p>
    </p>
    <?php
}

?>

Das ganze als function.btembed.php speichern und im Pluginordner ablegen. Der Aufruf erfolgt mit {btembed ....}. Die Parameter sind gleich wie beim embed tag. Was dieser Tag nicht mehr braucht, ist der Head-Include. Diesen habe ich komplett entfernt.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#22 17. April 2011 21:54

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

Vielen Dank Nockenfell! Ich muss dazu sagen, dass alles noch wie Kraut und Rüben ist und ich eh noch einiges ändern werde, bis die Seite online geht.

Zudem hast du beim iframe im Moment eine falsche URL mit localhost hinterlegt.

Oops, jetzt wo Du es sagst...

Habe alles angepasst wie von Dir beschrieben und auch das btembed-Tag benutzt. Leider gleiches Ergebnis. Der Container hat einfach nur eine bestimmte Höhe und passt sich nicht an den Iframe an. Identisches System auf dem lokalen Rechner und da klappt alles mit jedem Browser. Ich bin ratlos.

Beitrag geändert von Wurst2008 (17. April 2011 21:57)

#23 18. April 2011 04:53

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] php-script einbinden

Kannst du mal den btembed Tag Code posten?

Lösche im Template den {embed header="true"} Tag. Dieser kann auch Probleme verursachen.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#24 18. April 2011 05:14

Wurst2008
Gast

Re: [GELÖST] php-script einbinden

<p>blubb</p>
{btembed url='http://atc.landgraf-net.de/verwaltung/'}
<p>blubb</p>
{btembed url='http://atc.landgraf-net.de/verwaltung/index.php'}

Beide funktionieren nicht. {embed header="true"} Kann ich im Template nicht finden.

Beitrag geändert von Wurst2008 (18. April 2011 05:16)

#25 18. April 2011 05:36

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] php-script einbinden

Wurst2008 schrieb:
<p>blubb</p>
{btembed url='http://atc.landgraf-net.de/verwaltung/'}
<p>blubb</p>
{btembed url='http://atc.landgraf-net.de/verwaltung/index.php'}

Du musst die Höhe des iframes angeben:

{btembed height='500' url=http://atc.landgraf-net.de/verwaltung/index.php'}

{embed header="true"} Kann ich im Template nicht finden.

Es sollte jedoch was ähnliches eingebaut sein. Ev kannst du mal das Template posten. Dann kann ich schauen.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline