Frame Redirect

Begonnen von Phisker, 11 Dezember 2007, 02:19:15

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Phisker

Hallo zusammen,

ich wollte bei mir auf der Seite ein Frame Redirect einbauen:

Beispiel:
http://goto.kit-security.de/?url=http://www.roetti.de/Testforum

Obene die Leiste wo steht: Kit-Security.de ist nicht für die Inhalte von Roetti.de/Testforum verantwortlich!

Dieses würde ich gerne in 2 Versionen nutzen:

Einmal so:

Das ich die Links selber bestimmen kann, das ich oben in der Leiste z.B reinschreiben kann "Zurück zur Startseite" oderso etwas

Und das zweite wäre:

Egal welche Link auf der Seite geklickt wird, der auf einer Externen Url führt, sollte genauso wie im Beispiel angezeigt werden.

Hier sind doch bestimmt nen paar super Coder die sowas können oder?

Ich hab das Script mal angehangen:

Webfan

Hallo,
<a href="..." target="_parent" ...  öffnet die neue Seite im alten Fenster und bricht aus dem frame aus, wenn auf der Zielseite kein frame ist.
<a href="..." target="FRAMENAME" öffnet die neue Seite im Frame FRAMENAME
<a href="..." target="_blank" öffnet neues Fenster.

mfg
:)

Phisker

muss ich dafür nicht extra eine htm Datei anlegen?

Webfan

Sorry, ich check grad nicht so ganz was Du möchtest. Vielleicht kannst Du Dein Problem nochmal genauer beschreiben...?!
Ich war davon ausgegangen, Du möchtest einfach das die Seite sich nicht in einem neuen Fenster öffnet, sondern im Frame bleibt. Dazu mußt Du nur statt target="_blank" halt target="_framename" schreiben, oder halt kein Fensterziel angeben.
Zitatmuss ich dafür nicht extra eine htm Datei anlegen?
Darf auch php oder sonstwas sein, nehm ich an.

Ah... warte mal *denk denk*
ZitatEgal welche Link auf der Seite geklickt wird, der auf einer Externen Url führt, sollte genauso wie im Beispiel angezeigt werden.
Ah, ich glaub ich habs begriffen: Du möchtest alle externen Links automatisch umleiten... Entschuldige meine Begriffsstutzigkeit.

function replace_uri_redirect($str, $redirectscript) {
  $pattern = '#(^|[^\"=]{1})(http://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
  return preg_replace($pattern,"\\1<a href=\"".$redirectscript."\\2\\3\" target=\"_blank\"><b><u>\\2\\3</u></b></a>\\4",$str);
}


Diese Funktion kannst Du z.B. so aufrufen:
$content = replace_uri_redirect($content, 'http://www.DEINE_SEITE.de/redirect.php?redirect=');

Wo Du das am besten einbaust weiß ich jetzt grad nicht...  :gruebel: Vielleicht irgendwie irgendwo in mx_modrewrite...  Frag doch mal im Pragmamx Forum  ;)

mgh
:)

Webfan

Deine redirect.php ist dann natürlich keine .htm Datei, da mußt Du dann in etwa entsprechend schreiben:

echo '<frame src="'.strip_tags($_GET['redirect']).'">';

Phisker

Ja also ganz klar soll es wie im Beispiel sein das dieser Balken angezeigt wird. Es muss ja möglich sein das gesamte Script was als Anhang ist ins PMX zu integrieren oder nicht???

Ich werde es mal ins PMX Forum schreiben! Wäre ne Idee für PMX2

Webfan

Abgesehen davon ist die Funktion oben auch falsch, sorry  :red: Das heißt, sie funktioniert, wenn der Link noch kein html ist.
So inetwa sollte es mit html Links gehen:
function replace_uri_redirect($str, $redirectscript) {
   $replacement = 'href="'.$redirectscript;
   return str_replace('href="http://', $replacement, $str);
}


ZitatEs muss ja möglich sein das gesamte Script was als Anhang ist ins PMX zu integrieren oder nicht???
Da müsste man sich das Script für angucken. So wie Du Dein Problem beschrieben hast (oder wie ich es verstanden habe) wäre das etwas "oversized".



Phisker

Erstmal Respect dafür das du das gemacht hast.

Also habe alles angepasst! Aber klappen tut es nicht!

Ich habe direkt auf der Startseite im ersten CENTER Folgende Links erstellt:

http://www.arcor.de                 
<- Wird mit  http://www.phisker-produkt.de/main/redirect.php?redirect=http://www.arcor.de geladen, aber in dem neuen Fenster bleibt es weiß.

www.arcor.de     
<- Läd die Seite so: http://www.phisker-produkt.de/main/www.arcor.de

