php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.06.2010, 09:46  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von Angins Beitrag anzeigen
PHP-Code:
$datei fopen("test.bat""w+");                     

fwrite($datei"\\\intern\htdocs$\\fileliste\CPAU.exe -u admin -p pw -ex \"xcopy ".$pfad1." ".$pfad2."\ /Y /Q\"");    # Logdaten in Logfile schreiben
fclose($datei); 
Also wenn ich mir die Verteilung der Backslashes so anschaue, wundert es mich nicht, das es "nicht läuft"...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.04.2011, 07:39  
Neuer Benutzer
 
Benutzerbild von Kallemann
 
Registriert seit: 22.04.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Kallemann befindet sich auf einem aufstrebenden Ast
Standard

Hallo Allerseits,
ich bin ganz neu hier und ein völliger PHP-Anfänger. Ich habe mich registriert, weil mich ein ähnliches Problem wie Angins zur Verzweiflung treibt. Ich möchte mit Hilfe eines PHP-Scripts eine DOS-Software starten. Dabei habe ich schon verschiedene Variationen eines exec-Kommandos durchprobiert. Die DOS-Software und das PHP-Script laufen natürlich serverseitig bzw. das DOS-Programm soll serverseitig laufen. Hier die PHP-Scriptzeilen ...
PHP-Code:
<html>

<head>
<title>greenink WebShop</title>
</head>

<body>
<?PHP
exec
("C:/WINDOWS/SYSTEM32/CMD.EXE /C Z:\\SETUPP~1\\DOS\\SAVE\\MYPROGS\\GWS\\PROGPATH.GWS\\GWS.EXE");
?>
</body></html>
Wenn ich dieses Script vom Browser aus starte, passiert rein gar nichts, keine Fehlermeldung, nichts.
Die Syntax von exec habe ich aus einem Buch, doch dort steht nur eine kurze Befehlsbeschreibung. Könnte jemand mir bitte behilflich sein?

Herzliche Grüße,
Kallemann
Kallemann ist offline   Mit Zitat antworten
Alt 22.04.2011, 08:10  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen. Die Funktion gibt lediglich die letzte Zeile aus dem Befehlsergebnis zurück. Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie stattdessen die Funktion passthru().
Die Zeile wird wohl in deinem Fall eine leere Zeile sein.

Stelle sicher:
- Das du die funktionsweise von exec verstanden hast
- Das Programm das du dort startest mit dem Betriebssystem des Servers kompatibel ist
- Das Programm das du dort startest eine Ausgabe zurückliefert für Erfolg / Misserfolg die du auswerten könntest

Man sollte in aller regel das Ausgabe-Array nutzen um Programminteraktionen zu überwachen. Bedenke auch, das es relativ Sinnbefreit werden kann Shop-Software über exec in ein HTML-Dokument einzubetten, derweil darüber relativ bescheidene Navigation / Steuerung möglich ist.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 23.04.2011, 03:13  
Neuer Benutzer
 
Benutzerbild von Kallemann
 
Registriert seit: 22.04.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Kallemann befindet sich auf einem aufstrebenden Ast
Standard

Hallo TrOy,
ich versuche eine DOS-Software über ein PHP-Script zu starten. Die DOS-Software gibt BMP-Bilder aus, über die eine Image-Map gelegt wird. Dadurch kann ich die DOS-Software steuern. Wenn Du möchtest, kannst Du Dir das ja mal zum besseren Verstandnis unter http://www.karllindfeld.de/screen00.php ansehen.
Zur Zeit kann ich die DOS-Software nur unter Windows starten, per Doppelclick auf eine PIF-Datei. Wenn ich sie aber als Webshop gebrauchen möchte, muß ich sie auch über einen Browser via PHP-Scipt starten können.
Versteht Ihr mein Problem?
Kallemann ist offline   Mit Zitat antworten
Alt 23.04.2011, 04:42  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Dein Problem versteh ich, nur du siehst das aus einem falschen Blickwinkel. Das Programm was du nutzten willst hat ein eigenes Interfaces zur Steuerung. Würde es beim aufruf automatisch irgendetwas erstellen wäre das so lösbar. Da es aber Benutzerwerte erwartet, kannst du dessen Start nicht einfach blind in eine Webseite "integrieren".

exec() startet das was du angibst als eigenen Prozess. Du kannst ausgaben ( textbasierende ) per zusätzliche Angaben von einem Array abfangen um sie nach dem ausführen auszuwerten. Die Software innerhalb eines Webshops (?) zu nutzen empfinde ich hier als falschen Ansatz. Wenn du unbedingt Bilder ((teil-)automatisiert) erstellen willst, kannst du das auch mit PHP ( GDlib ) sogar mit wesentlich geringerer Zieldatei-Größe als es BMP ( Windows Bitmaps ) könnte ( bspw. JPEG, PNG, ... ).
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 23.04.2011, 09:52  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

