kostenloser Webspace werbefrei: lima-city


eval() + html...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    itgchris

    itgchris hat kostenlosen Webspace.

    Also, ich habe einen tag/string">String die wird dynamisch erzeugt, d.h. ihr Inhalt verändert sich immer...
    In dem String wird PHP & HTML angewand...
    PHP wird mit <script language="php> // PHP - Code </script> aufgerufen...

    Nun w&#252;rde ich aber gerne alles was zwischen <script></script> steht eval() so das ich keinen String mehr habe sondern den PHP-Code, wie gehe ich an sowas ran?!
    Hier mal eine Beispieldatei:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>TestTest</title>
    <style type="text/css">
          div.qtext {background-color: #ffdead; padding: 2pt}
          div.atext {background-color: #ffefd5; padding: 2pt}
          div.stext {background-color: #ffefd5; padding: 2pt; color: blue}
          div.question {border-style: solid; border-width: 1px; border-color: black; margin-top: 1em;}
          span.fnum {color: red; font-weight: bold;}
          td.progon {background-color: #ffdead;font-size:12px;line-height:11px;border:1px solid #d3d3d3; } 
          td.progoff {background-color: white; font-size:12px;line-height:11px;border:1px solid #d3d3d3; }
        </style>
    </head>
    <body>
    <h1>Test</h1>
    <script language="php">
      $inserts = "";
      $db_host = 'localhost';
      $db_pass = '';
      $db_user = 'chrissql1';
      $db_name = 'chrissql1';
      $db_table = 'myxq_1';
    
      
      $inserts[] = "f1=" . ($_POST['f1']?$_POST['f1']:0);
    
      $inserts[] = "f2=" . ($_POST['f2']?$_POST['f2']:0);
    
    
      $insert = "insert into $db_table set " . join(",", $inserts);
      @mysql_connect($db_host, $db_user, $db_pass);
      @mysql_select_db($db_name);
      </script><script language="php">
           $x=substr($_POST['id'], 0, 4);
           $y=substr($_POST['id'], 4, 2);
           $sec=$x."volvic123myxq_1";
           $sec=strtoupper(base_convert(substr(base_convert(substr(md5($sec), 0, 8),16,2),-10),2,36));
           if(strlen($sec)==0) $z="00";
           elseif(strlen($sec)==1) $z="0${sec}";
           else $z = substr($sec,0,2);
      </script><script language="php">
           $r=@mysql_query("select * from $db_table where id='$x$y'");
           if ($y != $z ) {
      </script><script language="php">
           } else if (mysql_num_rows($r)) {
      </script><div class="qtext">Ihre ID wurde bereits verwendet.</div>
    
    <script language="php">
           } else {
             $insert = $insert.", id='$x$y'";
             mysql_query($insert);
      </script><div class="qtext">Vielen Dank, f&uuml;r die Umfrage.</div>
    <script language="php">
             }
      </script><div align="right"><font size="-2">Fragebogen erzeugt mit <a href="http://chu.in-chemnitz.de/xquest">XQuest 2.3b</a></font></div>
    </body>
    </html>


    Normalerwei&#223;e w&#228;re das ja ziemlich einfach, wenn nicht immer </script> dastehen w&#252;rde... Aber leider ist demnach nicht so...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Wir w&#228;re es mal mit vern&#252;nftigen S&#228;tzen?
    Man versteht dich kaum.

    Es ist zwar m&#246;glich den <script> Tag zu nehmen, um PHP zu deklarieren, aber normalerweise benutzt man
    <?php
    //php code
    ?>


    Und ich verstehe nicht, warum du jetzt zu eval() greifen willst.
    Schlie&#223;lich m&#252;sste der Code sich doch auch so ausf&#252;hren lassen, sofern das PHP Modul den PHP Teil des Quelltextes erkennt (deswegen solltest du besser die <?php ?> Schreibweise nehmen)

    edit: Hier nochmal ein vern&#252;nftiges Tutorial:
    http://tut.php-quake.net/grundlagen.html


    Beitrag geändert: 8.11.2007 8:22:37 von bladehunter
  4. Hallo,

    ich denke mal du m&#246;chtest darauf hinaus wie du die php-Teile aus dem Quelltext findest und dann ausf&#252;hren kannst, oder?

    Ich w&#252;rde mir da die Funktion preg_replace_callback() schnappen.
    Diese Funktion kann dir die Teile raussuchen und ruft dann eine funktion auf, die die gefundenen Teile an eine Funktion weiterreicht, die dann das zu ersetzende berechnet.

    In deinem Fall also eine Funktion aufruft die dann eval() aufruft und den erhaltenen Code zur&#252;ck gibt.
    schaus dir erstmal an http://de2.php.net/manual/de/function.preg-replace-callback.php
    Falls es Fragen gibt einfach nochmal stellen.

    Gr&#252;&#223;le
  5. Autor dieses Themas

    itgchris

    itgchris hat kostenlosen Webspace.


    Wir w&#228;re es mal mit vern&#252;nftigen S&#228;tzen?
    Man versteht dich kaum.

    Es ist zwar m&#246;glich den <script> Tag zu nehmen, um PHP zu deklarieren, aber normalerweise benutzt man
    <?php
    //php code
    ?>


    Und ich verstehe nicht, warum du jetzt zu eval() greifen willst.
    Schlie&#223;lich m&#252;sste der Code sich doch auch so ausf&#252;hren lassen, sofern das PHP Modul den PHP Teil des Quelltextes erkennt (deswegen solltest du besser die <?php ?> Schreibweise nehmen)

    edit: Hier nochmal ein vern&#252;nftiges Tutorial:
    http://tut.php-quake.net/grundlagen.html


    Beitrag ge&#228;ndert: 8.11.2007 8:22:37 von bladehunter


    Mir auch klar?!

    Aber dann benutz mal das http://www.huebsch-gemacht.de/programmieren/xslt/
    Und schau dir den Quellcode an. hm...
    Ich m&#246;chte am besten den ganzen String eval'n...
    Also das was ich in [code] geschrieben habe, steht zurzeit in nem String, aber ohne <?php ?> Tag's...
  6. Und schau dir den Quellcode an. hm...


    Meine Kristallkugel ist kaputt.

    http://catb.org/~esr/faqs/smart-questions.html
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!