Eingeschränkte Header-Funktion ?

Maximus

Erfahrenes Mitglied
Hi,

ich habe ein sehr merkwürdiges Problem:

Ich verweise mit folgendem Code auf einen DL-Link:
PHP:
Header("Location: ".$url);
Die Variable $url kommt aus einer Datenbank und hat als Inhalt den Download-Link.
Das klappt auch bei bei allem gut, nur bei eDonkey-Links nicht.
Beispiel:
http://www.tutorials.de in Datenbank -> geht!
https://www.irgendetwas.de in Datenbank -> geht!
ed2k://|file|blablablairgendwas/ in Datenbank -> Geht nicht!!!!

Das interessante ist aber, das wenn ich den letzten Link direkt in den Browser eingebe, es keine Probleme gibt!
Zur Info: Das alles läuft in einem Postnuke-System!
Woran kann das liegen und wie kann ich das ändern?
Es ist wichtig, das ALLE 3 Möglichkeiten funktionieren!
 
Zuletzt bearbeitet:
Ich denke mal, das es daran liegt, das ed2k:// als anderes protokoll aufgefasst wird, was nicht unterstützt wird. Gib mal den link in einem browser ein, der kein edonkey installiert hat ... dann gibt es auch eine fehlermeldung.

Es gibt aber ein workaround:

z. B. ein Popupfenster mit <meta refresh etc. >

Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="23;URL=ed2k://bla">
</head>

<body bgcolor="#FFFFFF" text="#000000">
</body>
</html>


oder javascript

Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="MM_goToURL('parent','ed2k://bla');return document.MM_returnValue">
</body>
</html>

Dann muß nämlich php den header mit unbekanntem protokoll nicht verschicken, sondern das passiert clientseitig und sollte gut funktionieren.

Gruß,
Neuro
 
Hat leider auch nicht so ganz funktionert. Die Site wird weiss und der Download startet nicht.
Ich habe es wie unten gezeigt gelöst.
Dabei bekomme ich ein neues Browserfenster welches den Download startet. Leider geht das aber nicht automatisch weg wenn der Download gestartet wurde. Und ausserdem wird das Hauptfenster in dem ich auf den Link drücke weiss! Gibt es ne Lösung für die beiden Probleme?

PHP:
function visit($lid)
{
    global $ModName;

    if (downloads_authitem((downloads_ItemCIDFromLID($lid)), (downloads_ItemSIDFromLID($lid)), $lid, ACCESS_READ) ) {
	    list($dbconn) = pnDBGetConn();
	    $pntable = pnDBGetTables();

	    $column = &$pntable['downloads_downloads_column'];
	    $dbconn->Execute("UPDATE $pntable[downloads_downloads]
                    SET $column[hits]=$column[hits]+1
                    WHERE $column[lid]=".pnVarPrepForStore($lid)."");
	    $result = $dbconn->Execute("SELECT $column[url]
                              FROM $pntable[downloads_downloads]
                              WHERE $column[lid]=".pnVarPrepForStore($lid)."");
	    list($url) = $result->fields;
	   // Header("Location: ".$url);  Das it die Original-Codezeile
		print "<html><head>";
		print "</head><body onLoad=window.open(\"$url\")></body></html>";

    } else {
	    Header("Location: /index.php");
    }
}
 
@Maximus:

Ich weiß nicht so recht was der php codeschnippsel soll :)
das ist ein teil eines scriptes das über eine datenbank läuft :)
Mit übrigens dem gleichen Effekt wie ich zuvor geschrieben habe, nur halt mit einem minimalen Befehl, der möglicherweise nicht in allen Browsern funktioniert (Zitat:
PHP:
print "</head><body onLoad=window.open(\"$url\")></body></html>";
).

Eine lösung für Dein Problem wäre wohl ein Popupfenster, welches den Link als KLICK-Version anzeigt. Dann läuft 1. Der Donkeylink gerantiert und 2. bleibt die Hauptseite wie sie soll...
 
Sorry,

hatte vergessen zu schreiben, dass es sich um ein Post-Nuke System handelt.
Die Seite ist unter http://www.overnet24.de zu finden.

Richtig, am liebsten wäre mir ein Pop-Up Fenster!
Ich weiss nur leider nicht wie der Code dafür lauten muss.

Wäre nett wenn Du mir diesbezüglich helfen könntest.:-(
 
Beispielquellcode für die Linkseite:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Downloadseite</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>
<body>
<a href="javascript:;" onClick="MM_openBrWindow('popup.php?linkname=ed2k://blabla.blabla.bla','eselpopup','width=200,height=200')">Dieser 
Link &ouml;ffnet Popup zum Download</a> 
</body>
</html>

Popupquellcode der Datei z. B. "popup.php":

Code:
<html>
<head>
<title>.:: Dein Titel ::.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<a href="<?php $linkname ?>">Zum download hier klicken</a>
</html>
</script>

Wenn ich mich nicht vertippt hab, müßte es so gehen :)

P.S.:
Der Disclaimer ist ja ganz toll aus Disclaimer.de kopiert ... :) aber der erste Satz des letzten Paragrafen sollte nicht darin stehen haben, das der Disclaimer zur Internetseite gehört von der verwiesen wurde, schließlich wird der Text normalerweise nicht kopiert, sondern mit einem link zu disclaimer.de versehen.

Schwammiges Gelände mit den Esellinks ...
... aber jedem das Seine :)
 
Zuletzt bearbeitet:
Zurück