Задать вопрос
@Ilya12345

Eval php, почему не работает вторая вызываемая функция?

Доброго времени суток.
Для телеграм бота делаю ответы для сообщений в которых есть ключевые слова, у их удаление.
Работает так:
Если нашел в сообщении триггер то вызывает шаблон кода связанный с триггером -> eval(stripslashes($code));
Пример кода вызываемого через eval(); ->
$inter = 10; //интервал перед авто удаления сообщения отправленного ботом (сек)
$next = strval(strtotime(date("m/d/Y h:i:s a", time() + $inter)));
$msg_id = (intval($data['message']['message_id'])+1);
$msg_chat_id = $data['message']['chat']['id'];
sendTelegram(
			'sendMessage', 
			array(
				'chat_id' => $msg_chat_id,
				'reply_to_message_id' => $data['message']['message_id'],
				'parse_mode' => 'html',
				'text' => 'текст'
			)
);
call_user_func_array('autoremove_add', array($next,$msg_chat_id,$msg_id));
//autoremove_add($next,$msg_chat_id,$msg_id);

причем вызов sendTelegram работает, а autoremove_add не работает.
Код функции autoremove_add:
function autoremove_add($time,$chat_id,$message_id){
global $modx;
$modx->log(MODX_LOG_LEVEL_ERROR, "write_message autoremove");
$sql_1 = "INSERT INTO `crontab_telegram` (`id`, `time`, `chat_id`, `message_id`) VALUES (NULL, '$time','$chat_id','$message_id');";
$modx->exec($sql_1);
}

Подскажите куда копать.
И да eval зло, но поля с кодом редактирую только я.
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Ilya12345 Автор вопроса
Ответ был однако простой, не нужно быть хлебушком и пихать в eval то что можно оставить в основном коде, а из eval дергать только переменную, проверять её наличие, и если она есть то действовать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы