To, co próbujesz zrobić, nie jest możliwe w ten sposób.
Pamiętaj, że zawsze istnieją dwie strony: po stronie klienta i po stronie serwera. Czy skrypt jest na komputerze klienckim lub na serwerze?
Jeśli jest na kliencie: Ty jako gość widzisz tylko witrynę HTML. onClick
będzie mógł uruchomić JavaScript (lub inne języki skryptowe ), ale nie dowolny skrypt powłoki, który znajduje się na twoim komputerze. Skrypty HTML działają tylko w przeglądarce i mogą wykonywać tylko ograniczone czynności. Co najważniejsze, nie mogą wchodzić w interakcje z komputerem.
Pomyśl o tym: skąd przeglądarka wiedziałaby, jak otworzyć plik? Czy nie uważasz, że byłby to również problem z bezpieczeństwem - zwykła strona internetowa uruchamiająca wykonywanie skryptów na komputerze klienta? Co jeśli było coś takiego onClick('rm -rf /home/user')
?
Alternatywą byłoby uruchomienie apletu Java, jeśli chcesz, aby kod był wykonywany na kliencie, ale nie jest to dokładnie to samo i jest to coś naprawdę skomplikowanego. Nie sądzę, że trzeba to szczegółowo wyjaśniać.
Jeśli skrypt znajduje się na serwerze: Jeśli chcesz uruchomić skrypt po stronie serwera i pozwolić, aby użytkownik uruchomił jego wykonanie, musisz użyć języka programowania po stronie serwera. Po prostu HTML tego nie zrobi, ponieważ jest to mniej więcej plik statyczny. Jeśli chcesz wchodzić w interakcje z serwerem, możesz na przykład użyć PHP .
Ma exec
funkcję uruchamiania skryptu wiersza poleceń, który jest przechowywany na serwerze WWW. Zasadniczo można pisać exec('/path/to/name.sh');
i uruchamiać skrypt na serwerze.
Jednak samo włożenie tego w onClick
to nie wystarczy. Jeśli nie wiesz jeszcze o PHP i programowaniu WWW po stronie serwera, możesz najpierw przeczytać kilka samouczków, a następnie wrócić z bardziej szczegółowym pytaniem.
Jeśli masz plik php z odpowiednią exec(...)
komendą, upewnij się, że skrypt ma uprawnienia do wykonywania ustawione nie tylko dla użytkownika, ale także dla grupy, w której znajduje się serwer WWW, więc w najprostszym przypadku 777
.
W przypadku problemów sprawdź wartość zwracaną skryptu, echo exec(...);
aby sprawdzić, czy są jakieś błędy.
Możesz także uruchomić skrypt z wiersza poleceń, a nie z przeglądarki za pomocą php /path/to/file.php
.