Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Sonstige Fragen (http://www.informatikerboard.de/board/board.php?boardid=25)
--- php - Inhalt einer Variable als Code verarbeiten (http://www.informatikerboard.de/board/thread.php?threadid=1885)


Geschrieben von InformaTiger am 18.07.2014 um 12:33:

  php - Inhalt einer Variable als Code verarbeiten

Hallo,
ich habe bereits ein wenig gegoogelt, nur leider hatte ich irgendwie keine Ahnung nach was ich eigentlich genau suchen sollte wenn ich folgendes erreichen möchte.
Gibt es irgendeine Möglichkeit so etwas:
code:
1:
2:
3:
4:
<?php
     $erg = "<p>viel text, viel text, viel text<a href="?p=<?php echo $id; ?>">Link</a>viel text, viel text, viel text.</p>";
     echo $erg;
?>

zu verarbeiten. Das heißt mein Ziel ist es die Variable $erg welche das Ergebnis einer Mysql-Abfrage als php-Code vom Server verarbeiten zu lassen. Dies möchte ich tun da ich den Code für die Webseite ähnlich einem CMS in der Datenbank speichere.

Danke schon im voraus.

smile

Mfg
InformaTiger



Geschrieben von Karlito am 19.07.2014 um 10:56:

 

Hallo Informatiger,

schau dir mal eval() an: http://php.net/manual/de/function.eval.php.

Aber sei Dir bitte der Sicherheitsrisiken bewusst. Du musst sicherstellen, dass kein Fremdcode ausgeführt werden kann.

Gruß,

Karlito



Geschrieben von InformaTiger am 21.07.2014 um 11:51:

 

Hallo Karlito,
genau nach so einer Funktion hatte ich gesucht. Sicherheit ist ein großes Thema: ich hätte mir gedacht, dass ich meinen kompletten Code in eine Datenbank auslagere und ihn dann jenach Seitenid aus der Datenbank lese.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php
	// Zur Datenbank verbinden
	mysql_connect('localhost','root','root') or die(mysql_error());
	mysql_select_db('db_it_01') or die(mysql_error());
	// Seiteninhalt auslesen
	$result = mysql_query('SELECT content FROM `tbl_pages` WHERE page_id=' . $id . ' AND language="' . $lang . '";');
	while($row = mysql_fetch_array($result))
	{
		echo eval($row[0]);
	}
	mysql_close();
?>

Dasselbe Prinzip hätte ich dann für andere Dinge auf der Website auch angewand. Wenn das zu unsicher wäre hätte ich schon eine Zweitlösung: ich schreibe mir benötigte Werte einfach in Cookies
code:
1:
2:
setcookie('stl', $style); // Style in ein Cookie schreiben
setcookie('lng', $lang); // Sprache in ein Cookie schreiben
und habe sie dann auf gewünschten Seiten wie zum Beispiel der download.php auch zur Verfügung.

Mit freundlichen Grüßen
InformaTiger


Forensoftware: Burning Board, entwickelt von WoltLab GmbH