Avatar billede zephyr Nybegynder
17. marts 2003 - 16:42 Der er 11 kommentarer

Eksekvere bat (på server) via PHP

Hej Eksperter! :o)

Min server: Win2k Server, Bulletproff FTP-Server

Jeg har forsøgt at lave et script der via php går ind og opretter en ftp-bruger ved at redigere i ftp-server-programmets users.ini.

For at dette skal kunne lykkes UDEN at ftp-serveren skal genstartes skal der køres en G6FTPSrv.exe -reload i dossen. Jeg lavede derfor en bat der så sådan ud:
cls
cd \
cd program files
cd BPFTP Server
G6FTPSrv.exe -reload

Derefter ville jeg så, via PHP, køre bat-filen:
shell_exec("loadusr.bat"); // loadusr.bat ligger i samme sti som php-filen

Jeg får dette output fra php:
c:\inetpub\wwwroot\admin>cls

c:\inetpub\wwwroot\admin>cd \

C:\>cd program files

C:\Program Files>cd BPFTP Server

C:\Program Files\BPFTP Server>G6FTPSrv.exe -reload

MEN! - kommandoen bliver aldrig "modtaget" på ftp-serveren (den viser en lille besked når man går det direkte FRA serveren)

Hvad skal jeg gøre?
Avatar billede webmasterdk Praktikant
17. marts 2003 - 16:48 #1
prøv med system("cd \ && cd program\ files && cd BPFTP\ Server && G6FTPsrv.exe\ -reload")
Avatar billede webmasterdk Praktikant
17. marts 2003 - 16:51 #2
skulle være et svar...
Avatar billede zephyr Nybegynder
17. marts 2003 - 16:56 #3
og du skriver program\ files for at escape mellemrummet? :/

Det ser ik' ud til at virke.. - og den giver intet output :(
Avatar billede webmasterdk Praktikant
17. marts 2003 - 16:59 #4
ja, det er for at den ikke skal få det i den gale hals.. har du prøvet uden \ ?
kan ikke helt huske om det er nødvendigt på windows maskiner...
Avatar billede zephyr Nybegynder
17. marts 2003 - 17:02 #5
Jepsen har prøvet uden også.. også med kun et & istedet for to..
system("cd \&cd program files&cd BPFTP Server&G6FTPsrv.exe -reload");

virker ikke :(
Avatar billede webmasterdk Praktikant
17. marts 2003 - 17:05 #6
hvad så med at udføre bat filen med system()?
Avatar billede zephyr Nybegynder
17. marts 2003 - 17:08 #7
Har skam også prøvet...

system("loadusr.bat");

Virker desværre heller ikke... den skriver ingen error ... men den lille linje der indikerer at ftp-serveren har modtaget kommandoen kommer ikke på serveren.
Avatar billede the_saint Nybegynder
19. marts 2003 - 13:21 #8
Du ska huske at din bat fil ska ligge i den shared mappe.. kan ikke huske om programmet oxo ska, mener ikke, prøv dig frem...
Jeg bruger samme system til min server, hvor man kan starte CS og HLTV server direkte fra siden...
Du ska dog huske at det er vigtigt at programmer du executer SKA afsluttes, ellers låser php..
Jeg bruger funktionen exec()
bat:
"C:\Program Files\BPFTP Server\G6FTPSrv.exe -reload"
php:
<?php
exec("c:\apache\htdocs\loadusr.bat > c:\apache\htdocs\loadusr.txt");
?>

Eller den sikre metode: installer ftp i din shared mappe, og brug exec()
Men jeg mener den virker med bat filer også...
Avatar billede the_saint Nybegynder
19. marts 2003 - 13:36 #9
php:
exec("c:\apache\htdocs\bat.bat > c:\apache\htdocs\bat.txt");
bat:
net send 10.0.0.90 test

^^ Det virkede på min, jeg modtog den net send...
tester lige om det er muligt med filer udefra den shared mappe...
Det er muligt at bruger under mapper, eks hvis den shared mappe er c:\apache\htdocs\ så kan man bruge: c:\ c:\apache\ men eks ikke c:\test\
Ved ikke hvorfor.. hvis der er en der finder en løsning plz skriv den her
Avatar billede the_saint Nybegynder
19. marts 2003 - 13:47 #10
jeg tænkte oxo lige på, hvordan ser dit brugertilføjtilgpftpkode ude :p
Avatar billede medions Nybegynder
10. august 2003 - 22:41 #11
zephyr> Kan jeg ikke prøve at se det PHP script du har lavet?

//>Rune
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