arcor.de
<- wird so geladen: http://www.phisker-produkt.de/main/arcor.de

Zu sehen und Testen:
http://www.phisker-produkt.de/main/home.html

Aber überhaupt der Anfang, erste Sahne! :D!

Webfan

Mh... :gruebel:
Zitat<iframe src=""
Da steht keine Url drin, keine Ahnung... vielleicht ist da etwas mit der Formatierung durcheinander gekommen.
Versuche mal nur


<?php
$redirect_ 
strip_tags($_GET['redirect']);
echo 
'
<iframe src="'
.$redirect_.'" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="0">
'
;
?>



oder


<?
$redirect_ = $_GET['redirect'];
echo '
<iframe src="'.$redirect_.'" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="0">
';

echo $_GET['redirect']; // Wert kontrollieren
?>


Das HTML kannst Du ja immer noch drumherum bauen, wenn es klappt (das Webfan Gedönse unten muß ja eh noch weg).
Ich weiß nicht inwieweit der 2. Code unsicher sein könnte, ohne das strip_tags, und auch überhaupt kann so natürlich jeder über den $_GET Parameter jede beliebige Seite laden (könnte man vielleicht noch verhindern, indem man die erlaubten externen Urls in eine Session schreibt oder so, aber das ist vielleicht erstmal etwas weit hergeholt.
Möglich wäre auch das der Arcor Webspace das irgendwie nicht zuläßt, src=$_GET und so... !?
Wie gesagt, teste erstmal den letzteren, kurzen Code.

mfg
:)


Phisker

juhu, es geht! Aber was ist mit den Links?

Es geht aber erst wenn es Links mit http:// sind

aber wenn ein user nur


www.SeineSeite.de oder SeineSeite.de schreibt sind die nicht einmal aufrufbar nur wenn man
http://www.seineseite.de schreibt!?

Webfan

Dann teste mal diese Funktionen:
      function replace_uri_redirect($str, $redirectscript) {
                   $result = str_replace('www.', 'http://www.', $str);
                   $replacement = 'href="'.$redirectscript;
       $result = str_replace('href="http://', $replacement, $result);
                  return $result;
                 }

              function undo_replace_uri_redirect($str, $redirectscript) {
                 $result = str_replace('http://http://www.', 'http://www.', $str);
                 $s = $redirectscript.$_SERVER['SERVER_NAME'];
                 $result = str_replace($s,'',$result);
                 return $result;
                 }

Bin mir nicht ganz sicher ob das so sauber ist... :gruebel:
Aber teste mal...
mfg
:)

Phisker

Ja, das klappt auch wunderbar.

Also folgendes geht nun:


http://seite.de
http://www.seite.de
www.seite.de

aber das geht noch nicht

seite.de <- Ist das überhaupt möglich?

Webfan

Möglich ist alles  ;)
Aber ich glaube das ist nicht wirklich praktikabel/üblich.

mfg

Phisker

#14
Nochmal eine Frage,

ginge das, das man noch FTP (ftp://) und HTTPS (https://) mit einfügt und das man das Frame auch schließen kann?

Hier geht das auch, das sich das Frame schließen lässt, also das der Balken schwindet:
http://goto.kit-security.de/?url=http://www.life-community.bude-eifel.de
Links ist son X, also oben Links.

Das wäre echt super!
Ich hab das ganze auch mal modifiziert, nur ich bekomme das mit dem Schließen nicht hin und kann das ftp:// nicht einfügen.

Schau dir das mal an, was ich da draus nun gebastelt habe:
Datei im Anhang

Webfan

Ftp und https einzufügen müsste theoretisch fast genauso funktionieren:
function replace_https_redirect($str, $redirectscript) {
                   $replacement = 'href="'.$redirectscript;
       $result = str_replace('href="https://', $replacement, $result);
                  return $result;
                 }
  function undo_replace_https_redirect($str, $redirectscript) {
                 $s = $redirectscript.$_SERVER['SERVER_NAME'];
                 $result = str_replace($s,'',$result);
                 return $result;
                 }

und
  $content = replace_https_redirect($content, 'redirect.php?redirect=https://');
                     $content = undo_replace_https_redirect($content, 'redirect.php?redirect=https://');


Geht vielleicht auch eine Funtkion dafür zu schreiben, anstatt für jedes Protokoll eine (werd das nachher mal überdenken, bin noch nicht ganz wach und trink erstmal einen Kaffee ;) )

Das schliessen sollte so funktinoieren:
echo '<a href="'.$redirect_.'" target="_top"><img src="ROTESTKREUZ.gif"></a>';
Staht doch im Quelltext bei kit-security  ;)

mfg
:)

Phisker

Also das geht nicht richtig, habe es eingebaut und dadurch ist die Seite dann garnicht mehr aufrufbar!

