Zimní výprodej Zimní výprodej
40 % bodů zdarma díky naší Zimní akci!
Avatar
lubomirhajda
Člen
Avatar
lubomirhajda:13. února 18:39

Prosím o pomoc při řešení následujícího (banálního) problému:
Na svém PC používám prostředí XAMPP (Apache + PHP atd.) pro spouštění svých programů v PHP. V jednom případě používám příkaz shell_exec pro vyvolání Příkazového řádku (cmd) s parametrem editovaného TXT souboru v samostatném okně. Nově otevřené okno se po vyvolání příkazu ihned otevře pro editaci souboru (viz příkazy níže). Po editaci tohoto TXT souboru a uložení změn okno ukončím a program se vrátí do předchozího okna. Tak to chci a tak to i funguje, ale pouze jednou! Při dalším vyvolání příkazu shell_exec se nové okno vytvoří, ale pouze v systémové liště. Pak musím klasicky kliknout na něj a až poté se mi zobrazí na obrazovce. Dělal jsem pokusy i s nastavením hodnot max_execution_ti­me i max_input_time, ale výsledek je vždy stejný. Jediné na co jsem náhodou přišel je to, že po aktualizaci (reinstalaci) XAMPP se mi výše spomínané okno otevře a zobrazí na obrazovce k dalšímu použití, ale při dalším použití příkazu pro jiný TXT soubor je to opět ve starých kolejích. Funguje to opět pouze jednou. Neví někdo, které nastavení Apache nebo PHP způsobuje tuto změnu? Děkuji za použitelné rady. Pro jistotu uvádím použité příkazy:

$wSoubor = @$_GET['wSoubor'];
ini_set('max_execution_time', 0);    // max. povolený čas v sekundách na provedení skriptu
ini_set('max_input_time', 0);        // 0 = neomezený čas pro analýzu vstupů

if(function_exists('exec'))
   {
   $prikaz = "c:/windows/notepad.exe c:/xampp/htdocs/software/".$wSoubor;
   echo shell_exec($prikaz);
   }
?>

<SCRIPT language=JavaScript>
<!--
JavaScript:window.history.go(-2);
// -->
</SCRIPT>

Zkusil jsem: Změny hodnot max_execution_ti­me i max_input_time nemají asi vliv na tento problém.

Chci docílit: Cíl je zřejmý z popisu výše.

 
Odpovědět
13. února 18:39
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. února 8:25

Nevim, proc to chces delat? Ceho chces ve vysledku docilit? Nemuzes treba spoustet kod javascriptem pres casovac, musis to mit v php? Jako, urcite se prohlizece a system brani podobnemu chovani, protoze presne podobne finty pouzivaji hackeri a ruzni skudci.

 
Nahoru Odpovědět
14. února 8:25
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Martin Kašpar:15. února 10:24

Nemyslím, že by to mělo s nastavením Apache něco společného. Ostatně shell_exec nebyl určen pro spouštění aplikací s grafickým rozhraním, ale pro práci s aplikacemi v příkazové řádce.

Vyzkoušej drobou úpravu a tenhle trik na spouštění maximalizovaného okna. Mohlo by Ti to pomoc.

c:\windows\system32\cmd.exe /c start /max c:\windows\notepad.exe c:\pathtofile\file.txt
 
Nahoru Odpovědět
15. února 10:24
Avatar
lubomirhajda
Člen
Avatar
Odpovídá na Martin Kašpar
lubomirhajda:15. února 11:55

Díky Martine, jsi jediný (ze dvou), kdo mi skutečně chtěl pomoct a také pomohl. Akorát jsem musel udělat jednu změnu, protože tvůj příkaz mi otevřel samostatné okno se strukturou adresářů, což jsem nechtěl. Změnil jsem zpětná lomítka na normální, takže fungující příkaz vypadá takto:

$prikaz = "cmd.exe /c start /max c:/windows/notepad.exe c:/xampp/htdocs/software/".$wSoubor;
echo shell_exec($prikaz);

Ještě jednou ti děkuji a vlákno může být uzavřeno.
Přeju příjemný den.

 
Nahoru Odpovědět
15. února 11:55
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.