2017-12-16 5 views
0

Ich möchte ein div von der direkten Benutzer verstecken, aber das gleiche div zu denen, die von example.comausblenden Div Von denen, die direkt auf die Seite besuchen, aber nicht, wer von einer extact Domain beziehen sich mit PHP

kommen zeigt

z. example123.com/article.php unten div haben

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

(wenn klicken Benutzer auf einen Hyperlink auf example.com zeigen

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

dann die oben div

aber, wenn der Benutzer kommen direkt zu example123.com/article.php dann zeige nicht das div.

wie ich das mit php tun werde ..

+0

Ist der Link zu Ihrer Artikel.php Seite intern oder extern? Wenn es intern ist, haben Sie die Kontrolle über den Link und fügen Parameter hinzu, so dass Sie $ _GET verwenden können. Aber wenn Sie herausfinden möchten, ob der Benutzer von einem Link einer externen Site kommt, den Sie nicht kontrollieren, ist das eine andere Antwort. –

Antwort

0

Hallo, Sie können den folgenden Code wie folgt verwenden.

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

Sie können dies erreichen, indem Sie ein Argument von der URL übergeben. Der Wert des Arguments ist null, wenn sie direkt auf die Seite zugreifen und nur einen Wert haben, wenn sie die spezifische URL verwenden. Dann kann Ihr PHP einfach das Argument überprüfen und entsprechend behandeln.

Beispiel wie folgt.

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> 

Dann können Sie die Argumente in Ihrer PHP-Seite behandeln die div

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> 

Beachten Sie enthalten aber, dass dies nur die div versteckt, es besteht nach wie vor auf der Seite. Wenn Sie möchten, dass es vollständig verschwunden ist, können Sie anstatt JavaScript zur Änderung der Sichtbarkeit den Code verwenden, aus dem das div besteht, wenn die Anforderungen erfüllt sind.

<!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

können Sie in Beispielcode für mich schreiben, denn ich bin sehr Anfänger in PHP. – Arman

+0

Sicher, aber in der Zwischenzeit sollten Sie einen Blick auf die Antwort von @Chris werfen, weil es wahrscheinlich besser für Ihre Bedürfnisse geeignet ist – Trent

+0

Ich habe meine Antwort aktualisiert, um Beispielcode – Trent

0

Sie müssen den Einsatz von $_SERVER['HTTP_REFERER']

mache ich nicht ganz Ihre Frage folgen, aber dieser Code sollte genug für Sie an Ihre Bedürfnisse anpassen:

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

Also, wenn Die Referrer-URL enthält example.com, dann echo dein div.

Wenn die Verweis-URL example.com nicht enthielt oder leer war (d. H. Sie sind direkt auf Ihrer Website angekommen), wird das div nicht angezeigt.

+0

zu enthalten, es generiert den Fehler [16-Dez-2017 00:00: 03 America/New_York] PHP Hinweis: Undefinierter Index: HTTP_REFERER – Arman

Verwandte Themen