Klaus Mock: F: Über $HOST verschiedene Seiten anzeigen?

Beitrag lesen

Hallo,

require "cgi-lib.pl";

wie Bernhard schon sagte, ist das eigentlich unnötig, da Du ja auch

use CGI qw|:standard|;

verwendest. Der Ordnung halber schreibe ich sowas auch gleich am Anfang des Scripts hin.

$Server = $ENV{REMOTE_HOST};

Gut in der Idee, aber... $ENV{REMOTE_HOST} ist nicht zwangsläufig vorhanden.
$ENV{REMOTE_ADDR} ist da sicherlich die bessere Wahl.

$BadServer = "proxy.zdf.de";
if ($Server != $BadServer) {

Wie Bernhard ebenfalls schon bemerkte, 'ne' statt '!=', da Du ja keinen Vergleich von Zahlen machen willst.

if ($Server != $BadServer) {
  $url = "http://www.heise.de";
}
else {
  $url = "http://www.linux.de";
}

Ich bevorzuge in solchen Fällen, eine eher restriktive Prüfung.
Zumindest solltest Du die Existenz von $Server abfragen. Wenn immer der 'else'-Zweig einer Abfrage ausgeführt wird, hat das meist den Grund, daß die Bedingung nicht sauber ist.
Also beispielsweise:
if (($Server) and $Server ne $BadServer)
   {
   $url = "http://www.heise.de";
   }
else
   {
   $url = "http://www.linux.de";
   }

Abgesehen davon, ist die Auswertung von IP-Adressen des Clients sicherlicht nicht ein gutes Mittel eines BEnutzers, da sich die IP-Adresse im Laufe eines Besuchs Deiner Seiten auch ändern kann. Denke nur an Einwahlverbindungen des Clients.

Grüße
  Klaus