php en batchbestanden exec op windows

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MeneerKrab
  • Registratie: Augustus 2000
  • Laatst online: 16-07 16:14
Ik zit met het volgende probleem.
ik heb een php bestand die een statsrun.bat aanstuurt, alleen wordt deze niet gestart vanaf de webserver.

stats.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<HTML>
<title>Statsrun bezig</title>
<BODY bgcolor=#000000>

<div align="center">
<table valign="center" width=100%>
<tr>
<td width="100%" align="center"><b>
<font size=4 face=Verdana color=#FF7D00>
<?php

        $runtijden = fopen("runtijden.txt","r+");
        $runtijd = fgets($runtijden,128);
        fclose($runtijden);

        $statstijdfile = fopen("statstijd.txt","r+");
        $tijd_laatste = fgets($statstijdfile,128);

        $tijd_nu = time();

        $dif = $tijd_nu-$tijd_laatste;

        if ($dif > 30) {
                echo "[img]\"icons/hourglass.gif\"[/img]<BR>";
                echo "De statsrun is bezig en zal ongeveer $runtijd seconde duren.<BR />";
                echo "<meta http-equiv=\"refresh\" content=\"1;URL=statsrun.php?href=byhost.html\">";
                ftruncate($statstijdfile,0);
                rewind($statstijdfile);
                fputs($statstijdfile,$tijd_nu); }
        else {
                echo "[img]\"icons/forbidden.gif\"[/img]<BR>";
                echo "Er is slechts één statsrun per 30 seconde!<BR />";
                echo "De statsrun is net al gedaan.<BR />";
                echo "<meta http-equiv=\"refresh\" content=\"60;URL=$HTTP_REFERER\">"; }
        fclose($statstijdfile);
        $dif=round($dif/60,0);
        echo "(De laatste statsrun was $dif minuut geleden en duurde $runtijd seconde)<BR />";

?>
</b></td>
</tr>
</table>
</div>

</BODY>
</HTML>


statsrun.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<HTML>
<head>
<title>Statsrun voltooid</title>

<?php

                $t_nul = time();
                exec("statsrun.bat");
        exec("exit(0)"); 
                echo "<meta http-equiv=\"refresh\"content=\"1;URL=$href\">";
                $t = time();
                $t_delta = $t - $t_nul;
                $runtijden = fopen ("runtijden.txt","r+");
                ftruncate($runtijden,0);
                fputs($runtijden,$t_delta);
                fclose($runtijden);
?>

</head>
<BODY bgcolor=#000000>
</BODY>
</HTML>


en de statsrun.bat
code:
1
2
c:\perl\bin\perl.exe c:/ogrproxy/rc5/striplog2.pl
c:\perl\bin\perl.exe c:/ogrproxy/rc5stats/ppstats.pl


run ik statsrun.bat vanaf de server, dan doet hij het goed
run ik hem via stats.php dan wil hij dus niet, wat heb ik hier verkeerd gedaan?

stats.php en statsrun.php worden vanuit c:\inetpub\wwwroot\rc5-72\ gerunt.

Acties:
  • 0 Henk 'm!

Verwijderd

1: Staat safemodus aan of uit?
deze moet uitstaan om te kunnen execen :)

dit kan je achterhalen door
PHP:
1
phpinfo();



2:
probeer
PHP:
1
exec('c:\perl\bin\perl.exe c:/ogrproxy/rc5/striplog2.pl');

Acties:
  • 0 Henk 'm!

  • MeneerKrab
  • Registratie: Augustus 2000
  • Laatst online: 16-07 16:14
Verwijderd schreef op 08 December 2002 @ 20:22:
1: Staat safemodus aan of uit?
deze moet uitstaan om te kunnen execen :)

dit kan je achterhalen door
PHP:
1
phpinfo();



2:
probeer
PHP:
1
exec('c:\perl\bin\perl.exe c:/ogrproxy/rc5/striplog2.pl');
safemodus staat uit

als ik 2 probeer dan krijg ik dit
Warning: Unable to fork [c:\perl\bin\perl.exe c:/ogrproxy/rc5stats/ppstats.pl] in c:\inetpub\wwwroot\rc5-72\test.php on line 2

Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 13:29
Werkt het uitvoeren van .exe bestanden wel?
Dan moet je waarschijnlijk:
command.com -c statsrun.bat (win 9x ..) of
cmd.exe -c statsrun.bat (win2k ..)
doen.

Acties:
  • 0 Henk 'm!

  • MeneerKrab
  • Registratie: Augustus 2000
  • Laatst online: 16-07 16:14
Sjaaky schreef op 08 December 2002 @ 20:29:
Werkt het uitvoeren van .exe bestanden wel?
Dan moet je waarschijnlijk:
command.com -c statsrun.bat (win 9x ..) of
cmd.exe -c statsrun.bat (win2k ..)
doen.
dan krijg ik nog steeds die FORK warning

Acties:
  • 0 Henk 'm!

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 16-08 06:44

CyberSnooP

^^^^ schrijft --->

Misschien heb je iets aan shell_exec()?

|_____vakje______|


Acties:
  • 0 Henk 'm!

  • MeneerKrab
  • Registratie: Augustus 2000
  • Laatst online: 16-07 16:14
die geeft weer een output, en dan krijg ik dus weer een foutmelding
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:


ik hoef dus alleen maar een bestandje te runnen op mijn server.
Pagina: 1