Einrichten einer Blacklist

Deutschsprachiger Support für CMS Made Simple
Post Reply
maninweb

Einrichten einer Blacklist

Post by maninweb »

Hi zusammen...

ich habe ein etwas ungewöhlicheres Anliegen.

Und zwar möchte ich bestimmte User, die von einer bestimmten Website über einen Link bei mir landen
auf eine spezielle Hinweisseite leiten. Hab' mir auch schon ein PHP Script entwickelt, um den Referer
abzufragen usw. (IP's würden nicht gehen). Die Hinweisseite sollte nur einmalig erscheinen. D.h.
auf der Hinweisseite ist ein Link auf die normale Startseite meiner Website. Klickt der User darauf,
sollte er ganz normal meine Website nutzen können.

Hat einer eine Idee, wie ich's am effektivsten ins CMS eingebaut bekomme? Kann ich weitere Params
an die index.php weitergeben, ohne die Funktionalität des CMS zu stören? Oder weiss jemand einen
bessere Umsetzungsmöglichkeit?

Hintergrund des Ganzen ist nicht (!), dass ich Personen aussperren möchte, sondern eher darauf hinweisen
möchte, dass mein Angebot frei zugänglich ist sowie auch bleiben soll und wird. Steht dann auf der Hinweis-
seite (Es gibt gewisse Firmen, die die Links und Web-Adressen "vermarkten")


Danke & Gruß
cyberman

Re: Einrichten einer Blacklist

Post by cyberman »

maninweb wrote: Hab' mir auch schon ein PHP Script entwickelt, um den Referer abzufragen
Müsstest du theoretisch nicht, da Smarty ihn bereits kennt

Code: Select all

{$smarty.server.HTTP_REFERER}
Im Script (referercheck) würde ich den Referer mit einer Liste aus einer Textdatei (Blacklist) vergleichen. Bei einer Übereinstimmung könntest du eine Variable (referer) auf true oder 1 setzen und weisst diese dann Smarty zu.

Code: Select all

$smarty->assign('referer', $referer);
Der Check im Template könnte dann so aussehen

Code: Select all

{referercheck}
{if $referer == '1'}
  {redirect_page page='seiten-alias'}
{else}
  ... dein Template ...
{/if}
maninweb

Re: Einrichten einer Blacklist

Post by maninweb »

Hi cyberman...

Danke für die Tipps, ich werd's mal ausprobieren. Finde ich sogar gut, dass dann die Hinweisseite im CMS liegen kann. Momentan war sie noch extern.

Gruß & schönen Sonntag.
maninweb

Re: Einrichten einer Blacklist

Post by maninweb »

Hi nochmal...

ich hab's jetzt eingebaut, jedoch aufbauend auf Deinen Vorschlag ein bißchen anders gelöst.
Und zwar habe ich ein benutzerdefiniertes Tag "Referer" erstellt und beispielhaft diesen Code eingebaut...

Code: Select all

//	Vars...
	
	$Block   =  0;
	$Keys    =  array();
	
//	Addresses...
	
	$Keys[0] = "adresse1";
	$Keys[1] = "adresse2";
	$Keys[2] = "adresse3";
	$Keys[3] = "adresse4";
	
//	Get...
	
	$Referer  = strtolower($_SERVER['HTTP_REFERER']);
	$Address = strtolower(gethostbyaddr($_SERVER['REMOTE_ADDR']));
	
//	Check...
	
	if (strpos($Referer, strtolower("maninweb")) < 1)
	{
		foreach ($Keys as $Value) 
		{
    			if (strpos($Referer, strtolower($Value)) !== false || 
    			    strpos($Address, strtolower($Value)) !== false)
			{
				$Block = 1; break;
			}
		}
	}

//	Assign

	$smarty->assign('Block', $Block);
Danach in das Template direkt ganz oben folgendes eingebaut...

Code: Select all

{Referer}
{if $page_alias != "die_hinweis_seite"}{if $Block == '1'}{redirect_page page='die_hinweis_seite'}{/if}{/if}
Damit wird dann auch ausgeschlossen, dass der User in einer Schleife läuft. Die Addressen kann man dann
aus einer Textdatei oder so einlesen, das ist aber kein Problem.

Grüße
Post Reply

Return to “German - Deutsch”