eval() + html...
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
frage
fragebogen
funktion
gefundenen teile
greifen
grundlage
http
inhalt
kaputt http
kristallkugel
modul
nehmen
quellcode
schau
schreibweise nehmen
stellen
string
tag
teil
-
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ü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ü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ße wäre das ja ziemlich einfach, wenn nicht immer </script> dastehen würde... Aber leider ist demnach nicht so... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wir wäre es mal mit vernünftigen Sätzen?
Man versteht dich kaum.
Es ist zwar mö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ßlich müsste der Code sich doch auch so ausfü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ünftiges Tutorial:
http://tut.php-quake.net/grundlagen.html
Beitrag geändert: 8.11.2007 8:22:37 von bladehunter -
Hallo,
ich denke mal du möchtest darauf hinaus wie du die php-Teile aus dem Quelltext findest und dann ausführen kannst, oder?
Ich wü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ü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üßle -
Wir wäre es mal mit vernünftigen Sätzen?
Man versteht dich kaum.
Es ist zwar mö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ßlich müsste der Code sich doch auch so ausfü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ünftiges Tutorial:
http://tut.php-quake.net/grundlagen.html
Beitrag geä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ö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...
-
Und schau dir den Quellcode an. hm...
Meine Kristallkugel ist kaputt.
http://catb.org/~esr/faqs/smart-questions.html -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage