Gride
Новичок
Утро доброе, господа.
Подскажите, пожалуйста, в каких случаях следует использовать escapeshellarg() и escapeshellcmd()?
Мануал рекомендует применять их к для экранирования команд и аргументов при вызове exec() и system(). Про необходимость их применения для popen() ничего не говорится.
В описании функции popen() говорится:
Я пытаюсь сделать следующее:
Как сделать правильно:
или
Теоретически, $sendmail_path может содержать другие параметры командной строки сендмейла (по умолчанию, я его беру из php.ini), а $mail->get_from() может вернуть отправителя "с пробелом", что-нибудь вроде Vasiliy Pupkin <[email protected]>.
Подскажите, пожалуйста, в каких случаях следует использовать escapeshellarg() и escapeshellcmd()?
Мануал рекомендует применять их к для экранирования команд и аргументов при вызове exec() и system(). Про необходимость их применения для popen() ничего не говорится.
В описании функции popen() говорится:
Получается, что в небезопасном режиме я должен сделать это вручную?В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd().
Я пытаюсь сделать следующее:
PHP:
$handler = popen($sendmail_path.' -t -i -f'.$mail->get_from());
if($handler)
{
fwrite($handler, $mail->to_string());
pclose($handler);
}
PHP:
$handler = popen(escapeshellcmd($sendmail_path).' -t -i -f'.escapeshellarg($mail->get_from()));
PHP:
$handler = popen(escapeshellcmd($sendmail_path.' -t -i -f'.$mail->get_from()));