Avatar billede rolfo Nybegynder
17. april 2006 - 10:56 Der er 14 kommentarer og
1 løsning

shell_exec giver intet output?

Her er det simple program:

<script language="php">
  $s = shell_exec("dir");
  echo "$s<p>Done";
  phpinfo();
</script>

Her er resultatet fra serveren:
http://www.rvo.unetworks.co.uk/bem/simpletest2.php

Som det ses kommer der intet output fra "dir". Hvad kan jeg gøre ved det?

Serveren er ikke min, men manden der passer den er flink og samarbejdsvillig. Men ikke klog nok til at rette problemet uden hjælp.
Avatar billede duejensen Nybegynder
17. april 2006 - 11:12 #1
Hvorfor har du
<script language="php"> og </script> uden om.
Skulle der ikke stå <?php  og ?>  i stedet ?
Avatar billede rolfo Nybegynder
17. april 2006 - 13:00 #2
Fordi frontpage bedre kan lide det på den måde. Som du kan se køres scriptet.
Avatar billede jakobdo Ekspert
17. april 2006 - 13:09 #3
Hvad med at prøve: $s = ´dir´;
Avatar billede duejensen Nybegynder
17. april 2006 - 17:09 #4
Gad vide om det ikke hænger sammen med, at der rent faktisk ikke findes et program, der hedder "dir" . Dir er vel bare et alias, som commando promptet kender til.

(man kan jo på en windows maskine heller ikke vælge Start / Kør..., og så blot angive dir - der siger windows tilsvarende "Windows kan ikke finde 'dir' .....")


Var det ikke en ide at lave en .bat/.cmd fil og så forsøge at eksekvere den.
Du skal sandsynligvis angive den fulde path
Avatar billede jakobdo Ekspert
17. april 2006 - 19:51 #5
På en linux/unix burde dir give info om current dir.
Men du kan også overveje ls -al
Avatar billede jakobdo Ekspert
17. april 2006 - 19:54 #6
Test lige noget så simpelt som:

<?php
$output = `ls`;
echo nl2br($output);
?>
Avatar billede rolfo Nybegynder
17. april 2006 - 20:11 #7
Som du kan se fra phpinfo() er det en Windows server. Og scriptet kører fint på min lokale Windows installation. Bare ikke på den pågældende server.
Avatar billede jakobdo Ekspert
17. april 2006 - 20:13 #8
Så prøv at ret: $output = `ls`; til: $output = `dir`
Avatar billede duejensen Nybegynder
17. april 2006 - 20:27 #9
ok, hvis scriptet kører fint på din lokale windows installation, men ikke på den pågældende server, er det vel næppe selve scriptet der er interessant, men nærmere opsætningen af de to maskiner.
Kører de samme version af PHP, samme version af IIS, samme Windows version, samme xxx, yyy etc.
Avatar billede jakobdo Ekspert
17. april 2006 - 20:49 #10
Det kan jo også være noget med rettigheder.
Mener ikke du får lov til at skyde kommandoer af, hvis safe_mode er on.
Avatar billede duejensen Nybegynder
18. april 2006 - 16:49 #11
Safe_mode er off - det fremgår af phpinfo().

Kan vi se en phpinfo() fra den lokale windows installation (hvor scriptet virker) ?
Avatar billede rolfo Nybegynder
20. april 2006 - 21:15 #12
Lukker - ikke for at være grov, men der var ikke meget "ekspert"-niveau over de kommentarer jeg har set.
Avatar billede duejensen Nybegynder
21. april 2006 - 03:12 #13
Du gør det jo heller ikke nemt for os.

Du opretter et spørgsmål i kategorien programmering : script : php, og indsætter et script, og spørger hvorfor scriptet ikke giver det output du forventer.

Senere fortæller du så at scriptet fungerer fint på din lokale windows installation. Ergo er det jo ikke scriptet der er noget galt med.
Man kan så diskutere om spørgsmålet ikke skulle have været stillet i en anden kategori - men skidt nu med det.

Når vi så spørger til forskellen på de to installationer - reagerer du ikke,
hvordan kan du så forvente at få løst dit problem ?
Avatar billede jakobdo Ekspert
21. april 2006 - 08:30 #14
Folk vil have svar fra Eksperter, men opføre sig selv yderst uprof. Trist udvikling her på sitet.
Avatar billede rolfo Nybegynder
21. april 2006 - 19:45 #15
Det er oprigtig ked af at i siger.

Det kan godt være at kategorien er forkert - det kan også være at den er rigtig. det skal jeg ikke gøre mig klog på :-)

Et så simpelt script producerer selvfølgelig det forventede output, hvis ikke der er noget galt et eller andet sted. F.eks. i server opsætningen. Det overraskede mig faktisk meget at se de forholdsvis banale kommentar-spørgsmål, hvor svaret jo var givet allerede i spørgsmålet.

Jeg medgiver at der var et relevant spørgsmål, som jeg ikke har svaret på:
"Kan vi se en phpinfo() fra den lokale windows installation (hvor scriptet virker) ?"

Det kunne måske give et hint - måske ikke. For den lokale installation er _meget_ forskellig fra server installationen. Og hele server installationen var jo givet i spørgsmålet. Og jeg ville alligevel ikke efterfølgende kunne bruge en kommentar som "prøv at ændre setting xyz i serveren" til noget, da det ville være for useriøst et niveau at arbejde sammen med serverens ejer på.

Anyways - spørgsmålet er ikke længere relevant for mig. Løsningen bliver at gøre noget på en anden måde med en helt anden server (= workaround).

Og der er fortsat informationer nok i spørgsmålet - ville jeg mene - til at en sand ekspert fra hoften kan give det rette svar (eller et meget kvalificeret bud) til gavn for andre i samme situation (kan se med google at en del andre har haft tilsvarende problem).
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