สิ่งที่คุณพยายามทำนั้นเป็นไปไม่ได้
โปรดทราบว่ามีสองด้านเสมอไป: ฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ เป็นสคริปต์บนคอมพิวเตอร์ไคลเอนต์หรือบนเซิร์ฟเวอร์หรือไม่
หากอยู่ในไคลเอนต์:คุณในฐานะผู้เยี่ยมชมจะเห็นเว็บไซต์ HTML เท่านั้น onClick
จะสามารถเปิดใช้งาน JavaScript (หรือภาษาสคริปต์อื่น ๆ ) เท่านั้น แต่จะไม่สามารถใช้สคริปต์เชลล์ใด ๆ ที่อยู่ในคอมพิวเตอร์ของคุณ สคริปต์ HTML ทำงานเฉพาะในเบราว์เซอร์และสามารถทำสิ่งที่ จำกัด ได้เท่านั้น สิ่งสำคัญที่สุดคือพวกเขาไม่สามารถโต้ตอบกับคอมพิวเตอร์ของคุณ
ลองคิดดูสิ: เบราว์เซอร์จะรู้วิธีเปิดไฟล์ได้อย่างไร คุณไม่คิดว่านี่เป็นปัญหาด้านความปลอดภัยเช่นกัน - เว็บไซต์ธรรมดาที่เปิดใช้งานสคริปต์ในคอมพิวเตอร์ของลูกค้าหรือไม่ เกิดอะไรขึ้นถ้ามีบางอย่างเช่นonClick('rm -rf /home/user')
?
อีกทางเลือกหนึ่งคือการเรียกใช้แอปเพล็ต Java ถ้าคุณต้องการให้โค้ดรันบนไคลเอนต์ แต่สิ่งนี้ไม่เหมือนกันและเป็นสิ่งที่ซับซ้อนจริงๆ ฉันไม่คิดว่าจำเป็นต้องอธิบายรายละเอียดนี้
หากสคริปต์อยู่บนเซิร์ฟเวอร์:หากคุณต้องการเรียกใช้สคริปต์ทางฝั่งเซิร์ฟเวอร์และให้ผู้ใช้ทำการเรียกใช้งานคุณต้องใช้ภาษาโปรแกรมฝั่งเซิร์ฟเวอร์ HTML เพียงอย่างเดียวไม่สามารถทำได้เนื่องจากเป็นไฟล์แบบคงที่หรือมากกว่า หากคุณต้องการโต้ตอบกับเซิร์ฟเวอร์คุณสามารถใช้PHPได้
มันมีexec
ฟังก์ชั่นในการเรียกใช้สคริปต์บรรทัดคำสั่งที่เก็บไว้ในเว็บเซิร์ฟเวอร์ โดยพื้นฐานแล้วคุณสามารถเขียนexec('/path/to/name.sh');
และจะเรียกใช้สคริปต์บนเซิร์ฟเวอร์
อย่างไรก็ตามการใส่ลงไปonClick
นี้ไม่เพียงพอที่นี่ หากคุณยังไม่รู้เกี่ยวกับ PHP และการเขียนโปรแกรมเว็บฝั่งเซิร์ฟเวอร์คุณอาจต้องการอ่านบทช่วยสอนก่อนแล้วค่อยกลับมาพร้อมคำถามเฉพาะเพิ่มเติม
หากคุณมีไฟล์ PHP กับที่เหมาะสมexec(...)
คำสั่งให้ตรวจสอบสคริปต์ที่มีผู้สิทธิ์ตั้งไม่เพียง แต่สำหรับผู้ใช้ 777
แต่ยังสำหรับกลุ่มเว็บเซิร์ฟเวอร์อยู่ในดังนั้นในกรณีที่ง่ายเพียงแค่
ในกรณีที่มีปัญหาให้ตรวจสอบค่าส่งคืนของสคริปต์ด้วยecho exec(...);
เพื่อดูว่ามีข้อผิดพลาดหรือไม่
php /path/to/file.php
นอกจากนี้คุณยังสามารถเรียกใช้สคริปต์จากบรรทัดคำสั่งและไม่ได้มาจากเบราว์เซอร์ที่มี