1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mit lynx und exec() Befehl ausführen

Dieses Thema im Forum "PHP" wurde erstellt von ultrakollega, 12. Januar 2005.

  1. ultrakollega

    ultrakollega Erfahrenes Mitglied

    Hi,

    ich möchte mit dem exec() Befehl, den Textbrowser "lynx" ausführen um eine URL auf
    einem anderen Server auf zu rufen.

    Code (PHP):
    1.  
    2. $cmd = "lynx http://www.anderer-server.de/hallo.php > /dev/null";
    3. exec($cmd);
    4.  
    Wenn ich den Befehl in $cmd auf der Shell ausführe funktioniert es, doch aus dem
    PHP Skript leider nicht. Bekomme auch keine Fehlermeldung.

    Woran liegt das, kennst sich jemand damit aus?

    Vielen Dank!
  2. Oliver Gringel

    Oliver Gringel Erfahrenes Mitglied

    Was erwartest du denn, was passieren sollte?
  3. ultrakollega

    ultrakollega Erfahrenes Mitglied

    Ich erwarte mir das der Befehl:

    Code (PHP):
    1.  
    2. $email = "neue@email.de";
    3. $cmd = "lynx http://www.anderer-server.de/hallo.php?id=1&email=$email > /dev/null";
    4.  
    ausgeführt wird.

    Es ist so:

    Mein Skript ändert beispielsweise einen Wert in einer DB. Der geänderte
    Wert muß nun auch in einer anderen DB geändert werden. Die andere DB liegt auf
    einem anderen Server.

    Und nein, ich kann mich auf den Server nicht hinverbinden, es
    gibt nur eine Schnittstelle über eine Datei, die einfach Parameter per GET
    mitbekommt.

    Wenn ich den lynx Befehl auf der Shell ausführe funktioniert das ganze, aber wenn
    ich den Befehl mit exec() ausführe vom PHP Skript aus, geht es eben nicht.

    mfg
  4. Oliver Gringel

    Oliver Gringel Erfahrenes Mitglied

    Dann solltest du mal die Ausgabe / Rückgabe von Lynx anschauen, und die Ausgabe nicht direkt an /dev/null leiten.
  5. ultrakollega

    ultrakollega Erfahrenes Mitglied

    Die Ausgabe von lynx habe ich schon kontrolliert, die passt. Ich leite Sie auf /dev/null weil ich den Befehl ja via PHP ausführe und keine Ausgabe auf der Shell brauche.

    mfg
  6. Oliver Gringel

    Oliver Gringel Erfahrenes Mitglied

    Wenn die Ausgabe von Lynx passt, dann wurde die Seite ja offensichtlich aufgerufen.

    Warum denn eigentlich so kompliziert über lynx? Es reicht doch vollkommen, wenn du ne Verbindung zum Server auf Port 80 herstellst, und das entsprechende GET Kommando schickst.
  7. geniorxt

    geniorxt Grünschnabel

    Hast du es schonmal mit folgendem probiert:
    PHP:
    1.  
    2. $cmd = "/usr/bin/lynx http://www.anderer-server.de/hallo.php > /dev/null";
    3. exec($cmd);
    4.  
    Vielleicht findet er lynx nicht. So gibst du den genauen Pfad für lynx an.
    Ein Versuch ist es ja wert.
  8. ultrakollega

    ultrakollega Erfahrenes Mitglied

    Kannst du mir mal die benötigten Befehle für die Aktionen nennen, damit ich mich da mal schlau machen kann ...

    Vielen Dank ;-)
  9. Oliver Gringel

    Oliver Gringel Erfahrenes Mitglied

Diese Seite empfehlen