Genau das war auch meine Motivation.
Ich habe dem Autor den Code bereits gesendet. Wir werden sehen, was er daraus macht.
Freut mich, dass es bei dir läuft 😃
Viele Grüsse,
Andreas
Genau das war auch meine Motivation.
Ich habe dem Autor den Code bereits gesendet. Wir werden sehen, was er daraus macht.
Freut mich, dass es bei dir läuft 😃
Viele Grüsse,
Andreas
Hallo typofritze,
angespornt von deiner Idee wollt ich das auch mal versuchen, da der JS Redirect wirklich nicht gerade schön ist. Allerdings funktioniert das ganze bei mir nicht richtig, nach einem Klick auf den Link der z.B. zu www.nw-software.com leiten soll bekomm ich in der Adressleiste des Browsers die aktuelle plus die richtige Adresse also z.B. www.svamtzell.de/www.nw-software.com und das das nicht funktioniert kannst du dir ja denken.
Hab ich was falsch gemacht? Hat es vielleicht was mit dem Rootverzeichnis des Servers zu tun? Weil du schreibst direkt ins Rootverzeichnis des Servers, wenn ich es dort ablege geht aber garnichts. Habe dort den Ordner www.svamtzell.de. Als ich die redirect.php dort abgelegt hatte funktionierte das Script bis auf den oben genannten Fehler. Muss ich da was umschreiben?
Was steht denn in der Statusleiste, wenn du mit der Maus über den Link fährst?
ui das ging schnell.
Folgendes steht drin:
http://www.svamtzell.de/redirect.php?link=www.nw-software.com&uid=1
Das ist schon mal korrekt.
Und die redirect.php wird auch gefunden?
Bist du sicher, genau meinen Code verwendet zu haben?
(Copy & Paste)
Naja ich denke mal schon, zuerst hatte ich vergessen die Datenbankdaten einzugeben dann kam ein Connection error. Als ich diese nachgetragen hab hats dann soweit funktioniert, nur wenn ich auf den Link klicke kommt halt www.svamtzell.de/www.nw-software.com
Die Klicks werden auch hochgezählt falls dir das was nützt.
Ich habe den editierten zweiten Code verwendet bei dem du meintest der müsste auch funktionieren!
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum aus Vergangenheit
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // immer geändert
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
$link=$_GET['link'];
// Weiterleiten:
header("Location: $link"); // Umleitung des Browsers
exit;
?>
Versuch mal nur diesen Code. Alles andere war ja nur für den Counter. Wenn das auch nicht geht, dann mach mal folgendes:
<?php
$link=$_GET['link'];
echo $link;
?>
und sag mir, was ausgegeben wird.
also das erste hat wieder nicht funktioniert, genau der selbe Fehler wieder, also www.svamtzell.de/www.nw-software.com
Beim dem zweiten wurde www.nw-software.com ausgegeben!
Gib deine Links im Backend mal mit http:// an
Hab das auch gerade festgestellt, so hat's funktioniert. Problem ist nur wenn die Benutzer die Links über den Assistenten im Backend eingeben wird das http:// automatisch weggelassen. Gibt es eine Möglichkeit einer If-Verzweigung die darauf überprüft ob der $link mit einem "h" anfängt und wenn ja dann wird
header("Location: $link");
ausgeführt und wenn nicht dann nimmt man
header("Location: http://$link");
Kann leider kein PHP, deswegen weiß ich nicht wie ich auf das "h" am Anfang überprüfen kann.
klar geht das. Aber im Moment habe ich keine Lust dazu ;-)
Entweder versuchst du es mal selbt (Google nach "selfphp"), oder wartest, ob ich in den nächsten Tagen mal probier ;-)
Viele Grüsse,
Andreas
ok dann schau ich selber mal nach, trotzdem vielen Dank für deine Mühe.
Hab das mal zu header (); gefunden:
Der zweite Spezialfall ist der "Location:" Header. Es wird nicht nur der Header an den Browser geschickt, sondern auch ein REDIRECT (302) Statuscode, wenn nicht bereits ein 3xx Statuscode gesendet wurde.
Das ist ja das was mic_jan geschrieben hat oder? Ist diese Art redirect nun okay oder "gefährlich"?
mir ist nochmal was aufgefallen. Dein Script funktioniert super wenn man in der Linkliste auf einen Link klickt, geht man allerdings in die Detailansicht zu einem Link und klickt dort den Link an dann hat man wieder den JS Redirect. Man muss also weiter unten nochmal einen Marker ersetzen, Problem ist nur das dort wohl eine andere Variable für die URL verwendet wird und man deshalb nicht den Code von oben übernehmen kann.
Unter http://www.svamtzell.de/158.0.html kannst du dir ansehen was ich meine. Hast du dafür eine Idee?
ich schau es mir nächste Woche mal an. Auch das mit dem http.
Viele Grüsse,
Andreas
Hi!
Ich habe heute erst die Extension eingebaut und habe mich gewundert, wieso die Verlinkung so komisch langsam ist. Dann hab ich Euren Thread entdeckt.
Coole Idee das mit dem Redirect. Nun bin ich mir nicht sicher, ob Ihr das noch weitergführt habt!?
Wie auch immer, ich hab mich mal dran gemacht, alles zum laufen zu bekommen (meine Version 1.5.1):
redirect.php wie gehabt, nur habe ich ein if-Anweisung eingebaut, die auf http:// checked:
// Umleitung des Browsers
if (substr($link, 0, 7) != 'http://')
header("Location: http://$link");
else
header("Location: $link");
Und für die normale und Detailansicht in class.tx_cmwlinklist_pi1.php
Zeile 310:
//$markerArray["###LINK_HREF###"] = $this->pi_getPageLink($GLOBALS["TSFE"]->id, "_blank", array("action" => "getviewclickedlink", "uid" => "$uid"));
$markerArray["###LINK_HREF###"] = "redirect.php?link=".$links[$i]['href']."&uid=".$uid;
und Zeile 457 (wenn ihr das oben schon eingegeben habt 😉 ):
//$markerArray["###LINK_HREF###"] = $this->pi_getPageLink($GLOBALS["TSFE"]->id, "_blank", array("action" => "getviewclickedlink", "uid" => "$uid"));
$markerArray["###LINK_HREF###"] = 'redirect.php?link='.$link[0]['href'].'&uid='.$uid;
Ich muss dazu sagen, ich bin kein PHP-Profi, aber funktionieren tut es dennoch.
Ach ja, thx für Euren Input!
Grüße
user
sagt mal ist es eigentlich nicht gefährlich die TYPO3 Datenbank Daten in ein PHP Script zu schreiben? bzw. kann man das irgendwie schützen? Damit nicht jemand die Daten ausliest und unfug treibt.