Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Komendy CMD
Forum PHP.pl > Forum > PHP
Misiuu
Witam, mam tylko małe pytanie, czy istnieje jakaś możliwość wpisywania komend CMD w php, tzn, żeby to nie było tylko polecenie i wynik, ale bardziej złożone funkcje. Typu, telnet->o->i sie łączy z czymś, chodzi mi o takie drzewko komend każda po jakieś..
dało by sie zrobić to jakoś na if'ach ?
Carter
Funkcja exec http://php.net/manual/en/function.exec.php
Misiuu
No własnie patrze sobie ale nie ogarniam,

da sie zrobić by połączyć się w php z FTP ? za pomoca własnie cmd ? czyli komenda FTP -> o ->ftp.cos.pl -> uzytkownik -> hasło ->jakś komenda ?
webdice
Przy większości komend, parametry możesz podać w jednym wierszu. Wpisz sobie:

Kod
telnet /?
ftp --help
Misiuu
a czy działały by komendy zmiany hasła ? albo , przerzucania pliku, z jednego folderu do drugiego , lub tez wpisanie ścieżki do uploadu?
webdice
Zakładam że nie przeczytałeś tego co napisałem. Tak więc wpisz sobie w konsoli ftp --help i zobacz co dokładnie tam pisze, a w szczególności zwróć uwagę na przełącznik s.

PS. Nie zaczynamy zdania od a, a o wielkości liter już nie wspomnę.
Misiuu
Przepraszam za moją składnie , już sie poprawiam, tak to jest jak trzymasz kanapkę w jednej dłoni. Zwróciłem uwagę ale w tym nie ma, by wpisać użytkownika i hasło, do FTP. jest tylko -a jako logowanie sie anonimowo , skąd skrypt bedzie wiedział co wpisać by sie zalogować ?
webdice
Plik c:\ftp.txt

Kod
użytkownik
hasło
komenda 1
komenda 2


Kod
ftp -s:c:\ftp.txt host


Smacznego.
Misiuu
owszem działa, ale czy plik ftp.txt może sie znajdować na serwerze www ? pod jakimś adresem ip np.
webdice
Nie, tylko na dysku lokalnym.
Misiuu
Dało by sie zrobić połączenie ftp bez tego pliku, tzn, na samym jednym wiersz w którym wpisze uzytkownika i hasło ?
webdice
Cytat(Misiuu @ 29.01.2012, 23:27:01 ) *
Dało by sie zrobić połączenie ftp bez tego pliku, tzn, na samym jednym wiersz w którym wpisze uzytkownika i hasło ?


Nie Windowsowym programem. Zakładam że masz problem z brakiem pliku na dysku komputera z którego inicjowane jest połączenie FTP. Skoro masz dostęp do konsoli, to taki plik możesz sobie utworzyć.

Kod
touch c:\ftp.txt && echo treść pliku > c:\ftp.txt
Misiuu
Gdy tak robie , wyskakuje ze touch i reszte wyświetla mi komunikat iż, komenda jest nierozpoznawalna.
webdice
Poszukaj jak w Windowsie tworzy się nowy plik, nie czekaj na gotowe.
Misiuu
ok znalazlem cos takiego

Cytat
echo text >>c:\ftp.txt



czy dało by sie wykonać takie polecenie z poziomu strony www ?

gdy wpisuje
  1. <?php system("echo text >>c:\text.txt"); ?>

to nie działa.
strife
Cytat(Misiuu @ 30.01.2012, 00:02:14 ) *
ok znalazlem cos takiego




czy dało by sie wykonać takie polecenie z poziomu strony www ?

gdy wpisuje
  1. <?php system("echo text >>c:\text.txt"); ?>

to nie działa.


Zobacz co zwraca Ci to co napisałeś najpierw.
Misiuu
hmmm nie wiem czy dobrze myśle, ale

string system ( string $command [, int &$return_var ] )

