我试图弄清楚如何仅在PHP索引与我输入的URL匹配时才允许PHP索引,如下所示:
例如,如果您输入 URL site.com/myfile.php
我想显示 404 错误之类的消息
但是,如果您放置site.com/myfile.php?=123
以显示页面内容。
我认为当某人正在访问的页面确实存在时,将某人发送到 404 可能被认为是不好的做法,这只是他们缺少的一个变量。
首先,我希望看到类似的东西
site.com/myfile.php?variablename=123
相反。
如果你绝对愿意,你可以在文件的顶部添加一个:
if(!isset($_GET['variablename']){
header('location:404.php');
}
其中 404.php 是您希望用户看到的 404 文件。
希望有帮助吗?
您可以运行条件查找请求信息,我会使其具体化,例如使用 ?page_id=123
<?php
if ( $_REQUEST AND isset($_REQUEST['page_id']) )
{
// SHOW PAGE CONTENT
}
else
{
// RETURN 404
}
?>
您必须测试$_GET
参数。
if (!$_GET) {
echo "404 Error"; //or redirect using header();
} elseif ($_GET['key'] == 'value') {
//code here
}
我看到您正在使用 ?=123,我不是 100% 认为这是否有效,但是在 URL 中具有键=>值关联更容易(IMO)。
这应该足以满足您的需求。如果有其他要求,请告诉我们。
if(!isset($_GET)){
//do whatever you want to validate the get input provided.
} else {
header("HTTP/1.0 404 Not Found");
}
首先,
这 ?=123 可能是一个问题,因为当 ?=123 被传递时,它应该存储在某个地方,它可以像这样 ?uid=123,然后你通过 get 方法在变量中检索它,然后检查它的值并相应地重定向用户。你可以做这样的事情
if(isset($_GET['uid']))
{
refresh(to whatever location you want);
}
else
refresh(to some other location);
但是,如果您想要错误 404 之类的东西,那么根据我的说法这是不可能的,因为这些值将被发送到存在的页面,如果该页面存在,则服务器无法给出"未找到"错误。
通过简单地比较一个字符串。
if (@$_GET['secret'] != 'mysecret'){
header('location: noaccess.php'); //redirect the user to access denied page.
die(); // terminate the script. A
}
// The rest of the page
或者将所有内容保存在一个文件中:
if ((isset($_GET['secret'])) && ($_GET['secret'] == 'mysecret')){
// Show the page
} else {
// Show an error message
}
site.com/myfile.php?secret=mysecret