So habe ich das eingefügt:

  function replace_uri_redirect($str, $redirectscript) {
                   $result = str_replace('www.', 'http://www.', $str);
                   $replacement = 'href="'.$redirectscript;
       $result = str_replace('href="http://', $replacement, $result);
                  return $result;
                 }

              function undo_replace_uri_redirect($str, $redirectscript) {
                 $result = str_replace('http://http://www.', 'http://www.', $str);
                 $s = $redirectscript.$_SERVER['SERVER_NAME'];
                 $result = str_replace($s,'',$result);
                 return $result;
                 }
function replace_https_redirect($str, $redirectscript) {
                   $replacement = 'href="'.$redirectscript;
       $result = str_replace('href="https://', $replacement, $result);
                  return $result;
                 }
  function undo_replace_https_redirect($str, $redirectscript) {
                 $s = $redirectscript.$_SERVER['SERVER_NAME'];
                 $result = str_replace($s,'',$result);
                 return $result;
                 }


Und dieser:
     $content = replace_uri_redirect($content, 'frame_redirect/redirect.php?redirect=http://');
             $content = undo_replace_uri_redirect($content, 'frame_redirect/redirect.php?redirect=http://');
  $content = replace_https_redirect($content, 'redirect.php?redirect=https://');
                     $content = undo_replace_https_redirect($content, 'redirect.php?redirect=https://');


Wie gesagt, dann kackt die Seite ab!

siggi

ZitatWie gesagt, dann kackt die Seite ab!
Das kann man auch anders formulieren.  :crazy:

http://www.pragmamx.org/Content-pa-showpage-pid-48.html#pa4

Wenn man an Gras zieht wächst es auch nicht schneller.


Phisker

Zitat von: Phisker am 14 Dezember 2007, 16:51:39
Also das geht nicht richtig, habe es eingebaut und dadurch ist die Seite dann garnicht mehr aufrufbar!

So habe ich das eingefügt:

  function replace_uri_redirect($str, $redirectscript) {
                   $result = str_replace('www.', 'http://www.', $str);
                   $replacement = 'href="'.$redirectscript;
       $result = str_replace('href="http://', $replacement, $result);
                  return $result;
                 }

              function undo_replace_uri_redirect($str, $redirectscript) {
                 $result = str_replace('http://http://www.', 'http://www.', $str);
                 $s = $redirectscript.$_SERVER['SERVER_NAME'];
                 $result = str_replace($s,'',$result);
                 return $result;
                 }
function replace_https_redirect($str, $redirectscript) {
                   $replacement = 'href="'.$redirectscript;
       $result = str_replace('href="https://', $replacement, $result);
                  return $result;
                 }
  function undo_replace_https_redirect($str, $redirectscript) {
                 $s = $redirectscript.$_SERVER['SERVER_NAME'];
                 $result = str_replace($s,'',$result);
                 return $result;
                 }


Und dieser:
     $content = replace_uri_redirect($content, 'frame_redirect/redirect.php?redirect=http://');
             $content = undo_replace_uri_redirect($content, 'frame_redirect/redirect.php?redirect=http://');
  $content = replace_https_redirect($content, 'redirect.php?redirect=https://');
                     $content = undo_replace_https_redirect($content, 'redirect.php?redirect=https://');


Wie gesagt, dann kackt die Seite ab!

Das klappt einfach nicht, diese Seit5e ist nicht mehr aufrufbar!

Webfan

Das war eilig hingekrizelt von mir, entschuldige bitte:
$result = str_replace('href="https://', $replacement, $result); war wohl der Fehler.
Hier nochmal die Funktionen für https (nur mit www. kann man sich hier wohl schenken, hatte das vergessen und so per STR+C den Fehler produziert):
function replace_uri_redirect_https($str, $redirectscript) {
   $replacement = 'href="'.$redirectscript;
   $result = str_replace('href="https://', $replacement, $str);
   return $result;
}

function undo_replace_uri_redirect_https($str, $redirectscript) {
   $s = $redirectscript.$_SERVER['SERVER_NAME'];
   $result = str_replace($s,'',$str);
   return $result;
}

Und der Aufruf:
      $content = replace_uri_redirect_https($content, 'redirect.php?redirect=https://');
      $content = undo_replace_uri_redirect_https($content, 'redirect.php?redirect=https://');

Hoffe nun scheißt schmiert die Seite nicht mehr ab  ;)

Ftp klappt grad auch bei mir noch nicht, spontan..

Noch eine Anmerkung:
Vielleicht ist es besser statt str_replace eregi_replace zu verwenden (in den replace Funktionen), falls mal jemand HttP:// schreibt oder so?!

mfg
:)