PHP-Code:
fwrite($datei"\\\intern\htdocs$\\fileliste\CPAU.exe -u admin -p pw -ex \"xcopy ".$pfad1." ".$pfad2."\ /Y /Q\"");    # Logdaten in Logfile schreiben 
Wenn der Befehl als Batch-Datei im Kontext des PHP Prozesses läuft könnte es meiner Meinung nach noch folgende Probleme geben:

- Sind $pfad1 und $pfad2 auch relative Pfade? Dann könnte es Probleme mit dem Arbeitsverzeichnis geben.
- Du greifst auf ein Netzlaufwerk zu - hat der Benutzer unter dem der Apache/PHP Prozess läuft Zugriff auf dieses Netzlaufwerk?
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 23.04.2011, 10:50  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von Kallemann Beitrag anzeigen
PHP-Code:
<?PHP
exec
("C:/WINDOWS/SYSTEM32/CMD.EXE /C Z:\\SETUPP~1\\DOS\\SAVE\\MYPROGS\\GWS\\PROGPATH.GWS\\GWS.EXE");
?>
Es ist unnötig, wenn nicht sogar falsch, den Kommandozeileninterpreter aufzurufen und ihm das Programm zu übergeben. Ruf nur das eigentliche Programm auf, anders hättest du auch gar keine Möglichkeit, diesem Programm Parameter mitzugeben (sowas funktioniert nicht: "c:/PRG.EXE /c c:/PRG2.EXE /x" -> c soll Parameter für das erste, x Parameter für das zweite Programm sein)
Zweitens solltest du das Escaping nicht selber machen, sondern stattdessen escapeshellarg() benutzen.
Und - falls du nicht noch Windows 95 oder 98 mit FAT verwendest: die Shortname Notation (SETUPP~1) vergisst du auch ganz schnell wieder... du übergibst den langen Namen, den dir der Explorer anzeigt. Für das kürzen/mappen ist das OS zuständig.

Ist dein Server überhaupt ein WinOS?
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 23.04.2011, 15:26  
Neuer Benutzer
 
Benutzerbild von Kallemann
 
Registriert seit: 22.04.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Kallemann befindet sich auf einem aufstrebenden Ast
Standard

Hallo. Danke, dass Ihr Euch die Zeit genommen habt, mir zu antworten. Mein Server ist ein Win XP Pro Rechner SP3. Ich muss zugeben, dass ich nicht alles verstehe. Wenn ich folgendes PHP-Script starte, kriege ich zumindest ein Fehler-Beep von meinem DOS-Programm.
PHP-Code:
<?PHP
$cmd
="Z:/MYDOS/GWS/PROGPATH.GWS/GWS.EXE GREENINK.INI GREENINK0;KARL WEBSHOP";
exec($cmd);
?>
Ich glaube, ich verstehe die Funktion des PHP-Exec tatsächlich nicht. Es gibt einen gleichnamigen Befehl unter Pascal, vielleicht mißverstehe ich deswegen das PHP-Exec.
Kallemann ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Xampp stürtzt bei zuvielen exec ab themonk PHP Tipps 2010 5 04.06.2010 14:57
EXEC Programm startet nicht auf Linux Bubelbub PHP Tipps 2010 7 26.02.2010 13:54
exec aktivieren Painkiller18 Server, Hosting und Workstations 3 01.02.2010 21:35
exec() und y/n-Frage aha_01 PHP-Fortgeschrittene 1 19.11.2009 12:33
PHP exec() .jar Datei stayInside PHP-Fortgeschrittene 5 11.10.2009 06:18
exec() Kommando mit Sonderzeichen skummy PHP Tipps 2009 6 30.07.2009 16:31
[Erledigt] exec - prog startet nur ganz kurz Jojo_44 PHP Tipps 2009 12 07.07.2009 19:25
PHP und batch Templerschaf PHP Tipps 2008 14 08.11.2008 09:27
Shell / Batch Script um mehrere PHP Dateien gleichzeitig auszuführen HackReb PHP-Fortgeschrittene 1 09.09.2008 13:29
exec(), Programm läuft nur als Task Superfunk2000 Server, Hosting und Workstations 1 05.07.2008 09:14
Exec() im IIS funktioniert nicht Superfunk2000 PHP Tipps 2008 24 04.07.2008 15:12
exec; seite bleibt hängen...auch mit umleitung Crypi PHP Tipps 2006 7 20.12.2006 21:14
[Erledigt] exec() Funktion PHP-Fortgeschrittene 1 22.08.2005 19:33
unzip per exec() funktioniert leider nicht PHP-Fortgeschrittene 7 27.06.2005 15:33
xxamp-apache startet und bricht ab... Server, Hosting und Workstations 4 18.02.2005 11:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php exec cmd.exe, exec batch, batch exec start, php dos programm aus php starten, cpau programm mit parameter starten, exec cmd rückgabe, beschreibung parameter cpau, php exec() windows batch, php script mit dos starten, server exec aktivieren, was kann man alles mit exec() starten, php exec aktivieren, exec php browser mit seite starten, dosprogramm steuern php, cmd.exe php exec error:1, dosprogramm mit php bedienen, php exec nichts passiert, xampp stapeldatei startet aber ohne die image

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum