2013-09-05 2 views
0

내가 shell_exec 그래서, 누군가가이 코드로 잘못 알고 아마도 때문에 특수 문자

$shell = 'mysqldump -uuser -ppass --where="id>' . $larger .' and id<' . $smaller .'" view allasins | gzip -c | sshpass -p "pass2" ssh [email protected] \'cat>/home/user/domain.com/file.sql.gz\''; 
$shell = escapeshellarg($shell); //this is not working, escapeshellcmd($shell) also not working 
shell_exec($shell); 

PHP

에서 실행할 명령을의, 작동하지? 오류 메시지가 없으며 단순히 작동하지 않습니다.

대단히 감사합니다.

답변

1

시도

escapeshellcmd 그래서 사용 :

$shell = 'mysqldump -uuser -ppass --where="id>' . escapeshellarg($larger) .' and id<' . escapeshellarg($smaller) .'" view allasins | gzip -c | sshpass -p "pass2" ssh [email protected] \'cat>/home/user/domain.com/file.sql.gz\''; 
+0

:

$Command = escapeshellarg($shell); 

사용법에 대한

escapeshellarg() 

은 당신의 예 내에서 작동하는, 각각의 문자열을 탈출하는 것입니다 고마워요. 당신의 대답에 많이. 그러나 나는 질문에서 지적했듯이,'escapeshellcmd'는 또한 작동하지 않는다. 경고 나 오류 메시지가 없기 때문에 이것을 디버깅하는 방법을 모르겠습니다. – aye

+0

'$ small'과'$ greater'는 단지 2 개의 숫자이므로이 변수들을 벗어날 수있는 것이 아무것도 없다고 생각합니다. '''문자가있는 첫 번째 줄의 끝 부분에 대해 걱정합니다 – aye

+0

@aye 이스케이프 구문에 대해 걱정하지 않으시겠습니까? ''.'? –