[PHP5] php code generieren und in Session speichern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [PHP5] php code generieren und in Session speichern

    Hallöchen,

    ich kämpfe derzeit mit einem Problem beim Abspeichern von "generiertem" Code in eine session.


    Unzwar geht es um folgendes:

    Ich hab ein Script dass mir die Variable $HTML anreichert, also durch verschiedene Selects und foreach schleifen entsprechend <table>, <tr> und <td> tags erstellt / füllt.

    da ich das aber ausserhalb meines Scripts darstellen muss (auf einer anderen Seite), möchte ich das Ergebnis in eine Session abspeichern, nur furnktioniert das nicht so wie ich mir das vorstelle.

    PHP Code:
    $_SESSION['whatEver'] = $html
    speichert er zwar, aber er erzeugt die Ergebnisse nicht, d.h. er speichert das PHP script, und da alle foreach schleifen und Variablen auf der Seite nicht gefüllt sind / nicht existierend ist das logischerweise leer

    kann mir jemand zu einem Lösungsansatz verhelfen? gibts ne Methode ähnlich echo, die mir den Code generiert?

    Vielen Dank im vorraus

    Schönen Abend noch
    Live is a bitch... so fuck it

  • #2
    http://de3.php.net/manual/de/function.eval.php
    oder
    Beispiel 2183 aus: http://de3.php.net/manual/de/functio...r-register.php
    Wir werden alle sterben

    Comment


    • #3
      danke für die schnelle antwort.

      auf eval bin ich auch schon gekommen, schmeisst bie mir aber folgenden fehler:

      Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\webapp\gobiente_cms_int\gobiente\Viewer\TravelPlan.php(257) : eval()'d code on line 1
      ka wieso, syntaktisch sind keine Fehler drin...

      das andere Stream dingens hab ich noch nicht ganz kapiert, muss ich mich einlesen...!
      Live is a bitch... so fuck it

      Comment


      • #4
        PHP Code:
        <?php
        eval('?>'.$_SESSION['whatEver'].'<?php');
        ?>
        Pass aber bloß auf, dass da kein Usercode zur Ausführung kommen kann!!
        Wir werden alle sterben

        Comment


        • #5
          das ergibt:
          PHP Code:
          Parse errorsyntax errorunexpected $end in D:\xampp\htdocs\webapp\staging\asdf\typo3conf\ext\page_php_content\pi1\class.tx_pagephpcontent_pi1.php(55) : eval()'d code(6) : eval()'d code on line 1 

          und muss ich nicht die $HTML variable evaluieren, bevor ich sie dann "generiert" in die Session schreib?

          ich verzweifle
          Last edited by neroringer; 18-11-2007, 23:05.
          Live is a bitch... so fuck it

          Comment


          • #6
            und muss ich nicht die $HTML variable evaluieren, bevor ich sie dann "generiert" in die Session schreib?
            Das kannst nur du wissen...
            Bis jetzt habe ich noch nicht wirklich verstanden, "was" du "warum" machen willst
            Ich brauchte so einen Kram noch nie!
            Gespielt habe ich damit schon, aber als unnötig klassifiziert
            Siehe: http://www.technischedaten.de/pmwiki...ysqlUrlWrapper
            Last edited by combie; 18-11-2007, 23:15.
            Wir werden alle sterben

            Comment


            • #7
              ich glaube ich brauche es genau anders herum.

              ich habe - einfach ausgedrückt - eine variable.


              PHP Code:
              $wasauchimmer "Dies ist ein test";
              $html "<table> <tr> <td>$wasauchimmer"
              dann mache ich

              PHP Code:
              $_SESSION[whatEver] = $html
              PHP Code:
              print_r($_SESSION[whatEver
              ergibt leer.

              er macht zwar die HTML Tags für den Table, aber $wasauchimmer wird nicht gewandelt...
              Live is a bitch... so fuck it

              Comment


              • #8
                Schau dir mal ob_start() und Kollegen an.

                Comment


                • #9
                  Erstmal:
                  PHP Code:
                  // es heisst
                  $_SESSION['index'];

                  // und nicht

                  $_SESSION[index]; 
                  Mit letzterem suggerierst du dem Interpreter, dass "index" eine Konstante ist, und kein String.

                  Und zu deinem eigentlichen Problem: session_start() steht am Anfang aller Dateien, die die Session nutzen?
                  Nieder mit der Camel Case-Konvention

                  Comment


                  • #10
                    ja, ich hab das nur so hingepfriemelt gerade.

                    Die Session an sich funktioniert, er speicherts nur falsch ab, generiert die variablen in den variablen nicht...

                    Live is a bitch... so fuck it

                    Comment


                    • #11
                      PHP Code:
                      <?php
                      $wasauchimmer 
                      "Dies ist ein test";
                      $html 'Siehe da: <?php echo $wasauchimmer ; ?> Geht doch! ';
                      $_SESSION['whatEver'] = $html;
                      eval(
                      '?> '.$_SESSION['whatEver']);
                      ?>
                      Wir werden alle sterben

                      Comment


                      • #12
                        Ich sehe irgendwie den Sinn nicht. Warum sollte man sowas machen und warum muß es mit eval() sein? Folgender Schnipsel macht genau das selbe wie Combies letzter ...
                        PHP Code:
                        $wasauchimmer "Dies ist ein test";
                        echo 
                        'Siehe da: '.$wasauchimmer.' Geht doch! '


                        Wenn es um den Transport einer vorgefertigten Ausgabe innerhalb der Session geht, hilft Combies Vorschlag sowieso nicht.
                        In der Session steht der String '... $wasauchimmer ...'. Wenn man das im nächsten Request eval't, ist $wasauchimmer gar nicht definiert.
                        Last edited by onemorenerd; 19-11-2007, 01:21.

                        Comment


                        • #13
                          @neroringer

                          Die richtige Antwort ist schon gefallen. Lies dir (wie bereits geschrieben) mal den Teil der Doku bei ob_start() durch. In Kombination mit echo (watt n Wunder) kannst du damit Wunder bewirken.

                          Ob dein ganzes Vorhaben wirklich sinnvoll ist ist natürlich wieder ne Andere Frage, aber um die ging es hier ja nicht.
                          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                          Comment

                          Working...
                          X