2014-01-18 3 views
0

PHP 스크립트에 변수를 전달하는 HTML 양식을 설정하려고합니다. 그러면 PHP 스크립트에 전달됩니다.PHP에서 bash로 변수를 전달하는 데 문제가 있습니다.

나는 성공적으로 PHP 스크립트로 HTML 양식에서 변수를 전달할 수 있어요, 그리고 내 bash는 스크립트에 다음 패스 변수를 만들 수 있어요 : 나는를 사용

<?php 
shell_exec('./bashscript.sh testarg1 testarg2 testarg3 testarg4'); 
?> 

을하지만, 다음

<?php 
    shell_exec('./bashscript.sh $_POST[arg1] $_POST[arg2] $_POST[arg3] $_POST[arg4]'); 
?> 

내가 끝낼 :

[arg1] 
[arg2] 
[arg3] 
[arg4] 

이 내가 프랑스를 전달하려고했습니다 처음입니다 톰 PHP는 bash로. 괄호로 묶인 인수는 prob가없는 db에 게시됩니다. 어떻게하면 bash 스크립트에 인수를 성공적으로 전달할 수 있을까요? 고마워.

+0

제대로 연결하십시오! ''./bashscript.sh '. $ _ POST ['arg1 '].' '$ _ POST ['arg2 '].'... '. – kero

답변

0

변수는 작은 따옴표로 묶은 문자열이 아니라 큰 따옴표로 묶은 문자열 안에 확장됩니다.

shell_exec("./bashscript.sh $_POST[arg1] $_POST[arg2] $_POST[arg3] $_POST[arg4]"); 

이것은 기본 PHP 구문으로 쉘 사용과 관련이 없습니다.

쉘 메타 문자가 포함되어있는 경우이를 대체하기 전에 각 인수를 이스케이프하려면 escape_shell_arg을 사용해야합니다.

+0

고마워요! 그게 효과가 있었어. – user3147697

관련 문제