PHP bestimmten Referer'n keine Werbung anzeigen

Fabian17

Fabian23
ID: 304783
L
18 Mai 2007
1.674
105
Hi,

ich habe da wieder einmal ein Problem:

Beschreibung:
Ich Bewerbe eine meiner Seiten mittels Forcedklicks, parrallel dazu möchte ich gerne noch Werbung auf meine Seite einbauen die mit Forcedklicks aber nicht beworben werden darf. Soweit so gut

Ich dachte mir ich bau eine if (Abfrage) rein

ala

<? if ($referer == https://example.com)
{ echo 'keine werbung';
}
else {
echo 'werbung'; }
?>

Jedenfals ist das meine Überlegung kann ich soetwas damit realisieren?
mit $referer ="$HTTP_REFERER "; bekomme ich ja den Referer raus aber wie baue ich dort eine if $referer = example.com ein?

Stehe wiedermal aufm Schlauch :/
 
1. Globals ist scheiße, weil sehr unsicher! benutze $_SERVER['HTTP_REFERER']
2. Wenn du die Domain sperren willst:
Code:
if( strpos($_SERVER['HTTP_REFERER'], 'https://google.de') !== 0 )
{
  //zeige Werbung
}
3. wenn du eine bestimmte URL sperren willst:
Code:
if( $_SERVER['HTTP_REFERER'] != 'https://google.de/index.php?q=blaaa') )
{
  //zeige Werbung
}

Edit: du willst die Werbung auf _deiner_ Seite einbauen? Dann hilft dir der Referer auch nichts, dazu brauchst du dann schon die Link-URL.
 
Code:
if( strpos($_SERVER['HTTP_REFERER'], 'https://google.de') !== 0 )
{
  //zeige Werbung
}


PHP:
<?
if( strpos($_SERVER['HTTP_REFERER'], 'https://www.google.de') !== 0 ) 
{ 
echo 'Werbungscript';
}
?>
Also damit funktioniert das wenn ich die Seite über Google aufrufe kommt keine Werbung,
Rufe ich sie normal per Browser auf kommt sie.

Edit: du willst die Werbung auf _deiner_ Seite einbauen? Dann hilft dir der Referer auch nichts, dazu brauchst du dann schon die Link-URL.

Ja, die Werbung kommt auf Seite example.com
Beworben wird die über example1.com

Wird nicht mit dem Code der ganze Referer geblockt? oder nur von der Url direkt.

Danke schonmal
 
Ich würde nicht mit dem String direkt arbeiten, sondern parse_url() verwenden.
Code:
https://www.example.com/?unknown_param
https://foo@example.com/
https://example.com/
https://example.com:80/
können dir sonst das Leben schwer machen.
 
nutze PCRE um den HTTP_REFFERER vom $_SERVER auf bestimme sachen zu durchsuchen.
einfacher ist es immer, nur bestimmten seiten zu erlauben, die werbung sehen, also nur wenn die seite xyz heißt. Wer mit verboten arbeitet, hat mehr zu verbieten !
 
Und was spricht dagegen, dem Link, der über den ForcedKlick aufgerufen wird, irgendeinen Parameter zu verpassen, den du dann auswertest? Dann greift das auch, wenn der Browser keinen Referer überträgt. Außerdem müsstest du deine "Verbotsliste" sonst ja ständig überarbeiten, wenn du irgendwo anders einen Forced Link buchst.
Du buchst als Forced Link einfach "https://example.com/?forced=true" und wertest dann aus, ob eben dieser Parameter übergeben wurde. Wenn nicht, blendest du die Werbung ein...
 
Und was spricht dagegen, dem Link, der über den ForcedKlick aufgerufen wird, irgendeinen Parameter zu verpassen, den du dann auswertest? Dann greift das auch, wenn der Browser keinen Referer überträgt. Außerdem müsstest du deine "Verbotsliste" sonst ja ständig überarbeiten, wenn du irgendwo anders einen Forced Link buchst.
Du buchst als Forced Link einfach "https://example.com/?forced=true" und wertest dann aus, ob eben dieser Parameter übergeben wurde. Wenn nicht, blendest du die Werbung ein...

Also diese Idee ist natürlich ideal ;) klingt genauso wie es richtig wäre.

Wie greift man denn diesen Parameter ab?
Man braucht doch ein Scriptcode der die Referer Url auf diesen Parameter hin scannt richtig?.

Wenn ich das dauerhaft einbaue ist das denn nicht Stark Serverlastig oÄ also nicht das die Seite dann vieeeel länger braucht um zu laden.

Gruß
 
Nene, das ist dann völlig unabhängig vom Referer. Der Parameter wird Deinem Skript übergeben, also kannst Du ihn einfach über $_GET['dein_parameter'] abfragen. Und die Serverlast wird dadurch in so geringem Masse erhöht, dass es zu vernachlässigen ist. Da gibt's weitaus schlimmere Dinge in jedem Script als die einfache Abfrage eines Parameters aus dem Request.
 
Man braucht doch ein Scriptcode der die Referer Url auf diesen Parameter hin scannt richtig?.
Äh, nö... Der Parameter wird ja bei dem Aufruf deiner Seite übergeben, das heißt, er landet im Array der GET-Variablen auf deiner Seite...
Du müsstest also prüfen
PHP:
if($_GET['forced']=='true') {
//keine Werbung
} else {
//doch Werbung
}
Auf die Geschwindigkeit deines Seitenaufbaus sollte das nahezu keinen Einfluss haben, ist ja nur eine winzig kleine Abfrage.

#Edit: Ich tippe zu langsam :ugly: