Automatische Weiterleitung

Hai Leutz,

ich hab folgendes Problem:

Ich möchte, enn ich zu anderen Websites verlinke, erst soas ie eine Tschüss-Seite dazwischen einbauen, die dann automatisch auf das gewünschte Ziel weiterleitet. ich denke, das macht man am besten mit javaScript.

Jedoch muss ich so für jede Seite eine eigene Weiterleitungs-Seite schreiben.

Könnte man nicht im Link auf die Weiterleitungsseite eine art GET-Url eingeben,
zb: www.domain.de/weiter.php?url=www.bplaced.net

und diese Seite leitet dann, je nach GET Url auf die unter ?url=XXX angegebene domain weiter.
also das php script sagt dem javascript vohin es umleiten soll.

Geht das?
Danke schonmal für eure Hilfe

jw-lighting

Soetwas?

<? if($_GET["url"]==""){ echo "Es ist keine URL angegeben"; }else{ echo "Tschau!
Weiter zu " . $_GET['url'] . ""; } ?>

das geht VIEL eleganter :wink:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Leaving XYZ</title>
<?php
$url = $_GET['url'];
$error = "";
if(!preg_match("!http://([a-zA-Z0-9\.]+)\.[a-z]{2,3}/i", $url))
  $error = "Fehlerhafter ausdruck";
else if(strpos($_SERVER['HTTP_REFERER'], "http://DEINUSER.bplaced.net") !== 0)
   $error = "Keine externe Verlinkung!!!";
else
   echo "<meta http-enquiv="Refresh" content="5; URL=autoforward_target.html" />
?>
</head>
<body>
   <h3>Leaving XYZ</h3>
   <?php
      if($error)
        echo "<p style="color: red;">".$error."</p>";
      else
        echo "<p>Sie werden in 5 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie <a href='$url'>hier</a></p>";
    ?>
</body>

so in etwa :wink:

ungetestet :wink:

Hab das von michi ma überarbeitet und den Referercheck rausgenommen, gibt ja auch Leute, die den garnicht senden oder manipuliert haben.

[code]

Leaving XYZ <?php $url = $_GET['url']; $error = ""; if(substr($url, 0, 7) != "http://") { $error = "Das ist keine URL!"; } else { echo "\n"; } ?>

Leaving XYZ

<?php if(!empty($error)) echo "

".$error."

\n"; else echo "

Sie werden in 3 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie hier

\n"; ?> [/code]

ja, aber dann kann jede Seite über deine Seite umleitungen machen, das heißt, dass dein Referer überall auftaucht :wink:

joa, das stimmt… ^^
Also nochmal mit Ref-check:

[code]

Leaving XYZ <?php $url = $_GET['url']; $error = ""; if(substr($url, 0, 7) != "http://") { $error = "Das ist keine URL!"; } elseif(strpos($_SERVER['HTTP_REFERER'], "http://DEINUSERNAME.bplaced.net") === false) { $error = "Kein externes verlinken!"; } else { echo "\n"; } ?>

Leaving XYZ

<?php if(!empty($error)) echo "

".$error."

\n"; else echo "

Sie werden in 3 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie hier

\n"; ?> [/code]

super, vielen dank für die schnellen antworten.
werde ich gleich mal ausprobieren.

enn ich das richtig geshen habe, macht man das mit der weiterleitung mit einem meta, wusste ich gar nicht.
das man das mit deiem referer-check beachten muss, wusste ich auch nicht, das ist gut so.

ich teste das jetzt mal, und melde mich dann wieder.

sorry, ich sitz gard aufm schlauch.

also wie muss ich den die get-url angeben? die datei heisst weiterleitung.php
also weiterleitung.php?xxx

aber was ist xxx

weiterleitung.php?url=http://example.com

jo, ich habs durch testen, und aufwändiges entschlüssenln des quwlltextes schon hinbekommen.

hier mal mein quelltext, ich bekomme jetzt immer einen erroro, kein externes verlinken.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Leaving XYZ</title>
<?php
$url = $_GET['url'];
$error = "";
if(substr($url, 0, 7) != "http://") {
   $error = "Das ist keine URL!";
} elseif(strpos($_SERVER['HTTP_REFERER'], "http://jw-lighting.bplaced.net/") === false) {
   $error = "Kein externes verlinken!";
} else {
   echo "<meta http-equiv=\"refresh\" content=\"3; URL=".$url."\">\n";
}
?>
</head>
<body>
   <h3>Leaving XYZ</h3>
<?php
      if(!empty($error))
        echo "<p style=\"color: red;\">".$error."</p>\n";
      else
        echo "<p>Sie werden in 3 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie <a href=\"".$url."\">hier</a></p>\n";
?>
</body>
</html>

und der link zu der seite:

http://jw-lighting.bplaced.net/weiterleitung.php?url=http://www.bplaced.net

thx nochmal

das ist schon richtig so. Man muss ja auch schließlich von deiner Seite kommen und nicht wie hier von forum.bplaced.net.
Also erstelle einen Link auf deinem Space, der auf die weiterleitung.php?url=http://example.com verweist.

aso, langsam bginnt es mir zu dämmern, ie dat funzt :ps:
also der guckt im browser-cache (chronik) auf welcher seite ich vorher war? oder muss ich über einen link darauf gekommen sein?

naja, ih experimentiere mal wieder ein wenig…

bis gleich :wink:

:bp:

http://de.wikipedia.org/wiki/Referrer

nein, dass ist etwas, das jeder Browser selbstständig mitsenden sollte :wink:

else if(strpos($_SERVER['HTTP_REFERER'], "http://DEINUSER.bplaced.net") !== 0 && $_SERVER['HTTP_REFERER'] != "")
   $error = "Keine externe Verlinkung!!!";

wenn du das so verwendest, kann man den Link auch klicken, ohne von deiner Seite zu kommen. Externe Seiten können das aber nicht verwenden.

@hummer: Warum hast du eig. meinen kompletten Quelltext kopiert und ein paar Klammern gesetzt? Meiner hätte doch auch gereicht o.0

es funzt, es funzt, große klasse :hail: :hail: :hail: :hail: :hail:

danke, ich bau nur noch etwas style drum, danke!!

hier ein link: jw-lighting.bplaced.net/weiter.html

:bp:

kleine frage noch:

wenn ich eine domain wie ne .de, oder .de.vu benutze, muss ich den http-referer da dann ändern? und was ist, wenn einige user die domain (.de oder .de.vu), und andere xxx.bplaced.net benutzen? gehts dann bei einem, und beim anderen nicht?

Es geht nur wenn der Referer jw-lighting.bplaced.net/" beginnt :wink: (das sollte nur deine Seite sein)

momentan gibt es da aber wohl einen Fehler…bei mir geht das ganze jedenfalls nicht :wink:

so, ich habs ausprobiert.

selbst ob ich ein www. benutze oder nicht, entscheidet, ob das mit dem referrer klappt oder nicht. kann man das noch so ändern, das der link zwar von meiner seite kommen muss, aber egal ist ob mitt www., oder ohne, ob mit bplaced.net , .de.vu oder.de.
Vllt muss man mehrere möglcihkeiten angeben, aber wie mach ich das?

@ michi7x7:

ja, der link ist mit www. :p

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Leaving XYZ</title>
<?php

$allowed_urls=array("http://www.xyz.de", "http://xyz.de", ""); // "" sorgt für Annahme bei leerem Referer

$url = $_GET['url'];
$ref = $_SERVER['HTTP_REFERER'];
$error = "";
if(!preg_match("!http://([a-zA-Z0-9\.]+)\.[a-z]{2,3}/i", $url))
  $error = "Fehlerhafter ausdruck";
else if(!in_array( substr($ref, 0, strpos($ref, '/'), $allowed_urls))
   $error = "Keine externe Verlinkung!!!";
else
   echo '<meta http-enquiv="Refresh" content="5; URL=autoforward_target.html" />';
?>
</head>
<body>
   <h3>Leaving XYZ</h3>
   <?php
      if($error)
        echo "<p style='color: red;'>$error</p>";
      else
        echo "<p>Sie werden in 5 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie <a href='$url'>hier</a></p>";
    ?>
</body>

[quote=„michi7x7“]
@hummer: Warum hast du eig. meinen kompletten Quelltext kopiert und ein paar Klammern gesetzt? Meiner hätte doch auch gereicht o.0[/quote]
Naja, dann schau dir deinen Quelltext nochmal genau an, da sind schon ein paar Fehler drin. Diese hab ich nur behoben. Und mit Klammern find ich es einfach übersichtlicher.