$command jaką tu komende wstawić ? skoro gdy w cmd wpisze "echo test >>c:\plik.txt" to zadziała, hmm nie wiem czy w tym jest jakaś komenda

może jakos bardziej mi to podsuniesz ?
strife
Cytat(Misiuu @ 30.01.2012, 00:29:28 ) *
hmmm nie wiem czy dobrze myśle, ale

string system ( string $command [, int &$return_var ] )

$command jaką tu komende wstawić ? skoro gdy w cmd wpisze "echo test >>c:\plik.txt" to zadziała, hmm nie wiem czy w tym jest jakaś komenda

może jakos bardziej mi to podsuniesz ?


Pisałem o tym, abyś przerobił swój kod analogicznie do tego co jest napisane na php.net. Czyli przypisać do system() zmienną:

  1. $output = system("echo text >>c:\text.txt");
  2. var_export($output); // zobaczymy co wyswietli linia polecen
  3. ?>


Wtedy będziesz wiedział, czemu się plik nie tworzy bo pewnie zobaczymy jakiegoś rodzaju błąd.
webdice
Zakładam że chodzi o zmienne środowiskowe.
ShadowD
Jeśli chcesz operacje na ftp to php ma do tego jakieś funkcje i wcale nie potrzebujesz pośrednika w kształcie cmd, poczytaj tutaj - http://webhosting.pl/Tworzymy.wlasnego.kli...TP.w.jezyku.PHP
vee
Oczywiście jesteś w 100% pewien, że tam gdzie wrzucasz plik PHP (serwer), pracuje Windows, a nie Linux/Unix, że próbujesz tam uruchomić Windowsowe komendy? Komendy na Win (a na pewno część z nich) różnią się od tych w Linuxach. Upewnij się na jakim środowisku jest ten Twój plik PHP uruchomiony. A co do FTP: http://php.net/ftp
Misiuu
wyświetliło mi tylko,
Cytat
"
:/ tak wiem, ale ja potrzebuje to zrobić na cmd

tak, działa exclamation.gif : D zamiast c:\plik.txt dałem c:/plik.txt i teraz działa jak ta lala : D dzięki za pomoc !
Coyot121
Witam, nie chcę tworzyć nowego tematu więc zapytam tu.
chcę stworzyć backup bazy danych postgresowej. przygotowałem sobie skrypt. działa z linii komend, dodałem sobie go do pliku bat, odpala się i tworzy plik z backupem. problem pojawia się, gdy chcę do odpalić z poziomu php

zawartość pliku .bat
Kod

start pg_dump -s -Uwww -f C:/xampp/htdocs/projekt/media/files/backup/schemat/schema.sql baza_115


próbowałem to odpalić:
Kod
exec('start pg_dump -s -Uwww -f C:/xampp/htdocs/projekt/media/files/backup/schemat/schema.sql baza_115');
exec('cmd start pg_dump -s -Uwww -f C:/xampp/htdocs/projekt/media/files/backup/schemat/schema.sql baza_115');
exec('cmd pg_dump -s -Uwww -f C:/xampp/htdocs/projekt/media/files/backup/schemat/schema.sql baza_115');


system('start pg_dump -s -Uwww -f C:/xampp/htdocs/projekt/media/files/backup/schemat/schema.sql baza_115');
system('cmd start pg_dump -s -Uwww -f C:/xampp/htdocs/projekt/media/files/backup/schemat/schema.sql baza_115');
system('cmd pg_dump -s -Uwww -f C:/xampp/htdocs/projekt/media/files/backup/schemat/schema.sql baza_115');

passthu(); z tym też kombinowałem bez skutecznie

rezultat to 1 lub zmulenie strony.
Dodam jeszcze, że strona działa na kohanie 2.3.4 jeśli ma to jakieś znaczenie.
jakieś sugestie czemu się nie uruchamia?
dodam, że po naciśnięciu bata plik z bazą tworzy się do 6 sekund
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.