public function process(){         $key = $this->getProperty('captcha_key');

        $method = $this->getProperty('method');         $code = $this->getProperty('code');

        if(empty($code)){             $code = $this->modx->request->parameters[$method][$key];         }

        $session_code = $_SESSION[$key]; Вот так делать и не надо. Не надо прописывать в процессоре работу с глобальными массивами запросов, а то как вы будете разграничивать обработку, когда у вас на странице больше одного вызова будет? Надо писать что-то типа {processor… params=$smarty.get}, то есть явно в вызов процессора передавать данные запроса.

Топик: modCaptcha

Кстати ещё один момент по поводу переменных переменных и суперглобальных массивов. «Warning Please note that variable variables cannot be used with PHP's Superglobal arrays within functions or class methods. The variable $this is also a special variable that cannot be referenced dynamically. » php.net/manual/en/language.variables.variable.php

Топик: modCaptcha

modCaptcha 1.0.3-beta поставил вчера из репозитория modx, modxSite 1.3.1-beta Да вызывал напрямую в смарти-шаблоне через {processor}. Да и сниппет вызывает точно так же. В теме же и сказано вызывайте через процессор или сниппет =) Я убрал вот этот код из сниппета: $key = $scriptProperties['captcha_key'];

if(empty($scriptProperties['code'])){ $param = "_".strtoupper($method);

if(isset($$param)){
    $p = $$param;
    
    $scriptProperties['code'] = (!empty($p[$key]) ? $p[$key] : "");
}

} И добавил вот такой в процессор. public function process(){ $key = $this->getProperty('captcha_key');

    $method = $this->getProperty('method');
    $code = $this->getProperty('code');
    
    if(empty($code)){
        $code = $this->modx->request->parameters[$method][$key];
    }
        
    $session_code = $_SESSION[$key]; В итоге параметр переданный из формы получается через modRequest, если 'code' не передан в процессор через настройки сниппета или процессора.
Топик: modCaptcha

Читайте мануалы по move_uploaded_file. Эта функция подробно описана в сети.

Топик: Dropbox API PHP

Дело в том что я закидываю на DropBox, в инструкции так было показано, подскажите пожалуйста, как можно переделать на move_uploaded_file()?

Топик: Dropbox API PHP

Не понятно ошибка это была или раньше modProcessor подгружал в свойства переменные из глобальных массивов, но в версии 2.3.3 этого не происходит. Если вы процессор через коннектор вызываете, то там глобальные устанавливаются (на уровне modConnectorRequest или modConnectorResponse). Если вы просто вызываете процессор через $modx->runProcessor(), то тогда в процессоре глобальных не будет. Их там и не было никогда. Надо явно тогда в него в вызов передавать $_REQUEST|$_GET|$_POST.

Топик: modCaptcha

PS У меня версия modx 2.3.3 там modCaptcha не заработал. Пришлось подправить немного процессор «modcaptcha/web/check», Странно, у меня все работает, и не на одном сайте. Убедитесь что у вас последние версии пакетов modxSite и modCaptcha.

Топик: modCaptcha

$fbuch=$_FILES['upl']['tmp_name']; $f = fopen($fbuch, «r+»); Все равно так не правильно. Правильней переносить файл методом move_uploaded_file(). Или вы рискуете закинуть проект но новый хостинг и там это работать не будет. А как быть с API access token?)) ПО новому регистрироваться7 Я в комменте подправил его, так что вряд ли широкие массы его заметили, можно особо не париться. Но если принципиально, то можно удалить приложение полностью и новое создать (не аккаунт, а именно приложение).

Топик: Dropbox API PHP

Решил проблему так: if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){ $fbuch=$_FILES['upl']['tmp_name']; $f = fopen($fbuch, «r+»); $fbuch2="/".$_FILES['upl']['name']; $fileMetadata = $dbxClient->uploadFile($fbuch2, dbx\WriteMode::add(), $f); fclose($f); } А как быть с API access token?)) ПО новому регистрироваться7

Топик: Dropbox API PHP

Если каптча нужна для формы регистрации то делаем так:

  1. Копируем сниппет «modcaptcha.check_captcha», назовем его «modcaptcha.preHook» и немного меняем ему код, эти строки: if($response->isError()){ $result = $response->getMessage(); } else{ $result = 'true'; } меняем на эти: if($response->isError()){ $result = false; } else{ $result = true; } Это нужно для Login'а ибо прехук должен возвращать булево значение. 2. В вызов сниппета Register добавляем 2 параметра: &preHooks=modcaptcha.preHook &captcha_key=mycaptcha первый это сниппет для прехука, второй ключ каптчи
  2. В форму регистрации добавляем <input type="text" name="mycaptcha"> [[!$modcaptcha? &captcha_key=mycaptcha]] После этих манипуляций должно работать. PS У меня версия modx 2.3.3 там modCaptcha не заработал. Пришлось подправить немного процессор «modcaptcha/web/check», строку $code = $this->getProperty('code'); заменил на $code = $this->modx->request->parameters[$this->getProperty('method')][$key]; Не понятно ошибка это была или раньше modProcessor подгружал в свойства переменные из глобальных массивов, но в версии 2.3.3 этого не происходит.
Топик: modCaptcha