mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 19:26 Benutzername: Passwort: Auto-Login

Thema: PHP Record - Downloadfunktion geht nicht :( vom 13.07.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Record - Downloadfunktion geht nicht :(
Seite: 1, 2, 3  Weiter
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 :(

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 13.07.2010 22:51
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Anzeige
Anzeige
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 13.07.2010 23:09
Titel

Antworten mit Zitat Zum Seitenanfang

Wie sieht denn eine URL aus die das Script aufruft?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Burnout-Beatbox
Threadersteller

Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 13.07.2010 23:17
Titel

Antworten mit Zitat Zum Seitenanfang

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??? *Schnief*
  View user's profile Private Nachricht senden
bluespoon

Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht: Männlich
Verfasst Mi 14.07.2010 01:43
Titel

Antworten mit Zitat Zum Seitenanfang

Moin,

ist klar, wenn Du $_GET['key'] abfragst, aber nur $_GET übergibst, dann kann er nichts finden *zwinker*
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 Lächel

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Burnout-Beatbox
Threadersteller

Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 14.07.2010 11:44
Titel

Antworten mit Zitat Zum Seitenanfang

vielen vielen Dank.
Endlich mal einer der sein Handwerk beherrscht.
1A!
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 14.07.2010 11:48
Titel

Antworten mit Zitat Zum Seitenanfang

*ha ha*

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!!!
  View user's profile Private Nachricht senden
Burnout-Beatbox
Threadersteller

Dabei seit: 12.07.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 14.07.2010 12:55
Titel

Antworten mit Zitat Zum Seitenanfang

was meinst du mit ungeprüft übergeben? wo muss ich was reinschreiben, dass es sicher ist?
  View user's profile Private Nachricht senden
 
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.