Download slots ermöglichen nur wie?

Danke, aber es scheint nich daran zu liegen, auch jetzt ist kein download möglich bzw. der IE zeigt an "Seite nicht gefunden" und Firefox zeigt nur eine leere Seite an.

grüße strex

edit:// Kannste selber testen: http://www.eubw.net/otr
 
Es waren doch noch ein paar Fehler enthalten.
PHP:
<?php

	include_once "dbconnect.php";

	// Konfiguration
	$maxspeed = 500;
	$maxslots = 4; 

	// prüfen ob file-Wert existiert
	if( !isset($_GET['file']) || trim($_GET['file']) == '' ) {
		header($_SERVER['SERVER_PROTOCOL'].' 406 Not Acceptable');
		echo 'Es wurde keine Datei angegeben.';
		exit;
	}

	$file = basename($_GET['file']);
	$path = "hf83jdw8ej3dsd/".$file;

	// Existenz der Datei prüfen
	if( !file_exists($path) ) {
		// Datei existiert nicht
		header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
		echo 'Die angefragte Datei wurde nicht gefunden.';
		exit;
	}

	// Anzahl der verfügbaren Slots prüfen
	$query = '
		SELECT
		        1
		  FROM
		        `slots`
		  WHERE
		        `used` < ' . $maxslots . '
		';
	if( !mysql_num_rows(mysql_query($query, $DatabasePointer)) ) {
		// keine freien Slots verfügbar
		header($_SERVER['SERVER_PROTOCOL'].' 503 Service Unavailable');
		echo 'Es sind bereits alle Slots belegt. Bitte versuchen Sie es in einigen Minuten wieder.';
		exit;
	}

	// Datei öffnen
	if( !is_readable($path) || ($fd = @fopen($file, "r")) === false ) {
		// Datei ist nicht lesbar oder konnte nicht geöffnet werden
		header($_SERVER['SERVER_PROTOCOL'].' 500 Internal Server Error');
		exit;
	}

	// Inkrementieren der benutzten Slots
	$query = '
		UPDATE
		        `slots`
		  SET
		        `used` = `used` + 1
		';
	mysql_query($query, $DatabasePointer);

	// Schicken des Dateiinhalts
	header("Cache-control: private");
	header("Content-Type: application/x-otrkey");
	header("Content-Length: ".filesize($path));
	header("Content-Disposition: filename=".$file);
	flush();
	while( !feof($fd) ) {
		echo fread($fd, round($speed*1024));
		flush();
		sleep(1);
	}

	// Inkrementieren des Download-Zählers
	$query = '
		UPDATE
		        `downloads`
		  FROM
		        `stats` = `stats` + 1
		';
	mysql_query($query, $DatabasePointer);

	// Dekrementieren der benutzten Slots
	$query = '
		UPDATE
		        `slots`
		  SET
		        `used` = `used` - 1
		';
	mysql_query($query, $DatabasePointer);

	fclose($fd);
	mysql_close();

?>
 
Parse error: parse error, unexpected '{' in /srv/www/htdocs/web1/html/otr/start.php on line 10

Das möchte heute irgendwie nicht:rolleyes:
 
Das möchte und möchte nich, jetzt findet er wieder nix. Also "Seite nicht gefunden", komischer Tag heute:rolleyes:

grüße strex
 
Meines hab ich jetzt mehr oder weniger am laufen, aber eines was ich mir vorher schon gedacht habe tritt nun ein. Nämlich wenn man einen Download abbricht, dann bleibt der Slot weiter belegt und wird nicht mehr gelöscht. Also in der laufe der Zeit läuft das System voll.

Gibt es eine Möglichkeit dieses zu unterbinden? Gibt es eine besser Möglichkeit das zu realieseren?

@Gumbo hast du schon die Fehler behoben?
 
Hab jetzt mal "error_reporting(E_ALL);" hinzugefügt, FF zeigt trozdem nur eine weiße Seite an.


Das größere übel ist aber, wenn man den download abbricht, dann bleibt der slot enthalten. wie bekomm ich sowas weg?


grüße strex
 
Zurück