Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP]exe-bestand en dos commando

Buur
13 antwoorden
  • Hoe kun je een .exe bestand en een (msdos-commando) via php laten draaien om de uitvoer online te krijgen ?
    In MSDOS zelf gebruik ik een .exe-bestand en een textbestand om de invoer te controlleren, je krijgt dan altijd een uitvoer terug. Deze uitvoer wil ik online te zien krijgen.

    Maar hoe?
    De commando in DOS is dus bijvoorbeeld:
    [b:b8b95681d6]bestand.exe text.txt "je_eigen_invoer"[/b:b8b95681d6]

    De uitvoer is dan bijvoorbeeld je invoer met wat commentaar erbij

    [code:1:b8b95681d6]$location = 'bestand.exe';
    system ($location) or die('Kan bestand.exe niet laden<br><br>'); [/code:1:b8b95681d6]

    Dit werkt niet, ik krijg steevast 'Kan bestand.exe niet laden'.
  • 1 van deze geprobeerd?
    [code:1:89e05327a7]
    exec();
    shell_exec();
    passthru();
    [/code:1:89e05327a7]
  • Dat heb ik
    [code:1:8bebdd9ac6]
    $bestand = "/var/www/html/stage/bestand.exe";
    $output = shell_exec($bestand) or die("Kan bestand.exe niet laden!");[/code:1:8bebdd9ac6]

    Maar ik beland steeds op "Kan bestand.exe niet laden"
    Wanneer ik m'n errorlog bekijk krijg ik de melding "'cannot execute binary file'"

    hoe kan je het anders benaderen?
  • Neem het volledige pad van de executable eens mee op. Een commando als system() zou wel gewoon moeten werken. Je zou je ook nog eens in rechten kunnen verdiepen.
  • de persimissions heb ik op de server zelf gezet op 755
    wanneer ik system() uit wil testen op m'n localhost krijg ik toch die error, ondanks de volledige padbenoeming

    [code:1:a8ce55c59f]system ("C:\AppServ\www\test2\bestand.exe")or die("error!");[/code:1:a8ce55c59f]
    met dubbele slashes wel effect op m'n localhost

    [code:1:a8ce55c59f]system ("C:\\AppServ\\www\\test2\\bestand.exe")or die("error!");[/code:1:a8ce55c59f]

    nu even testen op m'n server
  • wanneer ik alles opload naar mn domein dan krijg ik helaas in de log de melding
    [Fri Mar 03 17:01:29 2006] [error] [client ipadres] sh: line 1: //var//www//html//stage//bestand.exe: cannot execute binary file
    hoe verhelp je dat
  • Windows executable op linux host? Als dat het geval is, zal het gewoon nooit werken. Linux tegenhanger van de executable zoeken. En hopen dat je voldoende rechten hebt om die te draaien.
  • weer wat geleerd :oops: :lol:
  • wanneer er geen linux versie is en je toch liever in php aan de slag wil om het bestand aan de praat te krijgen, kun je php combineren met een andere taal om het werkend te krijgen?
  • Misschien wel. Maar geef eens aan om welk bestand het gaat, wellicht dat iemand hier een oplossing kan aangeven.
  • De executable is een soort van parser:
    De parameters in DOS
    [b:2d2a360822]bestand.exe text.txt "je_eigen_invoer" [/b:2d2a360822]

    De executable checkt of de invoer van de gebruiker over1 komt met de inhoud van het textbestand. In het text bestand staan voorwaarden op de invoer van de gebruiker.
    Mocht de invoer dus over1 komen met de inhoud dan krijg je als uitvoer: de invoer + extra regels die vermeld staan in de text bestand.
    Mocht de invoer niet over1 komen dan krijg je als uitvoer terug: de invoer

    ik denk eraan om over te stappen op asp.net … alleen is die taal nog compleet nieuw voor me
  • Is het niet mogelijk daar zelf een scriptje voor te brouwen? Klinkt tenminste niet echt ingewikkeld.
  • daar ben ik dus ook zelf mee bezig maar ik denk dat de voorkeur uitgaat naar de executable, het is zelf ontworpen door het bedrijf.
    Wel maak ik zelf een functie EN ik kijk of ik de .exe aan de praat kan krijgen .. leer ik ook weer eens een andere taal ipv dat eeuwige php.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.