pragmaMx Support Forum

pragmaMx => Coder und Bastlerecke => Thema gestartet von: Phisker am 11 Dezember 2007, 02:19:15

Titel: Frame Redirect
Beitrag von: Phisker am 11 Dezember 2007, 02:19:15
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:
Titel: Re: Frame Redirect
Beitrag von: Webfan am 11 Dezember 2007, 11:06:57
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
:)
Titel: Re: Frame Redirect
Beitrag von: Phisker am 11 Dezember 2007, 23:53:15
muss ich dafür nicht extra eine htm Datei anlegen?
Titel: Re: Frame Redirect
Beitrag von: Webfan am 12 Dezember 2007, 01:01:21
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
:)
Titel: Re: Frame Redirect
Beitrag von: Webfan am 12 Dezember 2007, 01:05:14
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']).'">';
Titel: Re: Frame Redirect
Beitrag von: Phisker am 12 Dezember 2007, 01:12:11
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
Titel: Re: Frame Redirect
Beitrag von: Webfan am 12 Dezember 2007, 01:50:31
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".

Titel: Re: Frame Redirect
Beitrag von: Webfan am 12 Dezember 2007, 03:26:08
Versuche mal das hier:
https://www.startforum.de/pragmamx_019/frame_redirect_fuer_externeausgehende_links-t506.0.html

Hoffe das ist das was Du wolltest.

mfg
:)
Titel: Re: Frame Redirect
Beitrag von: Phisker am 12 Dezember 2007, 04:50:34
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!
Titel: Re: Frame Redirect
Beitrag von: Webfan am 12 Dezember 2007, 06:48:33
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
:)

Titel: Re: Frame Redirect
Beitrag von: Phisker am 12 Dezember 2007, 08:32:21
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!?
Titel: Re: Frame Redirect
Beitrag von: Webfan am 12 Dezember 2007, 08:53:05
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
:)
Titel: Re: Frame Redirect
Beitrag von: Phisker am 12 Dezember 2007, 09:11:38
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?
Titel: Re: Frame Redirect
Beitrag von: Webfan am 12 Dezember 2007, 09:54:44
Möglich ist alles  ;)
Aber ich glaube das ist nicht wirklich praktikabel/üblich.

mfg
Titel: Re: Frame Redirect
Beitrag von: Phisker am 13 Dezember 2007, 03:46:48
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
Titel: Re: Frame Redirect
Beitrag von: Webfan am 14 Dezember 2007, 11:44:29
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
:)
Titel: Re: Frame Redirect
Beitrag 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!
Titel: Re: Frame Redirect
Beitrag von: siggi am 14 Dezember 2007, 17:07:21
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

Titel: Re: Frame Redirect
Beitrag von: Phisker am 15 Dezember 2007, 03:33:45
Sorry! :D
Titel: Re: Frame Redirect
Beitrag von: Phisker am 16 Dezember 2007, 11:12:31
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!
Titel: Re: Frame Redirect
Beitrag von: Webfan am 16 Dezember 2007, 15:52:20
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
:)