Autor |
Nachricht |
Burnout-Beatbox
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 13.07.2010 22:23
Titel PHP Record - Downloadfunktion geht nicht :( |
|
|
Hallo,
ich hoffe ich finde hier Hilfe.
Ich habe leider von PHP nicht so viel Ahnung, leider die meisten Programmierer auch nicht...
Auf unserem Live Streaming Portal haben wir das Problem, dass die Recordfunktion nicht funktioniert,
das heißt,
Es wird aufgenommen und die Datei ist auch auf dem Server vorhanden,
jedoch wenn man auf den Download button klickt, kommt, dass die Datei nicht gefunden wird, obwohl der Pfad in der Record.php der richtige ist.
Aber da ist natürlich auch noch n haufen anderen Zeug mit "key" etc. und da weiß ich eben nicht, ob da vielleicht etwas nicht stimmt.
Zur Information, das ganze hat schoneinmal funktioniert, also ist es wohl nur eine Kleinigkeit, wodurch die Weiterleitung zum Download nicht zu stande kommt.
Hier der Code, vielleicht fällt jemandem etwas auf (ein punkt, ein leerzeichen oder ähnliches) wodurch es nicht funktionieren könnte.
Code: | <?php
define('SHARE_DIR','/usr/local/red5/webapps/oflaDemo/streams/');
if(file_exists(SHARE_DIR.$_GET['key'].'rec.flv'))
{
$key = array_keys
($_GET);
$key = $key[0];
header('Content-disposition: filename='.$key.'.flv');
header('Content-Type: application/octet-stream;');
readfile(SHARE_DIR.$key.'rec.flv');
}
else
{
echo "FEHLER: RECORD NICHT GEFUNDEN!";
}
?>
|
Als Fehlermeldung wird das "echo" angezeigt, also "FEHLER: RECORD NICHT GEFUNDEN!"[/code]
Hoffe, dass mir jemand helfen kann.
Grüße,
Benny
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 13.07.2010 22:51
Titel
|
|
|
Hi,
mglw. liegts nur am Umbruch nach array_keys. Dort
wird ein Array erwartet. Probiers ma so:
Code: | <?php
define('SHARE_DIR','/usr/local/red5/webapps/oflaDemo/streams/');
if(file_exists(SHARE_DIR.$_GET['key'].'rec.flv'))
{
$key = array_keys($_GET);
$key = $key[0];
header('Content-disposition: filename='.$key.'.flv');
header('Content-Type: application/octet-stream;');
readfile(SHARE_DIR.$key.'rec.flv');
}
else
{
echo "FEHLER: RECORD NICHT GEFUNDEN!";
}
?> |
Grüße
zweitaccount
|
|
|
|
|
Anzeige
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 13.07.2010 23:09
Titel
|
|
|
Wie sieht denn eine URL aus die das Script aufruft?
|
|
|
|
|
Burnout-Beatbox
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 13.07.2010 23:17
Titel
|
|
|
http://www.s-24.tv/record.php?14a1011a6965f5b76691eb3de93747d1
so zum beispiel, wobei die ganzen zahlen natürlich für
jeden neuen stream anders sind.
also er greift ja auf die php datei zu, denn das echo funktioniert.
ich vermute ganz stark, dass irgendwas mit dem key nicht stimmt,
aber wie und wo???
|
|
|
|
|
bluespoon
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst Mi 14.07.2010 01:43
Titel
|
|
|
Moin,
ist klar, wenn Du $_GET['key'] abfragst, aber nur $_GET übergibst, dann kann er nichts finden
Du änderst die Abfrage ganz einfach. Nämlich so:
Code: | <?php
define('SHARE_DIR', '/usr/local/red5/webapps/oflaDemo/streams/');
$key = array_keys($_GET);
$key = $key[0];
if(file_exists(SHARE_DIR . $key . 'rec.flv'))
{
header('Content-disposition: filename=' . $key . '.flv');
header('Content-Type: application/octet-stream;');
readfile(SHARE_DIR . $key . 'rec.flv');
}
else
{
echo "FEHLER: RECORD NICHT GEFUNDEN!";
}
?> |
Und sofern sich Dein Document Root auf dem Server net geändert hat, funktioniert es auch
Nach dem Aufruf von record.php?14a1011a6965f5b76691eb3de93747d1 wird geschaut, ob die Datei
14a1011a6965f5b76691eb3de93747d1rec.flv existiert und als 14a1011a6965f5b76691eb3de93747d1.flv
ausgegeben.
Zum lokal testen hier ein kleines Beispiel mit einem Bild ... einfach index.php?test aufrufen
und er lädt testrec.jpg und gibt es als test.jpg aus.
http://www.mediafire.com/?y1ykbjmmcgyjezw
LG Patrick
|
|
|
|
|
Burnout-Beatbox
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 14.07.2010 11:44
Titel
|
|
|
vielen vielen Dank.
Endlich mal einer der sein Handwerk beherrscht.
1A!
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 14.07.2010 11:48
Titel
|
|
|
ok, dann ruft der nächste das Teil dann mit ../../../../very_secret_file.pwd auf, und der Server gehört Dir nicht mehr. Niemals (!!) Request-Parameter ungeprüft übergeben!!!
|
|
|
|
|
Burnout-Beatbox
Threadersteller
Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 14.07.2010 12:55
Titel
|
|
|
was meinst du mit ungeprüft übergeben? wo muss ich was reinschreiben, dass es sicher ist?
|
|
|
|
|
|
|
|