Seçenek # 2 çok daha güvenli - sadece durumda birisi DB karşı bir SQL Injection saldırıyı gerçekleştirmek için yönetir, onlar daha sonra sunucu tarafında enjekte PHP yürütmek için gömme işlemi istismar edemez. Onlar için umut olabilir iyi bir phishing veya XSS saldırısı olacaktır.
Başka bir alternatif XML uygun verileri biçimlendirmek ve veritabanında doğru embed kod içine verileri dönüştürmek için bir XSLT saklamaktır. Bu sizin durum için muhtemelen overkill, ama daha ölçeklenebilir ve daha az hata eğilimli yukarıdaki birini daha.
XML versiyonu için EDIT: Skeleton kodu
XML
<video>
<url>http://example.com/video.flv</url>
</video>
XSLT
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="video">
<xsl:element name="embed">
<xsl:attribute name="src"><xsl:value-of select="url/text()" /></xsl:attribute>
<xsl:attribute name="width">500</xsl:attribute>
</xsl:element>
</xsl:template>
</xsl:transform>
PHP
// assuming the XSLT above is stored in SomeTable.transform, and the above XML has been stored in $xml_text
$xml_doc = new DOMDocument();
$xml_doc->loadXML($xml_text);
$xsl_doc = new DOMDocument();
$xsl_doc->loadXML(GetXSLT("flv"));
$processor = new XSLTProcessor();
$processor->importStyleSheet($xsl_doc);
echo $processor->transformToXML($xml_doc);
function GetXSLT($type)
{
$db = mysql_connect("user", "password", "host"); // not sure if I got the order right here, but whatever
$res = mysql_query("SELECT transform FROM SomeTable WHERE type = '$type'"); // should use parameters instead of directly embedding the type here to avoid bugs and exploits, but whatever
$array = mysql_fetch_assoc($res);
return $array['transform'];
}
Bu konuda güzel bir parçası giriş XML oluşturmak için bir sınıf oluşturabilir ve sizin <embed>
etiketi geçmek istediğiniz tüm parametreleri içerebilir olmasıdır. Eğer bunları işlemek için XSLT işleme talimatı eklemek istemiyorsanız, onlar sessizce göz ardı olacak. Görüntülemek istediğiniz temel XML, ve ortam türü başına bir alt sınıfı oluşturmak için bir sınıf yapmak, ve dönüşümleri geçmek için XML oluşturma kolay olmalıdır.