2017-12-16 6 views
0

div를 숨기고 싶지만 example.com에서 온 div와 동일한 div를 표시하고 싶습니다.부서를 숨기기 직접 페이지를 방문하지만 누가 PHP를 사용하여 extact 도메인에서 참조하지 않는 사람

예. 울부 짖는 소리 사업부가 example123.com/article.php

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

(example.com에 하이퍼 링크를 사용자가 클릭은

<a href="http://example123.com/article.php">Artile</a> 

는 위의 DIV를 표시 할 때

하지만 사용자가 직접 제공하는 경우 example123.com/article.php 다음 div를 표시하지 마십시오

어떻게하면 PHP를 사용하여 할 것인가?

+0

article.php 페이지의 링크가 내부 또는 외부입니까? 그것이 내부라면, 당신은 $ _GET을 사용할 수 있도록 링크를 제어하고 매개 변수를 추가 할 수 있습니다. 그러나 사용자가 제어 할 수없는 외부 사이트 링크에서 왔는지 여부를 감지하려는 경우에는 다른 대답입니다. –

답변

0

안녕하세요. 다음 코드를 사용할 수 있습니다.

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

URL에서 인수를 전달하여이 작업을 수행 할 수 있습니다. 인수가 페이지에 직접 액세스하고 특정 URL을 사용하는 경우에만 값을 가질 경우 인수의 값은 null입니다. 그러면 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> 

그럼이 만 사업부를 숨기고 있다는 것을하지만 명심 사업부

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> 

가 포함 된 PHP 페이지의 인수를 처리 할 수 ​​있습니다, 그것은 여전히 ​​페이지에 존재합니다. 만약 당신이 완전히 사라지고 싶어 그 대신 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> 
+0

당신은 나를 위해 예제 코드에서 작성할 수 있습니다 coz 나는 아주 초급 PHP입니다. – Arman

+0

확실히 그렇지만 여러분이 필요로하는 것이 더 적합하기 때문에 @Chris의 대답을 살펴 봐야합니다. – Trent

+0

예제 코드 – Trent

0

당신은 내가 전적으로 귀하의 질문을 따르지 않는 $_SERVER['HTTP_REFERER']

의 사용을해야하지만 당신은 여러분의 필요에 적응하기 위해이 코드가 충분해야한다 :

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

을 그래서 경우, 리퍼러 URL에 example.com이 포함되어 div를 에코합니다.

참조 URL에 example.com이 없거나 비어있는 경우 (즉, 사이트에 직접 도착한 경우) div가 표시되지 않습니다.

+0

을 포함하도록 답변을 업데이트했습니다. [16-Dec-2017 00:00 : 03 America/New_York] PHP 알림 : 정의되지 않은 인덱스 : HTTP_REFERER – Arman