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:
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
:)
muss ich dafür nicht extra eine htm Datei anlegen?
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
:)
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']).'">';
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
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".
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
:)
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!
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
:)
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!?
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
:)
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?
Möglich ist alles ;)
Aber ich glaube das ist nicht wirklich praktikabel/üblich.
mfg
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
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
:)
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!
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
Sorry! :D
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!
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
:)