Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php动态页面_Php_Url_Dynamic - Fatal编程技术网

php动态页面

php动态页面,php,url,dynamic,Php,Url,Dynamic,我不确定这里的标题是否合适,我的解释可能也一样糟糕,但这里是。。。我正在使用以下代码生成网页: 资料来源: 典型页面: www.website.com/dir/index.php?display=page4 我的问题是:我想在允许的页面数组中添加一个具有动态值的页面。您可以在上面的代码中看到我的尝试,我在代码中添加了:“page5&id=$id” 但是,当我转到本页时: www.website.com/dir/index.php?display=page5&id=2 我收到错误消息“找不到页

我不确定这里的标题是否合适,我的解释可能也一样糟糕,但这里是。。。我正在使用以下代码生成网页:
资料来源:


典型页面:

www.website.com/dir/index.php?display=page4

我的问题是:我想在允许的页面数组中添加一个具有动态值的页面。您可以在上面的代码中看到我的尝试,我在代码中添加了:“page5&id=$id”

但是,当我转到本页时:

www.website.com/dir/index.php?display=page5&id=2

我收到错误消息“找不到页面。返回索引”。
(数据库中确实存在值为2的表行id)。

就像您将在
$\u GET['display']
中收到一个值一样,您将在
$\u GET['id']
中收到另一个值为
2

PHP将它们与查询字符串分开。当您在数组()中使用
时,您将检查
page5
是否在
$displays
中,从代码中可以看出,它不是


我建议您使用
var\u dump($\u GET)
然后查看生成的HTML的源代码,以查看GET参数是如何处理的。

就像您将在
$\u GET['display']
中收到一个值一样,您将在
$\u GET['id']
中收到另一个值为
2

PHP将它们与查询字符串分开。当您在数组()中使用
时,您将检查
page5
是否在
$displays
中,从代码中可以看出,它不是

我建议您使用
var\u dump($\u GET)
然后查看生成的HTML的源代码,以查看GET参数是如何处理的。

这就是为什么在
$\u GET[“display”]
中仅显示“page5”,而在
$\u GET[“id”]
中显示2。您可以在page5.php中检查ID

例如,在第5页:

<? if (empty($_GET["id"]) || !is_numeric($_GET["id"])) { die("ID isn't a number!"); } ?>
这就是为什么在
$\u GET[“display”]
中只显示“page5”,而在
$\u GET[“id”]
中只显示“page2”。您可以在page5.php中检查ID

例如,在第5页:

<? if (empty($_GET["id"]) || !is_numeric($_GET["id"])) { die("ID isn't a number!"); } ?>

您最好分别处理显示和ID值。例如:

<?php

$display = $_GET['display'];
$displays = array('page1', 'page2', 'page3', 'page4', 'page5');

if (!empty($display)) {
        if(in_array($display,$displays)) {
            $display .= '.php';
            include($display);
        }
        else {
        echo 'Page not found. Return to
        <a href="index.php">Index</a>';
        }
    }
    else { //show html

?>

在display5.php中:

 <?php

 // some other initializations

 $id = $_GET['id'];
 if($id == 2) { // make some special actions for id = 2

 // show more html
 ?>

您最好分别处理显示和ID值。例如:

<?php

$display = $_GET['display'];
$displays = array('page1', 'page2', 'page3', 'page4', 'page5');

if (!empty($display)) {
        if(in_array($display,$displays)) {
            $display .= '.php';
            include($display);
        }
        else {
        echo 'Page not found. Return to
        <a href="index.php">Index</a>';
        }
    }
    else { //show html

?>

在display5.php中:

 <?php

 // some other initializations

 $id = $_GET['id'];
 if($id == 2) { // make some special actions for id = 2

 // show more html
 ?>


但是如果在url中没有传递id的值,我们如何使用$_GET['id']?另外,我使用值“2”作为一个任意示例来表示由用户导航确定的值。如果您的请求转到
www.website.com/dir/index.php?display=page5&id=2
,正如您所写,两个可用的$GET变量将是
$GET['display']
$GET['id']
。因此,ID将在代码段中传递。其中包含的每个文件也可以访问$\u GET变量,因此
display5.php
可以访问它。
if($id==2){
只是我展示如何处理id的一个例子。你可以在这里做一些数据库选择语句,例如Ok,我理解。但是现在,无论出于什么原因,当我尝试你解释的内容时,它都不起作用,即使像示例中那样使用url,我甚至无法获得$id=$\u['id'];echo$id;Ack。有一个输入错误。它现在可以工作了。非常感谢您的帮助!但是如果在url中没有传递id的值,我们如何使用$_GET['id'];?还有值“2”我只是使用了一个任意示例来表示由用户导航确定的值。如果您的请求转到
www.website.com/dir/index.php?display=page5&id=2
,正如您所写,两个可用的$\u GET变量将是
$\u GET['display']
$\u GET['id']
。因此ID将在代码段中传递。其中包含的每个文件也可以访问$\u GET变量,因此
display5.php
可以访问它。
如果($ID==2){
只是我展示如何处理ID的一个例子。你可以在这里做一些数据库选择语句,例如,好吧,我明白。但是现在,无论出于什么原因,当我尝试你解释的内容时,它都不起作用,即使像示例中那样使用url,我甚至不能$ID=$\u GET['ID'];echo$id;Ack。有一个输入错误。它现在可以工作了。非常感谢您的帮助!