PHP + HTML kodu ile PHP eval sorun

4 Cevap php

Ben PHP var ve HTML kodu bir veritabanı tablosunda saklanır. Ben bu verileri olsun, ben HTML yankı ve PHP işlemek gerekir. ("?;> EVALED echo 'dlsj'") Ben çalıştığı, bunun için () eval kullanmak, ben bu eval yaparsam düşündüm; Ben dışarı basılmış dlsjEVALED olsun.

The problem is, I get a fatal error when I run longer scripts. Things like: Parse error: syntax error, unexpected '<' in /home/content.php(18) : eval()'d code on line 1

Müthiş herhangi bir tavsiye =.

Teşekkürler.

4 Cevap

Ben bir açılış <?php etiketi içerir () bir şeyler eval çalışıyoruz olduğunu tahmin ediyorum. Ve eldeki hataya yol açmaktadır.

En iyi tavsiye - sizin veritabanında php ve html kodunu saklamak asla. Ve veba gibi () eval kaçının.

Ben gerçekten yeterli bilgi vermemesi gibi, kodu ile yanlış ne söyleyemem. Ben bazı tavsiyeler var mıydı bile ama, ben iyi vicdan verebilir sanmıyorum.

Bu veritabanında böyle şeyler saklamak gerektirmez, böylece sizin tüm uygulamayı yeniden gerekir. Gerekli neden olacağını hayal bile edemiyorum.

Sadece doğru der ...........

eval('?>' . $content .'<?php');

Sen EVALED sonra tekrar açık php mod gerekir. Apparently Eğer <? yerine tam <?php ile bunu yapmak zorunda.

Bir kural eval kaçınılması gereken gibi. Ama kurallar bozulmak için yapılır. Bazı az dogmatik tavsiye verir http://stackoverflow.com/questions/951373/when-is-eval-evil-in-php bir konu var.

Eğer ne yapmak istediğinize bağlı olarak, önce şablonu kaynak için yerel bir değişken depolanan değişecektir metin, bir şablon dosyası kaynak kullanmak uygun olabilir.

DB yürütülecek kodu saklamak gibi ... Bu uygun genişleme imkanı sağlamak Drupal gibi bazı çerçeveler olur, ama sonra Drupal oldukça iyice güvenlik açıkları için keselenir.

Eğer kendini değiştirerek kod yazıyorsanız Ayrıca o zaman eval () kullanmanız gerekir. Emin değil kimse php o yapmış ama kesinlikle ilginç olurdu.