OT-Teil von: mysql table soll include einbinden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Zitat von piratos
    Na haste etwas gefunden? Aber die hunderte JS evals nicht ?
    Die bringt Dojo mit. Außerdem sind JS-evals nicht gleichzusetzen mit PHP-evals. Also lassen wir JS bitte außen vor.

    Tja man muss unter zend eval oder zend_eval_string einsetzen (wenn der server das her gibt) um einen PHP Code der in einer Variablen steckt ausführen zu können.
    Falsch. Muss man nicht. Siehe oben.

    Das ist zu einfach, da Inhalte aller Art heute in DB's gehalten werden, d.h. der Inhalt liegt in einer VAR vor und der Inhalt kann seinerseits Verweise auf weitere z.B. Plugins enthalten.
    Du sprichst davon, dass in der DB Daten stehen, die PHP-Code enthalten. Da ist ein grundsätzlicher Designfehler! Es geht nicht darum, wie man mit diesem Fehler am besten umgeht, ob mit eval() oder Alternativen. Der Fehler gehört vermieden/beseitigt. Es ist einfach nicht notwendig, dass PHP-Code irgendwann in einer Variablen vorliegt und ge-eval't werden muss.

    Kommentar


    • #32
      Zitat von piratos
      Na haste etwas gefunden? Aber die hunderte JS evals nicht ?
      Was hat das PHP Framework mit JS zu tun?

      Zitat von piratos
      Tja man muss unter zend eval oder zend_eval_string einsetzen (wenn der server das her gibt) um einen PHP Code der in einer Variablen steckt ausführen zu können.
      Bitte Datei und Codezeile angeben. Nachdem sich die erste Behauptung als Blödsinn rausgestellt hat, glaub ich dir nix mehr ohne Quellenangabe, du "Fachmann".

      Zitat von piratos
      View beschränkt sich normal darauf simple zwischen ob_ Bereich ein externes Script zu includen und damit auszuführen und das Ergebnis abzufangen.
      _Du_ warst derjenige, der behauptet hat, dass es eval() verwendet, nicht ich.

      Zitat von piratos
      Das ist zu einfach, da Inhalte aller Art heute in DB's gehalten werden, d.h. der Inhalt liegt in einer VAR vor und der Inhalt kann seinerseits Verweise auf weitere z.B. Plugins enthalten.
      Aha. Sagt wer? Der Fachmann persönlich?

      Zitat von piratos
      Das kann eine Engine wie Smarty perfekt.
      Smarty kann nur eines Perfekt: Bugs produzieren.

      Zitat von piratos
      Und nun verrat mir doch einmal - ich arbeite normal nicht mit Zend - wie Zend das machen würde .
      Zend Framework: Documentation

      Kommentar


      • #33
        Zitat von piratos
        Tut mir leid, jeder der sich mal mit CMS - Entwicklung beschäftigt hat wird dir sagen, das dieses ein gediegener Unsinn ist - veraltete Ansicht.
        Ob das nun direkter Code ist oder indirekter (z.B. Smarty) ist dabei völlig unerheblich.
        Ich hab mich mal mit CMS-Entwicklung beschäftigt und behaupte das Gegenteil.

        Und jetzt?

        Kommentar


        • #34
          Zitat von piratos
          Mal - ok , ich mache das aktuell jeden Tag.

          Solltest dir mal neue Erfahrungen zulegen oder auch nicht, ganz wie du willst.

          Der Unterschied besteht in Erfolg oder eben nicht.
          Ich hab genug Erfolg und Erfahrung und ich bleib bei meiner Meinung.

          Kommentar


          • #35
            Zitat von piratos
            Nur wenn man keine Ahnung davon hat. Aber das kann man sich schnell aneignen, das haben schon viele tausend Anwender von Shop und CMS geschafftm warum du also auch nicht.
            LOL! Ich war schon oft genug damit beschäftigt die Bugs von Smarty auszubessern oder zu umgehen. Bei mir brauchst du nicht mit dieser "wenn man keine Ahnung hat" Rede daherkommen.

            Nur weil viele tausende Anwender gerade mal an der Oberfläche gekratzt haben und dabei keine Probleme haben, muss es noch lange nicht bedeuten, dass sie Ahnung haben.

            Kommentar


            • #36
              OffTopic:

              Also man könnte den Thread hier bei #10 abhaken und den Rest ins Offtopic verschieben :

              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #37
                Zitat von piratos
                Nun ich wollte dir nicht auf die Füsse treten.
                Ich nehme an das du Probleme mit dem Einsatz der Smartyscriptsprache meinst, die Engine selbst ist ausserordentlich stabil.
                Das sind keine Smartybugs das sind dann selbst fabrizierte über Templates, das muss man schon unterscheiden.
                Du hast dich also mit den Fehlern anderer auseinandergesetzt, die im Zusammenhang mit Templates stehen.
                Also kurz gesagt: Wenn ein Fehler auftritt, ist immer derjenige Schuld, der das Template geschrieben hat, und niemals Smarty selber. Hab ich das korrekt so zusammengefasst?

                Kommentar


                • #38
                  Zitat von piratos
                  Tut mir leid, jeder der sich mal mit CMS - Entwicklung beschäftigt hat wird dir sagen, das dieses ein gediegener Unsinn ist - veraltete Ansicht.
                  Ob das nun direkter Code ist oder indirekter (z.B. Smarty) ist dabei völlig unerheblich.
                  Ich kenne dein CMS nicht. Erzähl doch mal, wie es funktioniert!
                  Kann der CMS-User in eine Textarea beliebigen PHP-Code schreiben, der wird dann in der DB gespeichert und beim Aufruf der Seite ge-eval't?
                  Junge junge, so ein Produkt würde ich niemandem empfehlen!

                  Was du weiter oben beschreibst, lösen andere CMS ungefähr so: Ein Modul bietet einen Block an. Der CMS-User kann den Block auf der Seite platzieren und ggf. konfigurieren. Bei der Konfiguration kann er vielleicht weitere Blöcke von anderen Modulen "einbetten". Dazu genügt aber ein Auswahldialog und ggf. weitere Konfigurationsschritte. Der CMS-User muss und darf keine einzige Zeile Code schreiben. Das ist sicher. Das ist einfach. Das ist gut.

                  Kommentar


                  • #39
                    Zitat von piratos
                    Smarty selbst ist seit langer Zeit so gut wie Bug frei, die Frage kannst du dir selbst bestätigen.
                    Komisch, dass ich dann immer wieder neuen Bugs über den Weg laufe.

                    Kommentar


                    • #40
                      Ich will dein CMS aber nicht erst runterladen, installieren und durchklicken müssen.
                      Warum bist du nicht bereit, kurz zu beschreiben wie und warum du in deinem CMS eval() einsetzt? Soviel Gesprächsbereitschaft muss schon sein.

                      Kommentar


                      • #41
                        Habs inzwischen mal runtergeladen und nach eval() gesucht. Erster Fundort /lib/classes/class.usertagoperations.inc.php:54
                        PHP-Code:
                        if (!(@eval('function '.$functionname.'(&$params, &$smarty) {'.$code.'}') === FALSE)) 
                            
                        $result call_user_func_array($functionname, array(&$params, &$smarty)); 
                        Ein weiterer Treffer in verwaltung/adduserplugin.php:81
                        PHP-Code:
                        @ob_start();
                                    if (eval(
                        'function testfunction'.rand().'() {'.$code.'}') === FALSE)
                                    {
                                        
                        $error[] = lang('invalidcode');
                                                        
                        $buffer ob_get_clean();
                                                        
                        $error[] = preg_replace('/<br \/>/'''$buffer );
                                        
                        $validinfo false;
                                    }
                                    else
                                        
                        ob_end_clean(); 
                        Du verwendest eval() hier beide Male um zu prüfen, ob der Code, der offensichtlich vom CMS-User eingegeben wurde, valider PHP-Code ist. Liege ich damit richtig?
                        Was passiert, wenn der CMS-User "} unlink(__FILE__); {}" eingibt?
                        Zuletzt geändert von onemorenerd; 06.10.2009, 16:39.

                        Kommentar


                        • #42
                          eval in Templates ist ja eine Sache, um sehr einfach irgendwelche foreachs, etc. in HTML einzubetten, hat so aber nichts mit Smarty zu tun, weil dieses im Endeffekt nur wieder PHP erzeugt und per include + ob rendert.
                          Deine function-Konstrukte sehen dagegen sehr abenteuerlich aus. Schon mal php -l auf der CLI verwendet? In Kombination mit einer temporären Datei oder Shell-Pipes eine klasse und saubere Sache.

                          Kommentar


                          • #43
                            Zitat von piratos
                            Und von den zahlosen Templateengines die ohne eval das machen können hätte ich gerne noch weitere Referenzen.
                            Gerade ist mir was über den Weg gelaufen: Templating Engines in PHP - Fabien Potencier Dieses Twig kommt ebenfalls ohne eval() aus.

                            Das ist übrigens die erste Template Engine, die ich kenne, die sich für DSLs eignet. Denn man kann die Template-Sprache nicht nur erweitern, sondern auch bestehende Tags überschreiben und sogar den AST manipulieren. Das sind Features, die PHP als Template Engine nicht bietet und damit hat Twig eine echte Daseinsberechtigung.

                            Kommentar


                            • #44
                              Zitat von onemorenerd Beitrag anzeigen
                              Habs inzwischen mal runtergeladen und nach eval() gesucht. Erster Fundort /lib/classes/class.usertagoperations.inc.php:54 ... Du verwendest eval() hier beide Male um zu prüfen, ob der Code, der offensichtlich vom CMS-User eingegeben wurde, valider PHP-Code ist. Liege ich damit richtig?
                              Was passiert, wenn der CMS-User "} unlink(__FILE__); {}" eingibt?
                              http://de.php.net/manual/en/function...eck-syntax.php

                              Da gibts eine Riesenmenge von Userkommentaren, die das PHP-Syntax-Checking-per-Eval()-Problem in den Griff zu bekommen versuchen. Da werden geschweifte Klammern gezählt und halbe PHP-Quellcode-Parser gebaut. Einige Ansätze funktionieren sogar. ;-)

                              Die Funktion selbst war leider nur kurze Zeit offizieller Bestandteil von PHP.
                              Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                              Kommentar


                              • #45
                                Danke Piratos fuer deine Vorlage, ich habe es jetzt hinbekommen.
                                Ich habe es fuer meine Website so in der index.php verwendet

                                PHP-Code:
                                <?php include($item['include']);?>

                                Kommentar

                                Lädt...
                                X