PHP Quellcode mit Variablen in MYSQL Speichern und zur Laufzeit interpretieren.

crx_ed9

Grünschnabel
Hallo @all,

also ich versuche einen PHP Quellcode in einer Datenbank abzulegen.
Offensichtlich bin ich zu beschränkt diesen korrekt durch php Interpretieren zu lassen.

Aktuell geht es um ein kleines Beispiel, welches ich wie folgt darstellt:

MySql Quelltext:
PHP:
$string = $_REQUEST['UID'];

Zum Auslesen der Daten gehe ich wie folgt vor:

PHP:
    $con = mysql_connect($dbhost, $dbuser, $dbpwd) or exit(mysql_error());
    mysql_select_db($dbname, $con) or exit(mysql_error());
		    mysql_select_db($dbname, $con) or exit(mysql_error());
    $sql="select * from `$dbname`.`html` where `name`='test_php'";
    $daten=mysql_query($sql);
    $ergebnis=mysql_fetch_array($daten);
	$phpCDE=$ergebnis['code'];

			
$str = $phpCDE;

eval ("\$str = \"$str\";");
echo $str . "\n";


Rufe ich nun dieses Test-Script auf (blabla.de/test.php?UID=12), erhalte ich entweder eine Fehlermeldung, und wenn ich diese ausmerze erhalte ich nachfolgende ausgabe:
$string = $_REQUEST['UID'];

Also Interpretiert sieht mir das nicht aus ;(


Ich bin für jeden Vorschlag offen.


Grüße aus der Stadt im Quadrat


CRX-ED9
 
Zuletzt bearbeitet:
Hi,

naja wenn du dir das mal so anschaust wirst du feststellen das

$str = $phpCDE;

der Code

$string = $_REQUEST['UID'];

sprich

$str = '$string = $_REQUEST['UID'];';

naja und da sind ' in REQUEST und das wird wohl den Fehler ausmachen... und bitte verwende statts $_REQUEST -> $_GET
 
@ne0hype

klar das mit $_request sollte auch nur zu Verprobung fungieren und wird später so nicht mehr verwendet.
Und wie würde ich an den übergeben Wert kommen?

Ansonsten erstmal Danke für die Antwort, ich werde weiterhin mich daran versuchen.

Besten Dank
 
Zuletzt bearbeitet:
Dieses Beispiel zeigt wie du es lösen kannst ob das jetzt auch so super ohne die ' ist weiss ich nicht

PHP:
<?php
$str = '$_GET[UID]';

eval ("\$str = \"$str\";");
echo $str . "\n";  

?>
 
Danke, so wie deine Mail eingetroffen ist, habe ich es auch hinbekomen.
PHP:
$con = mysql_connect($dbhost, $dbuser, $dbpwd) or exit(mysql_error());
mysql_select_db($dbname, $con) or exit(mysql_error());
mysql_select_db($dbname, $con) or exit(mysql_error());
$sql="select * from `$dbname`.`html` where `name`='test_php'";
$daten=mysql_query($sql);
$ergebnis=mysql_fetch_array($daten);
$phpCDE=$ergebnis['code'];
eval ("\$phpCDE = \"$phpCDE\";");
echo $phpCDE . "\n";
?>

Hab besten Dank.

Liebe Grüße


CRX-ED9
 
Theoretisch wäre es möglich, aber mit welchem Ziel?

[phpf]eval[/phpf] ist ansich eine "böse" Funktion und sollte (meiner Meinung nach) gar nicht benutzt werden.

Was ist denn dein Plan?
 
dann sitze ich huete effektiv auf meiner Leitung,

ich habe eine kleine Schleife eingefüg und beim auslesen bekomme ich den Fehler hier:

Parse error: syntax error, unexpected T_STRING in htdocs/html/test2.php(14) : eval()'d code on line 3
for($i=0;$i<100;$i++) { echo "ich bin User mit UserID $_GET[UID] und laufe in der Schleife $i\n"; }
 
Zuletzt bearbeitet:
na das sind dann so aus:
PHP:
$str = 'for($i=0;$i<100;$i++) { echo "ich bin User mit UserID $_GET[UID] und laufe in der Schleife $i\n"; }';
eval ("$str");
 
Zurück