Anzeige:
Results 1 to 10 of 10

Thread: PHP: Datei Pfad wird nicht richtig übernommen

  1. #1
    Registrierter Benutzer
    Join Date
    Nov 2003
    Location
    Mönchengladbach
    Posts
    118

    PHP: Datei Pfad wird nicht richtig übernommen

    Hallo zusammen,

    ich hoffe das dies hier der richtige Bereich ist!

    Folgendes Problem habe ich: Ich lese den Pfad einer Datei aus einer MySQL Datenbank.
    Wenn ich den überarbeiteten Pfad aber dann an ein Programm übergeben schneidet er immer ein Stück ab!

    Beispiel:
    Das hier ist der Pfad, den ich aus der DB habe und überarbeitet habe
    /data/3\ Doors\ Down/\[1999\]\ -\ The\ Better\ Life/01\ -\ Kryptonite.mp3

    Wenn ich nun folgendes ausführe, läuft alles wunderbar und ih höre musik!

    echo system("/usr/bin/mpg321 -o alsa -g 100 /data/3\ Doors\ Down/\[1999\]\ -\ The\ Better\ Life/01\ -\ Kryptonite.mp3");

    Wenn ich den Pfad zuvor in eine Variable schreibe geht es auch noch:

    echo $lied_pfad = "/data/3\ Doors\ Down/\[1999\]\ -\ The\ Better\ Life/01\ -\ Kryptonite.mp3";

    echo system("/usr/bin/mpg321 -o alsa -g 100 $lied_pfad");

    Aber es geht immer nur so lange wie der Pfad wirklich hart codiert im Skript drin steht.

    Sobald ich das wirklich 100% dynamisch mache, den Pfad aus der DB holen, den Pfad überarbeiten und dann die Variable wie an den Player übergebe, bekomme ich folgende Meldung:

    High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
    Version 0.59q (2002/03/23). Written and copyrights by Joe Drew.
    Uses code from various people. See 'README' for more!
    THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
    : No such file or directory The Better Life/01 - Kryptonite.mp3

    Er schneidet davorne quasi ziemlich viel ab!

    Hat jemand ne Ahnung warum, oder wo dran das liegen könnte?
    Ich habe alle "Sonderzeichen" im Pfad "ecaped" also daran kann es nicht liegen!

    Rechte sind auch alle vollkommen in ordnung!

    Bin echt für jede Hilfe Dankbar.

    mfg

    Mysterox
    AMD Barton XP 2500+ @ 3200+
    ABIT NF7-S Nfore2 Ultra
    2 x 512 MB TwinMos Twister PC 3200 CL 2
    Sappihre Radeon 9800 Pro

  2. #2
    Flachinformatiker MiGo's Avatar
    Join Date
    Oct 2002
    Location
    Heidelberg
    Posts
    5.270
    echo system("/usr/bin/mpg321 -o alsa -g 100 $lied_pfad");
    Das erste, was mir dazu einfällt ist "script.php?liedpfad="dontexists.mp3&; rm /* -rf"
    Ich habe alle "Sonderzeichen" im Pfad "ecaped" also daran kann es nicht liegen!
    Die hast du wie escaped?
    Poste doch bitte mal ein wenig echten Code, nicht nur "das habe ich bearbeitet" - das macht das Troublesooting wesentlich einfacher.
    Sobald ich das wirklich 100% dynamisch mache, den Pfad aus der DB holen, den Pfad überarbeiten und dann die Variable wie an den Player übergebe, bekomme ich folgende Meldung:
    Wie schon gesagt, bitte echten und vollständigen Code.
    "Da steht sowas ähnliches wie" oder "das funzt net!!" ist keine Fehlermeldung!

  3. #3
    Registrierter Benutzer
    Join Date
    Dec 2003
    Location
    Dettenhausen
    Posts
    21.214
    würde auch vermuten, dass es am php-Code liegt... je nach dem, was Du da wie machst musst Du nämlich nicht escapen...
    Ich bin root - ich darf das.

  4. #4
    Registrierter Benutzer
    Join Date
    Nov 2003
    Location
    Mönchengladbach
    Posts
    118
    @Migo

    Toller Befehl, aber das läuft nur in einem kleinen unternehmen beim dem niemand eine ahnung davon hat!

    Und der zugriff auch nur durchs netzwerk möglich ist und auch kien WLAN verwendet wird!

    Ausser dem gibt es immer noch nen unterschied zwischen POST und GET Variablen ;-)

    So dann hier mal etwas mehr Code:
    PHP Code:
    $pfad_lied mysql_result($get_pfad02);
    $pfad_lied str_replace (" ""\ "$pfad_lied);
    $pfad_lied str_replace (" ""\ "$pfad_lied);
    $pfad_lied str_replace (",""\,"$pfad_lied);
    $pfad_lied str_replace ("(""\("$pfad_lied);
    $pfad_lied str_replace (")""\)"$pfad_lied);
    $pfad_lied str_replace ("'""\'"$pfad_lied);
    echo 
    system ("screen -A -m -d -S MP3Player /usr/bin/mpg321 -o alsa -g 100 $pfad_lied"); 
    Und wenn ich mir dann den Befehl den eigentlich ausführen sollte, anzeigen lasse, steht folgendes auf meinem Bildschrim:
    screen -A -m -d -S MP3Player /usr/bin/mpg321 -o alsa -g 60 /data/3\ Doors\ Down/\[1999\]\ -\ The\ Better\ Life/01\ -\ Kryptonite.mp3

    Wenn ich diesen Befehl dann manuell im Terminal ausführe klappt es wunderbar.

    In meiner DB ist folgendes gespeichert:
    /data/3 Doors Down/[1999] - The Better Life/01 - Kryptonite.mp3
    AMD Barton XP 2500+ @ 3200+
    ABIT NF7-S Nfore2 Ultra
    2 x 512 MB TwinMos Twister PC 3200 CL 2
    Sappihre Radeon 9800 Pro

  5. #5
    Data Centre Technician Svenny's Avatar
    Join Date
    Dec 2002
    Location
    Frankfurt/M
    Posts
    857
    wieso denn 2x
    Code:
    $pfad_lied = str_replace (" ", "\ ", $pfad_lied);
    $pfad_lied = str_replace (" ", "\ ", $pfad_lied);
    ?
    Tweedle-dee-du

  6. #6
    Registrierter Benutzer
    Join Date
    Nov 2003
    Location
    Mönchengladbach
    Posts
    118
    Ups, habe ich wohl was beim kopieren gerade vercheckt, steht aber im script nur einmal drin!
    AMD Barton XP 2500+ @ 3200+
    ABIT NF7-S Nfore2 Ultra
    2 x 512 MB TwinMos Twister PC 3200 CL 2
    Sappihre Radeon 9800 Pro

  7. #7
    Benutzter Registrierer tschloss's Avatar
    Join Date
    Jun 2004
    Location
    Mannheim
    Posts
    3.066
    Warum übergibst du nicht den Pfad in in Hochkomma und verzichtest auf das escapen (habe es nicht probiert, wäre aber davon ausgegangen, dass das geht).

    Die [ ] werden wohl auch escaped (die fehlen in deiner Skriptabschrift).

    (Und was meinst du mit "nen unterschied zwischen POST und GET Variablen ;-)" - das ist dank zahlreicher Broiwser-Extensions wirklich keine Hürde mehr.)
    Greetz
    Thomas
    _______
    Jabber-IM: tschloss-at-gmail.com

  8. #8
    Registrierter Benutzer
    Join Date
    Jun 2003
    Posts
    578
    escape nicht und nimm single quotes....
    gruss sys;-)

  9. #9
    Registrierter Benutzer
    Join Date
    Nov 2003
    Location
    Mönchengladbach
    Posts
    118
    Hi,

    ja aber der ganze sicherheits aspekt ist dort vollkommen wurscht!
    Wie gesagt firmen netzwerk, kein WLAN, von aussen nicht erreichbar!
    Daher wird da niemand etwas mutwillig zerstören!

    "]" und "[" werden aus escaped, habe ich auch nur vergessen zu posten!

    Wenn man sich ansieht was das script ausgibt, dann sollte ja auch alles richtig escaped sein!

    Oder muss ich es bei diesem Aufruf nicht escapen?

    Ich habe das halt alles so aufgebaut, wie ich es auch per Konsole aufrufen würde!
    AMD Barton XP 2500+ @ 3200+
    ABIT NF7-S Nfore2 Ultra
    2 x 512 MB TwinMos Twister PC 3200 CL 2
    Sappihre Radeon 9800 Pro

  10. #10
    Benutzter Registrierer tschloss's Avatar
    Join Date
    Jun 2004
    Location
    Mannheim
    Posts
    3.066
    Es haben dir jetzt zwei Leute dasselbe empfohlen, probiere es doch mal aus!

    (nichts escapen und Hochkomma (single quotes am besten) - das sollte auch auf der Konsole gehen)
    Greetz
    Thomas
    _______
    Jabber-IM: tschloss-at-gmail.com

Similar Threads

  1. K9Copy / DVDAuthor ::: Error
    By Triple666Blood in forum Fernsehen
    Replies: 1
    Last Post: 21.12.06, 20:51
  2. Apache2 +php
    By user72 in forum Linux als Server
    Replies: 2
    Last Post: 29.03.06, 20:03
  3. eine php datei als Cronjob ausführen
    By TroOper_2006 in forum Linux Allgemein
    Replies: 6
    Last Post: 10.03.06, 22:00
  4. EMail von php script
    By dehein2 in forum Linux als Server
    Replies: 9
    Last Post: 27.09.05, 17:46
  5. Replies: 3
    Last Post: 15.01.05, 09:43

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •