PHP Funktion in Text ausführen, welcher aus Datenbank ausgelesen wird?
Guten Tag,
Und zwar möchte ich bei einer Website mittels Datenbank und einer PHP Funktion einen Text auslesen. In diesem Text sind Öffnungszeiten drinnen, welche von einer anderen Datenbank ausgelesen werden soll. Also steht dann im Text: <?php oeffnungszeitenAusgeben() ?>.. doch diese Funktion wird leider nicht ausgeführt und wird auskommentiert. Kann mir wer sagen, wie ich das fixen kann?
PS: Falls ihr euch fragt, warum ich die Öffnungszeiten aus einer Datenbank auslese und nicht einfach hinschreibe... Die Öffnungszeiten tauchen 3 mal auf und per Login kann man die Öffnungszeiten ändern
4 Antworten
doch diese Funktion wird leider nicht ausgeführt und wird auskommentiert.
Dann mach die Kommentarzeichen weg. Wer kommentiert das denn aus?
Alex
Wenn die Öffnungszeiten ausgegeben werden sollen muss das entweder so aussehen:
<?php echo $oeffnungszeitenAusgeben; ?>
oder in der Kurzscheribweise so:
<?=$oeffnungszeitenAusgeben?>
Hi,
normalerweise wird ein Text aus einer Datenbank als Text behandelt und nicht als php code.
Das ist prinzipiell wichtig für die Sicherheit eines Systems. Stell dir vor, jemand schreibt auf einer Seite wie dieser (gutefrage.net) php Code in eine Antwort und dieser wird ausgeführt anstatt ausgegeben. Dann könnte ja jeder hier machen was er will.
Was du suchst, ist eine Funktion wie eval()
https://www.php.net/manual/de/function.eval.php
Aber Vorsicht! PHP Code in die Datenbank zu schreiben und diesen dann auch auszuführen ist weder ein sichere, noch eine saubere Art, eine System zu programmieren.
Besser ist, du schreibst in die Datenbank nur eine Ziffer und wertest diese mittels if/else oder swich/case in php aus. Beispiel:
if ($result == '1')
{
oeffnungszeitenAusgeben();
}
elseif($result == '2')
{
andereZeitenAusgeben();
}
und so weiter
Viel Erfolg,
T.
$db = new mysqli ('localhost', 'benutzer', 'passwort',' Datenbankname'),
$sql = "SELECT * FROM Tabellennamen";
$query = mysqli_query($db,$sql);
$row = mysqli_fetch_array($query);
$oeffnungszeitenAusgeben = $row['Name von Oeffnungszeiten was in der Tabelle steht'];
<?php echo "$oeffnungszeitenAusgeben"; ?>
Wenn deine Funktion die Struktur hat dann ist es richtig:
<?php
/* Defining a PHP Function */
function writeMessage() {
echo "Ich bin eine Nachricht!";
}
/* Calling a PHP Function */
writeMessage();
?>
Ansonsten würde es helfen den Quelltext zu sehen ansonsten wird es schwer dir zu helfen.
<!--?php echo $oeffnungszeitenAusgeben; ?-->