隐藏 Div 那些直接访问该页面但不使用 php 从确切域引用的人

Hide Div From those who visit directly to the page but don't who refer from a exact domain using php

我想向直接用户隐藏 div,但向来自 example.com

的用户显示相同的 div

例如。 example123.com/article.php 有以下 div

<div id="main">Title</div>

(当用户单击 example.com

上的超链接时
<a href="http://example123.com/article.php">Artile</a>

然后显示上面的div

但是当用户直接进入 example123.com/article.php 时,则不显示 div.

我将如何使用 php 来做到这一点?

您可以通过传递来自 URL 的参数来实现此目的。如果他们直接访问页面,参数的值将为 null,并且只有在他们使用特定的 URL 时才有值。然后你的 PHP 可以检查参数并相应地处理它。

示例如下。

index.php

<!DOCTYPE html>
<html>
<head>
    <title>Nothing</title>
</head>

<body>

<h1>Nothing 01</h1>
<a href="pagewithdiv.php">Regular URL</a>
<br />
<a href="pagewithdiv.php?Condition=true">Argument URL</a>

</body>

</html>

然后您可以在包含 div

的 PHP 页面中处理参数
pagewithdiv.php

<!DOCTYPE html>
<html>
<head>
   <title>Nothing</title>
</head>

<body>

<h1>Nothing 02</h1>

<div id="conditional">
   <h2>Conditional Div</h2>
</div>

<?php
if (

   // check if argument exists
   isset($_GET["Condition"])
   &&
   // check if argument value is true
   trim($_GET["Condition"] == true)

) {

   echo '<script>';
   echo 'document.getElementById("conditional").style.display = "block"';
   echo '</script>';

} else {

   echo '<script>';
   echo 'document.getElementById("conditional").style.display = "none"';
   echo '</script>';

}
?>

</body>

</html>

请记住,虽然这只是隐藏 div,但它仍然存在于页面上。如果您希望它完全消失,那么不要使用 javascript 来更改可见性,如果满足要求,您可以回显构成 div 的代码。

<!DOCTYPE html>
<html>
<head>
   <title>Nothing</title>
</head>

<body>

<h1>Nothing 02</h1>

<?php
if (

   // check if argument exists
   isset($_GET["Condition"])
   &&
   // check if argument value is true
   trim($_GET["Condition"] == true)

) {

   echo '<div id="conditional">';
   echo '   <h2>Conditional Div</h2>';
   echo '</div>';


}
?>

</body>

</html>

你需要利用$_SERVER['HTTP_REFERER']

我没有完全理解你的问题,但这段代码应该足以让你适应你的需要:

if(strstr($_SERVER['HTTP_REFERER'],'example.com')) {
  echo '<div id="main">Title</div>';
}

因此,如果引荐来源网址 URL 包含 example.com,则回应您的 div。

如果推荐 URL 不包含 example.com 或为空(即它们直接到达您的站点),则 div 将不会显示。

您好,您可以像这样使用以下代码。

 <?php if (isset($_SERVER['HTTP_REFERER'])){ ?>
      <div style="width:200px;height:200px;border:1px solid black">
 <?php } ?>