通过有效的参数我有下面的XML存储2电影ID和他们的头衔PHP检查通过URL在XSLT
<movies
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="test.xsd">
<movie movieID="1">
<title>Movie 1</title>
</movie>
<movie movieID="2">
<title>Movie 2</title>
</movie>
</movies>
我的XSL显示电影标题作为超链接把用户带到movie_details页面显示基于通过URL传递的ID的电影信息。
movies_list.xsl
<xsl:template match="/">
<xsl:text>Movies list</xsl:text>
<xsl:apply-templates select="/movies/movie"/>
</xsl:template>
<xsl:template match="movie">
<xsl:element name="a">
<xsl:attribute name="href">movie_details.php?movieID=<xsl:value-of select="@movieID"/></xsl:attribute>
<xsl:value-of select="title"/>
</xsl:element>
<xsl:element name="br" />
</xsl:template>
这是我movie_details.php文件
<?php
$xml = new DOMDocument();
$xml->load('test.xml');
$xsl = new DOMDocument;
$xsl->load('movie_details.xsl');
$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl);
$params = $_GET['movieID'];
$proc->setParameter('', 'movieID', $params);
echo $proc->transformToXML($xml);
?>
我愿做以下参数验证在movie_details.php:
检查通过URL传递的movieID是否有效a nd存在于XML文件中。如果我手动将浏览器中的URL更改为
myserveraddress.com/movie_details.php?movieID=3
, ,我得到一个空白页面,因为movieID=3
不存在于XML文件中,并且没有任何内容可以显示。如果movieID是无效的,并在XML中不存在,那么我想在网页给我重定向到
index.php
检查movieID参数是通过URL传递的。例如,如果我手动将浏览器中的URL更改为
myserveraddress.com/movie_details.php
,那么该页面应该将我重定向到index.php
,因为URL中没有传递任何参数。
你在哪里碰到这样的障碍? – hakre 2013-03-20 17:29:51
我对PHP很陌生,我不太清楚如何做到这一点。我需要以某种方式检查$ _GET ['movieID']是一个有效的参数。但我怎么能在PHP中做到这一点? – Alex 2013-03-20 17:35:09