仅当设置了正确的url时才允许使用PHP页面

仅当设置了正确的url时才允许使用PHP页面,php,html,Php,Html,我正试图找出如何仅在PHP索引与我输入的URL匹配时才允许它,类似这样: 例如,如果您将URLsite.com/myfile.php放入,我想显示404错误之类的消息 但是,如果您将site.com/myfile.php?=123放入以显示页面内容 您可以运行一个条件语句来查找请求信息,我会使用?page_id=123使其具体化 <?php if ( $_REQUEST AND isset($_REQUEST['page_id']) ) { // SHOW PAGE CONTEN

我正试图找出如何仅在PHP索引与我输入的URL匹配时才允许它,类似这样:

例如,如果您将URL
site.com/myfile.php
放入,我想显示404错误之类的消息


但是,如果您将
site.com/myfile.php?=123
放入以显示页面内容

您可以运行一个条件语句来查找请求信息,我会使用?page_id=123使其具体化

<?php
if ( $_REQUEST AND isset($_REQUEST['page_id']) )
{ 
    // SHOW PAGE CONTENT
}
else
{
    // RETURN 404
}
?>

您可以运行一个条件查找请求信息,我会使用?page_id=123使其具体化

<?php
if ( $_REQUEST AND isset($_REQUEST['page_id']) )
{ 
    // SHOW PAGE CONTENT
}
else
{
    // RETURN 404
}
?>

您必须测试
$\u获取
参数

if (!$_GET) {
    echo "404 Error"; //or redirect using header();
} elseif ($_GET['key'] == 'value') {
    //code here
}

我看到您正在使用?=123,我不是100%确定这是否有效,但在URL中有键=>值关联更容易(IMO)。

您必须测试
$\u获取
参数

if (!$_GET) {
    echo "404 Error"; //or redirect using header();
} elseif ($_GET['key'] == 'value') {
    //code here
}

我知道您使用的是?=123,我不是100%确定这是否有效,但在URL中使用key=>值关联更容易(IMO)。

只需比较字符串即可

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

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

我认为当某人访问的页面确实存在时,将其发送到404可能被认为是不好的做法,因为他们缺少的只是一个变量

首先,我希望看到类似的东西

site.com/myfile.php?variablename=123
相反

如果您确实想要,可以在文件顶部添加:

if(!isset($_GET['variablename']){
     header('location:404.php');
}
其中404.php是您希望用户看到的404文件


希望这能有所帮助?

我认为,当某人访问的页面确实存在时,将其发送到404可能被认为是一种不好的做法,因为他们缺少的只是一个变量

首先,我希望看到类似的东西

site.com/myfile.php?variablename=123
相反

如果您确实想要,可以在文件顶部添加:

if(!isset($_GET['variablename']){
     header('location:404.php');
}
其中404.php是您希望用户看到的404文件


希望有帮助?

这应该足够满足您的需要了。如果有其他要求,请告知我们

if(!isset($_GET)){
     //do whatever you want to validate the get input provided.
} else {
  header("HTTP/1.0 404 Not Found");
}

这应该足以满足您的需要。如果有其他要求,请告知我们

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,那么根据我的说法,这是不可能的,因为值将被发送到一个存在的页面,如果该页面存在,则服务器无法给出“未找到”错误。

首先,这可能是一个问题,因为当传递?=123时,它应该存储在某个地方,它可能是这样的?uid=123,然后通过get方法在变量中检索它,然后检查它的值并相应地重定向用户。 你可以这样做

if(isset($_GET['uid']))
{
refresh(to whatever location you want);
}
else 
refresh(to some other location);

但是,如果您希望出现404错误,那么根据我的说法,这是不可能的,因为这些值将被发送到一个存在的页面,如果该页面存在,则服务器无法给出“未找到”错误。

只需检查是否有GET参数,以及是否有GET参数“不要发布任何错误消息。是您的朋友。只需检查是否有任何GET参数,以及是否有任何post错误消息。是您的朋友。这对我很有帮助,但您能否告诉我所有ID的“mysecret”如何,因为我的文件中有很多ID,例如:if(@$\u GET['secret']!='*'){header('location:noaccess.php'));//将用户重定向到访问被拒绝的页面。die();//终止脚本。A}和*代表所有代码。然后,您应该删除$\u GET secret的比较,只需检查它是否由访问者设置。例如,if(isset($\u GET['secret]]){//access grated els{//no access}这对我有帮助,但你能告诉我“mysecret”是如何设置的吗“对于所有ID,因为我的文件中有很多ID,例如:if(@$_GET['secret']!='*”){header('location:noaccess.php');//将用户重定向到访问被拒绝的页面。die();//终止脚本。a},*是所有代码。然后,您应该删除$\u GET secret的比较,并检查它是否由访问者设置。比如if(isset($\u GET['secret']){//access-grated}或者{//no-access}