1

请注意,我对 php 很陌生。

好的,我有一个脚本。

将可变页面发送到某些页面,但前提是该变量与已经存在的页面匹配,

例如 mysite.com/?varible123,如果 varible123 存在,它会将其发送到该页面,但如果它不存在,则将其发送到默认页面。在我的情况下,我的主页“主”我不希望将不存在的变量页面发送到我的主页,而是仅针对这些页面的默认设置。

我想修改脚本以将所有不存在的变量发送到主页以外的默认页面。

以及调用时显示的主页。

所以有人访问 mysite.com 他们会看到主页,但如果有人访问 mypage.com/?nonexisitenpage 他们会被发送到不是主页的默认页面。

这 ?网站上的标记必须留在那里。

我的代码是

<?php
$page = $_SERVER['argv'][0];
if (!file_exists($page.".htm")){
 //check to make sure the file exists
 $page = "main";
 //include this page by default
}
if (strstr($page, ".")){ 
 //hack attempt
 $page = "main";
}
require_once($page.".htm");
//hard code extension to prevent getting hacked
//http://mysite.com/?lol will include lol.htm
?> 

任何帮助都会得到帮助。

4

1 回答 1

1

你可以使用包含。但是每个页面都必须有代码才能在另一个页面中正确呈现它,这将是最快的呈现。

<?php
$page = $_SERVER['QUERY_STRING'];

if (strstr($page, ".") !== false){ means . is there 
 //hack attempt
 $page = "main";
}
 //first check for hack

if (!file_exists($page.".htm")){
 //check to make sure the file exists
 $page = "main";

 //include this page by default
}
 include 'main.php'; //or main.html and return
   return;
//hard code extension to prevent getting hacked
//http://mysite.com/?lol will include lol.htm
?> 

在向世界开放之前尝试一下自己。也许您应该检查其他 spl 字符或只允许 az、下划线和破折号作为名称。

于 2013-08-24T10:21:08.187 回答