2016-09-15 76 views
2

我有超过一百个html文件,大致都有相同的结构。 html文件represent each page of a comicPHP或jQuery的动态创建的HTML页面?

当然,我意识到将这些页面的结构应用于一个文件并允许该文件动态创建所有漫画页面会更高效。

我的目标是如此,一个;当用户访问漫画页面时,链接所包含的页码可作为数字值传递以确定图像文件和URL。

two;当用户点击“下一个”或“前一个”时,定义该页面的数字值将被添加或减去一个以加载新的url图像文件。

和三;对于“下一个”和“上一个”按钮来定义自己/根据我已经写过的文件检查来决定是否出现。

<?php 
if ($_GET["img"]) { 
    $imgnum = $_GET["img"]; 
} else { $imgnum = 1; } 

?> 

<html> 
    <div class="block"> 
     <?php echo '<img class="page" src="' . $imgnum . '.png">'; ?> 
    </div> 
</html> 

这个代码的伎俩改变的基础上$imgnum值的图像文件和URL,但是当涉及到传递值到“下一个”和“上一个”按钮,我不知道什么是地狱我正在做。我试图做这个:

<?php $prevValue = $imgnum - 1?> 
<a href="?img=<?php$prevValue?>"><h2 class="arrow">Previous</h2> </a> 

显然,传入一个变量到该键不起作用。有没有什么办法来保存这个PHP方法的按钮的活力?这些按钮需要变量才能自行工作。我必须切换到jquery吗?我诚实地高于一切需要建议从哪里开始。我几乎不知道这个PHP脚本本身发生了什么。

回答

3
<?php 
if ($_GET["img"]) { 
    $imgnum = $_GET["img"]; 
} else { $imgnum = 1; } 

?> 

上面做什么.....

If (the URL string contains the [img] value) { 

    Get the value of [?img=] from the URL string... 
    i.e. index.php?img=4 .. (it is getting the 4) 
    and set the [$imgnum] variable to that value 

} else { 

     But if the URL does NOT contain the [img=] value, 
     then set the variable value to 1 [$imgnum = 1;] 

} 

这很难说你想要什么,但下面将适当增加价值的按钮。

<?php $preValue = $imgnum - 1; ?> 
<a href="?img=<?php echo $preValue; ?>"><h2 class="arrow">Previous</h2> </a> 

PHP行以分号结束......,你必须echo变量,为他们输出到HTML。

我有没有线索什么jQuery和JavaScript与你的问题有关。但是,是的,这可以全部由ajax请求处理,并且每次单击按钮时都不需要重新加载页面。

但是,如果您不明白PHP已经在做什么,那么解释如何通过AJAX来做到这一点将会让您感到格外困惑。和很多你的代码结构的更多需要被看到。

+0

谢谢你解释那段代码!非常有帮助。是的,语法修正确实覆盖了它。继承人页面一直用来测试(这是不好的,把它放在网上?):http://spicyyeti.com/test/dynamic.php – carrmx

+0

消毒该变量作为@拉拉建议是*永远不会*一件坏事。但是,如果您不是基于URL值从数据库提取数据,则注入的可能性很小。过去用PHP来浏览变量(比如上面的代码)并不能为任何可能希望恶意攻击网站的人提供任何真正的“肉”。注入意味着......像http://spicyyeti.com/test/dynamic.php?img=hacked这样的东西,其中的url用于让PHP看到其他东西*而不是预期的东西。 – Scott

3

你正在创建正确的代码,但你忘了回应它。

您需要将行更改为;

<a href="?img=<?php echo $prevValue;?>"><h2 class="arrow">Previous</h2> </a> 

或者你可以使用较短的版本,如果你的PHP。ini配置允许;

<a href="?img=<?=$prevValue?>"><h2 class="arrow">Previous</h2> </a> 

注:

你应该知道SQL注入,并通过保护您的GET变量;

$imgnum = (int)$_GET["img"]; 

当你正在服用的$ _GET值作为一个变量,这个时候,只有整数值将努力使黑客无法注入代码。

+0

啊,语法错误。典型的我。不过,我会对“sql注入”做额外的研究。当你说“...所以黑客无法注入代码”时,你是什么意思?这会对我的网站做什么? – carrmx