Seite 1 von 1

Hotschi DownMod 3.01 - Downloads doppelt ausgeführt -gelöst-

Verfasst: 28.06.2005 16:14
von Bastian Strauss
Hallo.. habe das Hotschi Download Mod Version 3.0.1 bei mir eingebaut. Und es funktioniert eigentlich ganz gut. Nur ein Problem habe ich und das ist ziemlich blöd. Wir nutzen das Mod ausschließlich um MP3 unserer Künstler anzubieten. Ich lege die Files auf den Server mach alle meine Einträge; dass Mod findet die Datei und bestimmt die Größe. Alles gut. Nun will jemand die Datei herunterladen, dann bekommt er diese doppelt. Das heißt eine Datei mit zweimal dem gleichem Inhalt...
(Lied Pause Lied). Sehr merkwürdig... Sicherlich ist das nur ein Einstellungsproblem irgendwo im script. Bin nicht so der PHP-junkie. Also wenn jemand eine Lösung weiß.

Gruß

Verfasst: 28.06.2005 17:01
von Bastian Strauss
Hallo.. also bei den externen Downloadlinksfunktioniert alles bestens.. die Dateigröße stimmt mit dem Original ein.

Wird vielleicht irgendwie die Dateigröße in der Load.php.. angegebenund mit 2 multipliziert oder ist vielleicht noch in einer Variablen der Wert vorhanden und wird noch mal auf den schon vorhandenen Wert addiert, der dann schließlich an den Browser übergeben wird?

Verfasst: 28.06.2005 17:18
von Bastian Strauss
Jetzt wird noch verrückter.. wenn der Downloadlink frei ist.

Dann ist die Datei sogar dreifach... *kopfschütteln*

Also muss das ja irgendetwas mit der load.php Datei zu tun haben?

Verfasst: 28.06.2005 17:54
von Bastian Strauss
Also ich habe mal in der Load.php datei etwas herumgespielt

Code: Alles auswählen

if ( $file_free == "0" AND $file_extern == "0") 
	{
		if ( $userdata['session_logged_in'] AND $user_traffic > $file_size)
		{
		$query_traffic = "UPDATE " . USERS_TABLE . " SET user_traffic=user_traffic-" . $file_size . " WHERE user_id = '$user_id'"; 
		$query_klicks = "UPDATE " . DOWNLOADS_TABLE . " SET klicks=klicks+1 WHERE id = '$id'";
		$result_traffic = mysql_query($query_traffic);
		$result_klicks = mysql_query($query_klicks);
		}
		else
		{
		Header("Location: login.php");
		}
	}
Hier wird dem Benutzer ja der Traffic abgezogen,.. die Variable $file_size hat die richtige größe also kann es in dieser Datei nicht liegen.
Wie wird denn die Datenmenge dem Browser übermittelt?

In der Datei Download.php...

Code: Alles auswählen

 if ( $userdata['session_logged_in'] AND $user_traffic > $file_size AND $file_extern == "0")
                        {
                        $status = "<a href=\"load." . $phpEx . "?id=" . $file_id . "\"><img src=\"" . $images['Dl_yellow'] . "\" border=\"0\" alt=\"" . $lang['Dl_yellow_explain'] . "\"></a>";
                        $file_name = "<a class=\"gen\" href=\"load." . $phpEx . "?id=" . $file_id . "\">$file_name_name</a>";
                        }
Wird ja auch noch der Korrekte Wert übermittelt.

Wie kommt die Multiplikation nur zustande?

Herkunft

Verfasst: 28.06.2005 18:02
von gloriosa
Hallo,
da Du es vorziehst bei jeder neuen Erkenntnis eine neuen Antwort zu schreiben ohne den vorherigen Beitrag fortzuführen (nutze dazu edit) unterbreche ich unverschämterweise Deinen Monolog hier und frage Dich : Verräts Du uns woher Du die Version 3.0.1 von Hotschi's DL MOD herhast ? :wink:

Verfasst: 28.06.2005 18:14
von Bastian Strauss
Kein Problem mit dem edit.. weiß ich ja selber... sollte nur somit die enwicklungsstufe vermittelt werden.

Aber egal bei nächstenmal benutze ich halt edit.

Den Mod habe ich direkt von Hotschis Seite
http://phpbb.hotschi.de/board/downloads.php?cat=1

Da es ja scheinbar Probleme bei der 2.0er gab, habe ich mir die 3.01 Version besorgt. Ich hatte gelesen, dass in der 2.x Version die Passwörter der User ausspioniert werden können. Es gab da einen Thread zu, wo einer einen Verbesserungs Code parat hatte. Wollte ich in meiner Version einbauen und musste feststellen, dass Hotschi das bereits getan hat. Also sehe ich die Version 3.01 als Update an... nur doof ist halt das sie nicht so funktioniert :-(

Verfasst: 28.06.2005 18:27
von gloriosa
Hallo,
danke, leider ist das eine Vollversion die sogar em-kompatibel ist (!), die kein Update von 2.1.2 beinhaltet. :(

Verfasst: 28.06.2005 18:50
von Bastian Strauss
Ja gut das.. beantwortet aber leider nicht mein Problem.. mal sehen was der Hersteller dazu sagt.. hätte ja sein können, das jemand eine Lösung parat hat..

Vielleicht sollte ich den Mod auch mal in ein anderen Froum einbauen.. und schauen, ob dieser den gleichen Fehler hat... Kann es sein das sich einieg Mods untereinander nicht vertragen.

Folgende Mods habe ich installiert

Nickpages
Dowmlaod Mod
Blogs


So scheinbar muss das ja was mit dieser Aplication etwas zu tun haben... schließlich öffnet sie den Dowload
application/octet-stream.. kann mir jemand verraten wie das funktioniert..

ist das vielleicht.. ein Einstellungsfehler auf der Serverseite, schließlich ist das ja ein Linux Befehl oder? Habe ich zumindestens bei Google herausgefunden.
application/octet-stream ist für den Download zuständig

Code: Alles auswählen

if ( $file_free == "1" OR ( $userdata['session_logged_in'] AND $user_traffic > $file_size) )
	{
	header("Content-Type: application/octet-stream");
	header("Content-Disposition: attachment; filename=\"$file_name\"");
	readfile($download_dir . "" . $file_path . "/" . $file_name);
Hier wird der application ja der Pfad und der Dateiname genannt.. kann es sein das diese Applikation den Fehler verursacht?

Fehler gefunden...

Verfasst: 28.06.2005 19:14
von Bastian Strauss
Hallo ich habe den Fehler gefunden.. wenn ihr also Version 3.01 benutzt.. dann ändert einfach die load.php.. so ab...

finde folgendes

Code: Alles auswählen

if ( $file_free == "1" OR ( $userdata['session_logged_in'] AND $user_traffic > $file_size) )
und änder es in

Code: Alles auswählen

if ( $file_free == "0" AND $user_traffic > $file_size AND $file_extern == "1")
finde folgendes

Code: Alles auswählen

if ( $file_free == "1" OR ( $userdata['session_logged_in'] AND $user_traffic > $file_size) AND $file_extern == "0")
und änder es in

Code: Alles auswählen

if ( $file_free == "0" AND $user_traffic > $file_size AND $file_extern == "0")
Die alte load.php hatte zu folge, dass frei gegebene Downloads dreimal ausgeführt werden. Beduetet, die Datei war dreimal so groß wie die Original Datei. Und bei den Traffic beschränkten Downloads zweimal...

Puh..