Здравствуйте уважаемые. Есть функция для генерации подписи. Сделал простенький модуль в котором она используется. Если использовать ее не в дужмле, то все работает, в составе модуля никак. Насколько я понял ob_start() который используется для формирования контента не дает нормально работать fwrite. Пробовал использовать ob_end_clean() и ob_clean(), только пропадает весь буферизированный контент, а функция все равно не выполняется. Код (PHP): // ФУНКЦИЯ ФОРМИРОВАНИЯ ПОДПИСИ // На входе: строка для подписи. На выходе: строка с результатом подписывания function _GetSign($inStr) { global $Path_Folder, $Path_Signer; chdir($Path_Folder); $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "r") ); $process = proc_open($Path_Signer, $descriptorspec, $pipes); fwrite($pipes[0], "$inStr\004\r\n"); fclose($pipes[0]); $s = fgets($pipes[1], 133); fclose($pipes[1]); $return_value = proc_close($process); return $s; }
proc запускает консольное приложение wmsigner. Оно как я понял как раз и занимается созданием подписи, используя файл kwm ключа от веб-мани.
А это необходимо делать именно в модуле? Может просто в модуле написать яваскрипт, вызывать аякс на компонент, а он уже делает proc_open.