Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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_Mysql_Html_Dynamic - Fatal编程技术网

Php 有没有更干净的方法来写这篇文章

Php 有没有更干净的方法来写这篇文章,php,mysql,html,dynamic,Php,Mysql,Html,Dynamic,我正在用php编写一个项目,该项目将基本上为我提供一个网页,其中包含指向以下内容的链接: 包含存储在mysql数据库中的我最喜欢的youtube视频的页面 有我最喜欢的游戏的网页 音乐等 所有内容都将直接嵌入网页中,而不是链接到网站 为了简化这一点,我制作了一个主模板“index.php”,然后使用$\u GET将页面和其他信息传递到模板,然后由页面检查脚本处理,该脚本执行许多ifs以确定要加载到网站中的php脚本 我的问题在于,与我目前的方法相比,将这些脚本加载到网站中的首选方法是什么 i

我正在用php编写一个项目,该项目将基本上为我提供一个网页,其中包含指向以下内容的链接:

  • 包含存储在mysql数据库中的我最喜欢的youtube视频的页面
  • 有我最喜欢的游戏的网页
  • 音乐等
所有内容都将直接嵌入网页中,而不是链接到网站

为了简化这一点,我制作了一个主模板“index.php”,然后使用
$\u GET
将页面和其他信息传递到模板,然后由页面检查脚本处理,该脚本执行许多ifs以确定要加载到网站中的php脚本

我的问题在于,与我目前的方法相比,将这些脚本加载到网站中的首选方法是什么

if ($_GET["page"] == "videos"){
    include ("dynapage/scripts/videos/videos.php");
}

if ($_GET["page"] == "music"){
    include ("dynapage/scripts/music/music.php");
}
ect

使用includes将此代码添加到我的模板中是一件好事,还是有更好的方法可以推荐


注意:检查中已包括对isset的检查,并且可根据要求提供传统pbs。

看起来您只需执行以下操作即可:

if( file_exists($fn = "dynapage/scripts/".$_GET['page']."/".$_GET['page'].".php"))
    include($fn);

看起来你可以做到:

if( file_exists($fn = "dynapage/scripts/".$_GET['page']."/".$_GET['page'].".php"))
    include($fn);

也许是这样的:

$config = array(
    'videos' => 'dynapage/scripts/videos/videos.php',
    'music' => 'dynapage/scripts/music/music.php'
);

if(isset($config[$_GET['page']])) {
     include($config[$_GET['page']]);
}

写很多if子句(;

可能是这样的:

$config = array(
    'videos' => 'dynapage/scripts/videos/videos.php',
    'music' => 'dynapage/scripts/music/music.php'
);

if(isset($config[$_GET['page']])) {
     include($config[$_GET['page']]);
}

更好一点,然后编写许多if子句(;

使用一个数组,该数组将
$\u GET[“page”]
值作为键,php文件名作为值。然后只需检查它是否在数组中,如果在数组中,则将其包括在内。然后将值写入数组,而不是编写许多
if
子句

下面的代码示例显示了这一点,此外,它还有一个加载页面的函数,因为包含的脚本不会在意外包含的上下文中设置变量

$pages = array(
    'videos' => 'videos/videos.php',
    'music' => 'music/music.php',
);

/**
 * include a page template
 */
function load_page(array $pages, $page, $path = 'dynapage/scripts')
{
    if (isset($pages[$page])) return;
    include ($path.'/'.$pages[$page]);
}

if (isset($_GET['page']))
{
    load_page($pages, $_GET['page']);
}

使用一个数组,该数组的键为
$\u GET[“page”]
值,值为php文件名。然后,您只需检查它是否在数组中,如果在数组中,则将其包括在内。然后将值写入数组,而不是写入许多
if
子句

下面的代码示例显示了这一点,此外,它还有一个加载页面的函数,因为包含的脚本不会在意外包含的上下文中设置变量

$pages = array(
    'videos' => 'videos/videos.php',
    'music' => 'music/music.php',
);

/**
 * include a page template
 */
function load_page(array $pages, $page, $path = 'dynapage/scripts')
{
    if (isset($pages[$page])) return;
    include ($path.'/'.$pages[$page]);
}

if (isset($_GET['page']))
{
    load_page($pages, $_GET['page']);
}

使用具有
$\u GET[“page”]的数组
value作为键,php文件名作为值。然后只需检查它是否在数组中,如果在数组中,则将其包括在内。然后将值写入数组中,而不是写入许多
if
子句。注意,我刚刚意识到这对我的项目不会有问题,但通过替换$\u GET,这难道不是黑客可以接受的吗带有文件名并加载该文件的url使用具有
$\u GET[“page”]的数组
value作为键,php文件名作为值。然后只需检查它是否在数组中,如果在数组中,则将其包括在内。然后将值写入数组中,而不是写入许多
if
子句。注意,我刚刚意识到这对我的项目不会有问题,但通过替换$\u GET,这难道不是黑客可以接受的吗带有文件名的url并加载该文件非常感谢,这比使用多个“如果”更有意义。我很乐意为您投票,但我没有15个代表,因此请接受我的衷心感谢。不安全,请使用控制数组使用hakre或ahmet的答案,以便只加载正确批准的页面。非常感谢,这使o比使用多个“如果”更有意义,我很乐意投票支持你,但我没有15个代表,因此请接受我的衷心感谢。不安全,请使用控制数组使用hakre或ahmet的答案,以便只加载正确批准的页面。感谢你的帖子,我很喜欢它,因为它可以防止关于虚假美元的黑客攻击,但我会我不能使用它,因为我不知道如何编辑它,如果我选择将所有文件放在脚本目录中,而不是scripts/videos/video.php,我可以使用/scripts/videos.phpYeah,路径前缀函数有一个错误。这只是一个示例,根据您自己的需要编辑它,您也可以使用完全限定的路径。我使用了ahmets one由于它使用相同的基本概念,但适用于修改后的脚本id根中的文件,但我的php最好是基本的,但我非常感谢您的贡献。对于您的帖子,我非常喜欢它,因为它可以防止关于虚假$\u GET值的黑客攻击,但是我不能使用它,因为如果我选择将所有文件都放在纸条中,我不知道如何编辑它ts目录而不是scripts/videos/video.php我可以使用/scripts/videos.phpYeah路径前缀函数有一个错误。这只是一个示例,根据您自己的需要编辑它,您也可以使用完全限定的路径。我使用了ahmets one,因为它使用相同的基本概念,但适用于modifi脚本id根目录中的文件虽然我的php是最基本的,但我很感激你的贡献