Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Komendy dzialajace jak cmd, problem z przekazywaniem zmiennych wejsciowych
poh
post 26.01.2012, 19:17:31
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 12.12.2008

Ostrzeżenie: (0%)
-----


Witam, pisze maly serwis, ktory ma za zadanie wykonanie programu napisanego w cpp z obsluga wejsc i wyjsc (stdin stdout).

Pod windowsem, w cmd, odbywa sie to za pomoca

Kod
C:\sciezka\program.exe <in.txt >out.txt


Na localhoscie (xampp, apache z php 5.3) dzialaja wszystkie funkcje, ktore "imituja" cmd np: exec, system, proc_open.

Natomiast, jesli chce to umiescic na serwerze w szkole (w64, IIS, php 5.2, safe_mode off, w/w funkcje dzialaja), php tak jakby nie widzi, ze wejscia z stdin np:

Kod
2 4
1 3
4 5
6 3
...

"naleza" do programu i wyswiela bledy wiersza polecen, ze "2 4 jest nieprawidlowa komenda blabla..".

przykladowe uzycie exec() w tym przypadku wyswietla bledy w $output

  1. <?php
  2. exec("%windir%\\SysWoW64\\cmd.exe \k C:\\sciezka\\app.exe <in.txt 2>&1", $output);
  3. ?>


lub tez proc_open()

  1. <?php
  2. $descriptorspec = array(
  3. 0 => array("file", "in.txt", "r"), // stdin is a pipe that the child will read from
  4. 1 => array("file", "out.txt", "w"), // stdout is a pipe that the child will write to
  5. 2 => array("file", "error-output.txt", "a") // stderr is a file to write to
  6. );
  7.  
  8. $process = proc_open('%windir%\\SysWoW64\\cmd.exe \k C:\\sciezka\\app.exe', $descriptorspec, $pipes);?>


Jak rozwiazac problem? na localhoscie dziala wiekszosc (jak nie wszystkie) rozwiazan, na serwerze zadne..
Go to the top of the page
+Quote Post
jackussa
post 31.01.2012, 12:20:06
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.09.2010

Ostrzeżenie: (0%)
-----


Myślę że problemem tutaj jest to iz używasz Xampp, czyli Apacha, który oparty jest na Unixie, a więc wszystkie komendy exec które wpisujesz powinny być komendami unixowymi. Sróbuj przerobić zapytanie kompilacyjne pod unixa, albo zainteresuje się serwerem microsoftowym np IIS
Go to the top of the page
+Quote Post
h3xed
post 31.01.2012, 15:17:54
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 7
Dołączył: 30.01.2012

Ostrzeżenie: (0%)
-----


Cytat
Natomiast, jesli chce to umiescic na serwerze w szkole (w64, IIS, php 5.2, safe_mode off, w/w funkcje dzialaja)


Czytać nie umiesz ? Napisał, że na IIS działa... xampp jest na windzie to co mają do tego komendy unixowe ?

Jak dla mnie poszukaj w zabezpieczeniach, to jest windows server ?

Problem leży w zabezpieczeniach, IIS w przeciwieństwie do apache nie ma standardowo dostępu do exca. Jednak nie znam za dobrze IIS więc nie pomogę, poszukaj w manualu od IIS.

edit:

Look it: http://www.somacon.com/p255.php

Ten post edytował h3xed 31.01.2012, 15:22:38
Go to the top of the page
+Quote Post
erix
post 31.01.2012, 15:38:14
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Myślę że problemem tutaj jest to iz używasz Xampp, czyli Apacha, który oparty jest na Unixie, a więc wszystkie komendy exec które wpisujesz powinny być komendami unixowymi.

Że co? O.o'


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 06:54