php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 10-09-2008, 21:33
PHPler
 Registrierter Benutzer
Links : Onlinestatus : PHPler ist offline
Registriert seit: Oct 2003
Beiträge: 250
PHPler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem mit system!

Hallo!

Ich habe da ein kleines Problemchen mit system(). Und zwar:
PHP-Code:
system("\"C:\\programm.exe\" -param [url]http://php-resource.de[/url]"); 
funktioniert ganz gut. Nun muss ich den Parameterwert von param aufgrund einiger Sonderzeichen aber in "" setzen:
PHP-Code:
system("\"C:\\programm.exe\" -param \"http://php-resource.de/forum/forumdisplay.php?s=&forumid=3\""); 
Leider wird hier, sobald der Wert in "" ist, die ganze Kommandozeile nicht mehr ausgeführt.

Weis jemand Rat?

Merci
Mit Zitat antworten
  #2 (permalink)  
Alt 10-09-2008, 22:33
ModestLife
 Registrierter Benutzer
Links : Onlinestatus : ModestLife ist offline
Registriert seit: Sep 2007
Beiträge: 105
ModestLife ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Guck dir mal escapeshellarg() an.
Mit Zitat antworten
  #3 (permalink)  
Alt 10-09-2008, 23:21
PHPler
 Registrierter Benutzer
Links : Onlinestatus : PHPler ist offline
Registriert seit: Oct 2003
Beiträge: 250
PHPler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Muss ich das auf den gesamten Command anwenden oder nur auf den Parameter? Bislang tut sich da gar nix mit...

Oder ich sags mal so: Es sind ? und & die das ganze stören. Im oberen Beispiel wird sonst einfach nur:

http://php-resource.de/forum/forumdisplay.php?s=

aufgerufen, was natürlich nicht der Sinn der Sache ist. urlencode/rawurlencode machen da auch nichts. Hmmm

Geändert von PHPler (10-09-2008 um 23:26 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 11-09-2008, 08:28
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Muss ich das auf den gesamten Command anwenden oder nur auf den Parameter?
Naja, was willst du denn escapen? Zweiteres natürlich.
Mit Zitat antworten
  #5 (permalink)  
Alt 11-09-2008, 10:12
PHPler
 Registrierter Benutzer
Links : Onlinestatus : PHPler ist offline
Registriert seit: Oct 2003
Beiträge: 250
PHPler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja war ne blöde Frage sry. Das löst aber immernoch nicht das Problem, dass die URL nach & abgebrochen wird. Also entweder bricht die URL da ab, oder läuft mit escapeshellarg() gar nicht.
Mit Zitat antworten
  #6 (permalink)  
Alt 11-09-2008, 12:17
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

imho brauchst du escapeshellcmd() dann werden ? und & escaped. Bei escapeshellarg() werden die unescaped ausgegeben
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 11-09-2008, 12:22
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe es hier mal zum Test hingestellt http://tobisworld.ch/misc/test/test.php
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #8 (permalink)  
Alt 11-09-2008, 12:52
PHPler
 Registrierter Benutzer
Links : Onlinestatus : PHPler ist offline
Registriert seit: Oct 2003
Beiträge: 250
PHPler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da liegt wahrscheinlich der Hund begraben. Bei escapeshellcmd werden bei mir keine Sonderzeichen escaped, sondern entfernt, warum auch immer!?

Ein manuelles Escape bringt auch nichts:
PHP-Code:
$url parse_url($url);
        
        
$url $url['scheme'].'://'.$url['host'].$url['path'].'\\\?'.str_replace('&'"\\\&"$url['query']); 
Die URL wird trotzdem beim & abgebrochen.

Geändert von PHPler (11-09-2008 um 12:55 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 11-09-2008, 13:01
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schon probiert beim Command String ' statt " zu verwenden? Der einzige Unterschied zwischen meinem Code und deinem sind die Anführungszeichen. Und die User Notes bei php.net erwähnen Probleme bei gewissen Zeichen und ".

Gruss

tobi
EDIT:

Gerade mal meinen Bsp Code angepasst. Scheint so zu sein dass ? und & in " nicht ersetzt werden http://tobisworld.ch/misc/test/test.php

__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

Geändert von jahlives (11-09-2008 um 13:06 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 11-09-2008, 13:15
PHPler
 Registrierter Benutzer
Links : Onlinestatus : PHPler ist offline
Registriert seit: Oct 2003
Beiträge: 250
PHPler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du meinst so?
PHP-Code:
system("'C:\\programm.exe' -param 'http://php-resource.de/forum/forumdisplay.php\\?s=\\&forumid=3'"); 
Kommt ebenfalls nur ne abgebrochene URL bei raus.

Hab bei den User Nodes schon mitbekommen dass es da wohl probleme geben soll, aber so gut ist mein Englisch auch nicht um da alles zu verstehen...
Mit Zitat antworten
  #11 (permalink)  
Alt 11-09-2008, 13:19
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Du meinst so?
Nein, so
PHP-Code:
escapeshellcmd('C:\\programm.exe -param http://php-resource.de/forum/forumdisplay.php?s=&forumid=3'); 
Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #12 (permalink)  
Alt 11-09-2008, 13:25
PHPler
 Registrierter Benutzer
Links : Onlinestatus : PHPler ist offline
Registriert seit: Oct 2003
Beiträge: 250
PHPler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aso, ähm, funktioniert überhaupt nicht. Die ausgabe sieht dann so aus:
PHP-Code:
Cprogramm.exe -param htp://php-resource.de/forum/forumdisplay.php s= forumid=3 
Edit: Blödsinn, programm.exe wird erst gar nicht gestartet...

Geändert von PHPler (11-09-2008 um 13:33 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 11-09-2008, 13:40
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also bei mir schaut das in ' und ' so aus
Zitat:
C:\\programm.exe -param http://php-resource.de/forum/forumdisplay.php\?s=\&forumid=3
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #14 (permalink)  
Alt 11-09-2008, 13:46
PHPler
 Registrierter Benutzer
Links : Onlinestatus : PHPler ist offline
Registriert seit: Oct 2003
Beiträge: 250
PHPler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So sollte es ja eigentlich auch sein. Kann da irgend ne Einstellung iner php.ini für verantwortlich sein dass sich escapeshellcmd() so verhält? save_mode ist jedenfalls auf off bei mir mh
Mit Zitat antworten
  #15 (permalink)  
Alt 12-09-2008, 12:11
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hast du diesen String "hardcodiert" oder übernimmst du eine Usereingabe (GET oder POST)? Wenn es aus einer Usereingabe kommt könnte es sein, dass Magic Quotes seine Finger mit im Spiel hat
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:37 Uhr.