[PHP5] php code generieren und in Session speichern

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

  • [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

    Kommentar


    • #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

      Kommentar


      • #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

        Kommentar


        • #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
          Zuletzt geändert von neroringer; 19.11.2007, 00:05.
          Live is a bitch... so fuck it

          Kommentar


          • #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
            Zuletzt geändert von combie; 19.11.2007, 00:15.
            Wir werden alle sterben

            Kommentar


            • #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

              Kommentar


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

                Kommentar


                • #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

                  Kommentar


                  • #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

                    Kommentar


                    • #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

                      Kommentar


                      • #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.
                        Zuletzt geändert von onemorenerd; 19.11.2007, 02:21.

                        Kommentar


                        • #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ß.

                          Kommentar

                          Lädt...
                          X