Avatar billede bigo Nybegynder
17. august 2001 - 09:59 Der er 14 kommentarer og
1 løsning

exec giver ikke noget retur

Hejsa.

www.php.net så jeg at man kan eksekvere et prg. på serveren og få et output ind i php (og på skærmen).

eg.
$output = `tracert $ip_navn`;
echo \"<pre>$output</pre>\";


men der sker ikke noget..

her er hele koden:

--- SNIP ---
<HTML>
<HEAD>

<script language=\"JavaScript\">

function marker(x,y)
{
document.forms[x].elements[y].focus()
document.forms[x].elements[y].select()
}

</script>
</HEAD>
<?php
if ($ip_navn)
{
$output = exec(`tracert $ip_navn`);
echo \"<pre>$output</pre>\";
}
?>   
<BODY onLoad=\"marker(0,0)\">
Indtast destination:<br>
<FORM method=\"post\" action=\"<?=$PHP_SELF?>\">
    <INPUT type=\"text\" name=\"ip_navn\" \" onFocus=\"marker(0,0)\">
    <INPUT type=\"Submit\" value=\"Start!\">
</FORM>
</body>
</html>
--- SNAP ---
Avatar billede powerblade Nybegynder
17. august 2001 - 10:12 #1
Kører du fra en public server eller fra din egen server?
1. Nogle servere disabler exec(); da du så kan køre forskellige programmer rundt omkring på harddisken :o(
2. Hvis server ikke kører windows hedder den ikke tracert.

Lige en ting mere:
På php.net står der følgende:
exec &#8212; Execute an external program
system &#8212; Execute an external program and display output
Derfor.. Brug system(); istedet. f.eks.
system(\"tracert $ip_navn\");
Den fulde program kode hedder altså følgende:
<HTML>
<HEAD>

<script language=\"JavaScript\">

function marker(x,y)
{
document.forms[x].elements[y].focus()
document.forms[x].elements[y].select()
}

</script>
</HEAD>
<?php
if ($ip_navn)
{
$output = system(\"tracert $ip_navn\");
echo \"<pre>$output</pre>\";
}
?>   
<BODY onLoad=\"marker(0,0)\">
Indtast destination:<br>
<FORM method=\"post\" action=\"<?=$PHP_SELF?>\">
    <INPUT type=\"text\" name=\"ip_navn\" \" onFocus=\"marker(0,0)\">
    <INPUT type=\"Submit\" value=\"Start!\">
</FORM>
</body>
</html>
---------
Den burde virke.
Held og lykke.
:o)
Avatar billede bigo Nybegynder
17. august 2001 - 10:27 #2
hmm.. selv med en passthru(); sker der ikke noget.. jeg får bare siden uden output..
Avatar billede powerblade Nybegynder
17. august 2001 - 10:30 #3
så prøv at specificere locationen på programmet.
f.eks.
$output = system(\"/windows/tracert $ip_navn\");
Avatar billede bigo Nybegynder
17. august 2001 - 10:39 #4
npoe.. does not work.. gad vide hvad der ikke sker..
Avatar billede powerblade Nybegynder
17. august 2001 - 10:48 #5
prøv denne meget simple php kode.. Hvis den ikke virker er det fordi du ikke har adgang til at eksekvere filer:
<?php
$kommando = \"ping www.aspserver.dk\";
system($kommando);
?>

Står den forøvrigt lige lidt? Eller bruger den noget tid før den viser siden?
Avatar billede bigo Nybegynder
17. august 2001 - 10:54 #6
tom side..

Kigger jeg på vnc vinduet så kan jeg se i taskmanager at tracert starter op.. så den gør et eller andet..
Avatar billede bigo Nybegynder
17. august 2001 - 11:00 #7
Jeg kan se at den starter ping op.. og bruger ca. den tid der skal til at sende 4 pakker afsted.. Men nul output til skærmen.. Kan der være indstillinger i php.ini som \"slukker\" for den slags..
Avatar billede powerblade Nybegynder
17. august 2001 - 11:03 #8
Jeg har sat min apache server op med default ting i php.ini.
når jeg kører
HTML>
<HEAD>

<script language=\"JavaScript\">

function marker(x,y)
{
document.forms[x].elements[y].focus()
document.forms[x].elements[y].select()
}

</script>
</HEAD>
<?php
if ($ip_navn)
{
$output = system(\"tracert $ip_navn\");
echo \"<pre>$output</pre>\";
}
?>
<BODY onLoad=\"marker(0,0)\">
Indtast destination:<br>
<FORM method=\"post\" action=\"<?=$PHP_SELF?>\">
    <INPUT type=\"text\" name=\"ip_navn\" \" onFocus=\"marker(0,0)\">
    <INPUT type=\"Submit\" value=\"Start!\">
</FORM>
</body>
</html>

kommer en form.
Når jeg indtaster aspserver.dk sender den dette output:

HTML> Sporer rute til aspserver.dk [194.255.39.76] over et maksimum af 30 hop: 1 <10 ms 1 ms 1 ms 10.119.0.1 2 4 ms 3 ms 4 ms 194.182.14.1 3 * 300 ms 176 ms ser6-2-1.banxd1.ip.tele.dk [195.249.16.197] 4 277 ms 225 ms 243 ms 192.168.254.17 5 266 ms 239 ms 269 ms dk-lyn-c1-fddi-1-0-core.lyngby.telia.net [192.38.7.34] 6 255 ms 249 ms 217 ms dk-aar-a1-feth0-0-access.aarhus.dk.telia.net [194.255.53.243] 7 264 ms 219 ms 253 ms cpe.serial4-4.dk-aar-a1.aarhus.dk.telia.net [194.255.53.114] 8 * 276 ms * aspserver.dk [194.255.39.76] 9 * * 304 ms aspserver.dk [194.255.39.76] Sporing fuldf&#8250;rt.
Fatal error: Maximum execution time of 30 seconds exceeded in c:\\apache\\htdocs\\test.php on line 17
Avatar billede bigo Nybegynder
17. august 2001 - 11:35 #9
Installerede den sidste nye php og mysql (nu jeg var igang ;-)) og nu ruller det fino fino.. (og meget hurtigere lige pludselig..

så nu mangler jeg bare at du laver et script som skriver det fint ud ;-) (it was a joke.. )

Takker for indsatsen..
Avatar billede powerblade Nybegynder
17. august 2001 - 18:08 #10
Det er nemt at få den til at skrive fint ud.. bare brug html tagget <pre></pre> Så ligner det rigtig dos tekst og den respekterer at et \\n er et <br>. Prøv det..
Avatar billede bigo Nybegynder
19. august 2001 - 19:46 #11
Hmm.. Hvordan var det nu lige jeg skulle få sat et <br> eller \\n ind når den bare kører derudaf??
Avatar billede powerblade Nybegynder
19. august 2001 - 20:33 #12
Det er jo indsat...
Prøv at sætte et <pre> ind før den kører programmet
Avatar billede bigo Nybegynder
19. august 2001 - 20:39 #13
Takker for godt svar til dumt spørgsmål ;-) Funker naturligvis fedmest!
Avatar billede powerblade Nybegynder
19. august 2001 - 20:44 #14
Det var så lidt.
Tak for pts.. :o)
P.S. Har du icq?
Avatar billede bigo Nybegynder
19. august 2001 - 20:46 #15
3770699
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester