exec rubrika: Programování: PHP

2 petrbolf
položil/-a 16.10.2017
 
upravil/-a 16.10.2017

Zdravím,

potřebuju jen pro demonstační účely zobrazit výstup jednoho skriptu přes web. Pro jednoduchost jsem si řekl, že to udělámúplně primitivně v PHP nějak takto:

function spustim($prikaz) {
    exec($prikaz, $output,$retval);
    $output = join("\n", $output);
    // $output = htmlentities($output);
 
    echo "výstup: RETURN VALUE = $retval \n OUTPUT =\n$output \n";
 
}

A ted:

spustim('ls -al');

funguje. Takže funkce exec dělá co má. Když ji ale předhodím jiný příkaz,konkrétně skript v pythonu, tak nefunguje. Divné je, že když spustím z konzole php ./index.php tak to jde. Ale přes web zaboha ne. Viz. http://stahuj.domogled.com/

Komentáře

  • harrison314 : Spusti si to offline, alebo si to vyprintuj do suboru, spustat to pri kazdom nacitani webu mi pride velmi zbytocne a pri istych veciach aj nebepecne. Plus na mnohych hostingoch je exec zakazany. 16.10.2017
  • roman.hocke : Může to generovat (a nezobrazovat) nějaký error (třeba práva), přidej si za příkaz "2>&1", např. "ls -al 2>&1", ať se ti stderr dostane na výstup. 16.10.2017
odkaz
6 voda
odpověděl/-a 16.10.2017

Asi budeš mít jinak nastavenou $PATH, zkus to spustit s plnou cestou k python3 souboru.

Komentáře

  • Taco : Tak. Případně to pouštět přes /usr/bin/env. 16.10.2017

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.