Zend engine ошибка

160
17 октября 2018, 22:10

Написал расширение на Zend Engine,которая декодирует(База64) PHP и выполняет.Но при выполнении выходит ошибка

Warning: Use of undefined constant ���� - assumed '����' (this will throw an Error in a future version of PHP) in test on line 1 print rand(0,1000);

С++ код:

PHP_FUNCTION(something) {
    char *coded;
    size_t coded_len = sizeof(coded) - 1;
    ZEND_PARSE_PARAMETERS_START(0, 1)
        Z_PARAM_OPTIONAL
        Z_PARAM_STRING(coded, coded_len)
    ZEND_PARSE_PARAMETERS_END();
    char *out = php_base64_decode(coded,coded_len);
    int ret = zend_eval_string(&out, return_value, "test" TSRMLS_CC);
    RETURN_STR(out);
}

и PHP код:

<?php 
$rn="cHJpbnQgcmFuZCgwLDEwMDApOw==";
echo something($rn);?>`

расшифрованный php код:

print rand(0,1000);
Answer 1

Первым параметром функции zend_eval_string header должен быть char *, а не char * *. А php_base64_decode возвращает zend_string *, а не char * Даже непонятно, как это у вас собралось.

READ ALSO
Придумать логику установки ошибок

Придумать логику установки ошибок

Есть статья Article(id, name, status_id) которая поступила на модерациюПри этом у нее меняется статус: была в черновиках, потом отправлена на ревью, потом...

157
Создание SOAP запроса

Создание SOAP запроса

Опыта в разработке веб сервисов не много поэтому решил обратиться за советомЕсть такой запрос

140
Унаследованный класс от QSplitter

Унаследованный класс от QSplitter

В процессе изучения Qt столкнулся с небольшой проблемой, есть программа "Обозреватель", она в книге написана в функции main(), все работает как...

191
lvalue to rvalue conversion

lvalue to rvalue conversion

Что такое lvalue to rvalue conversion? В этой статье непонятно следующее:

186