PHP: Köra kod från databas (eval()?)

Permalänk
Hedersmedlem

PHP: Köra kod från databas (eval()?)

Jo, jag vet hur eval() funkar i grunden, men jag har ett lite klurigare problem.
I alla länkar på min nyhetssida har jag tidigare skrivit ut vissa PHP-variabler med "<?=$variabel?>".
Nu har jag gjort ett nyhetssystem (PHP/MySQL), och det funkar ju inte lika bra längre som det gjorde när jag bara skrev allt manuellt. Om jag bara läser från databasen och skriver ut så blir det ju PHP-taggar på sidan istället för att PHP går igenom det man skriver ut.
Går detta att lösa?

Det är alltså blandat HTML och PHP, med en länk som skrivs ut t ex som <a href="sida.php&t=<?=$bla?>">sida.php</a>.

Går det ens? =/

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem

Hmm testa med nått i stil med..

eval("?>$string<?php");

Visa signatur

~ When there's no more room in hell, the dead will walk the earth. ~

Permalänk
Medlem

Är det bara små PHP-bitar (t ex <?=$bla?>) så kan man med lite (kanske mycket) krångel lösa det med preg_replace_callback().

edit: Meh, att jag inte tänkte på det.
Testa lite med det och märkte att <?= inte fungerade, utan man får helt enkelt skriva <?php echo.

Permalänk
Hedersmedlem

Självklart! Att jag inte tänkte på det!
Nu har jag bytt ut alla små PHP-bitar mot en "egen" slags variabel i nyheterna, som jag sedan byter ut med str_replace när den skriver ut på sidan.
Tack!

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS