eval, sessions, register globals off und templates

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

  • eval, sessions, register globals off und templates

    hallo, ich muss nochmal nerven

    meine site besteht aus templates, die in der datenbank liegen. in den templates sind variablen, u.a. session vars, die vor der ausgabe ihren wert durch eval bekommen...

    jetzt mein problem:

    die session vars hiessen in den templates z.b. einfach nur $variable, mit register globals off funzt das ja nicht mehr. wenn ich $_SESSION['variable'] in den templates benutze, spielt wegen der '' eval nicht mit...ich habs dann letztendlich mit mit $_SESSION[variable] probiert und es schien gestern abend auch zu funzen, aber heute irgendwie nicht mehr . ich hab mal in die session reingesehen und festgestellt, dass es ohne '' nur teilweise in die session geschrieben wird. wie kann ich eval den verklickern diese form $_SESSION['variable'] zu verstehen?

  • #2
    escapen.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      ich weiss aber nicht wie

      Kommentar


      • #4
        Code:
        [u]normal :[/u] "
        
        [u]escaped:[/u] \"
        und im forum kann man auch nach escaped suchen.

        aber wenn man zu faul ist, braucht man sich auch nicht wundern, wenn man irgendwann keine hilfe(n) mehr bekommen. nur also info am rande.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          das template an sich ist vor eval escaped, sonsts hätte das ja nie mit eval hingehauen, nur anscheinend falsch...wenn ich jetzt '' benutze sieht mein template vor eval so aus

          EDIT: kann ich auch im code nich vernünftig anzeigen
          EDIT:
          by TobiaZ: dann lass das CODE doch weg



          $_SESSION[\'variable\']


          und das haut nicht hin, und da hat mir leider keine suchfunktion geholfenh
          Zuletzt geändert von TobiaZ; 16.11.2003, 14:58.

          Kommentar


          • #6
            rall ich jetzt nicht.

            \\\" könnte es das sein?

            Ich kann ehrlich gesagt deinen sinn der Umsetzung der Templates nicht so ganz verstehen, obwohl ich sie nachvollziehen kann.
            EDIT:
            wenn du editierst, dann am besten so, dass das post noch sinnvoll strukturiert ist.

            Kommentar


            • #7
              machen wir mal ein beispiel. Wie sieht dein Template aus?

              Kommentar


              • #8
                Original geschrieben von TobiaZ

                \\\" könnte es das sein?

                ja

                Kommentar


                • #9
                  ist dann übrigens nur doppelt escaped.

                  Kommentar


                  • #10
                    hier mal ein teil

                    in der db so:

                    Code:
                     
                            <td><form action="register.php?ycs=$_SESSION[\'sid\']" method="post" enctype="multipart/form-data" name="registerquick">
                              <table border="0" align="center" cellspacing="1" width="100%" bgcolor="{bordercolor}">
                    
                    vor eval so
                    
                    
                    <td><form action=\"register.php?ycs=$_SESSION[\'sid\']\" method=\"post\" enctype=\"multipart/form-data\" name=\"registerquick\">
                              <table border=\"0\" align=\"center\" cellspacing=\"1\" width=\"100%\" bgcolor=\"{bordercolor}\">
                    gff quoten

                    Kommentar


                    • #11
                      ein ordentliches TPL-system kommt übrigens ohne eval aus, denke ich.

                      warum hast du den zwei arten von platzhaltern?

                      Kommentar


                      • #12
                        ich hatte vorher sogar 2 arten, {} für farben..., ## für alles andere

                        da musste mit der zeit aber immer mehr ersetzt werden und ich dachte mir das kanns nicht sein, deshalb hatte ich es mit eval probiert mit den üblichen fehlermeldungen, weil das template nicht escaped war...

                        ich hatte dann nach dem problem gesucht und das

                        PHP-Code:
                        return str_replace("\"","\\\"",$template); 
                        gefunden, so funktionierte eigentlich alles wunderbar, bis ich mich entschlossen hab den ganzen kram zu überarbeiten, und jetzt scheitert es an hochkommas

                        Kommentar


                        • #13
                          Naja, dennnoch solltest du dich mal entscheiden, welche Platzhalter du jetzt nimmst. Nichts geht über ein gutes Konzept.

                          Kommentar


                          • #14
                            wirste wohl recht mit haben

                            aber gib mir lieber nen tip, wie ich vernünftig das template escape, damit das auch mit den hochkommas hinhaut

                            Kommentar


                            • #15
                              nee, bestimmt nicht! Du hast jetzt soviele tipps bekommen, wie man escaped. das sollte jetzt langsam mal selbstständig klappen!!!

                              Kommentar

                              Lädt...
                              X