We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 45196
    • 8 Posts
    Hello!

    On my page (editprofile)
    [[!outP]] <--! my snippet for viewing POST and FILES arrays -->
    [[!UpdateProfile]]
    [[+login.update_success:if=`[[+login.update_success]]`:is=`1`:then=`[[%login.profile_updated? &namespace=`login` &topic=`updateprofile`]]`]]
     
    <h2>Profile editing:</h2>
    <p>Enter your values and press Save:</p>
        <div class="updprof-error">[[+error.message]]</div>
    <form class="form1" action="[[~8]]" method="post" enctype="multipart/form-data">
    <table>
     <tr>
      <td>Avatar:<input type="file" name="file" id="file"/></td>
      <td><input type="submit" name="submit" value="Save"  /></td>
     </tr>
    </table>
    </form>



    Snippet outP:

    <?php
    echo "<pre>";
    echo "Array POST:";
    print_r ($_POST);
    echo "<br />";
    echo "Array FILES:";
    print_r ($_FILES);
    echo "</pre>";



    If I call [[!UpdateProfile]] then output will be

    Array POST:Array
    (
    )
     
    Array FILES:Array
    (
    )




    If I don't call:

    Array POST:Array
    (
        [submit] => Save
    )
     
    Array FILES:Array
    (
        [file] => Array
            (
                [name] => poster.jpg
                [type] => image/jpeg
                [tmp_name] => /tmp/phpwpwxIX
                [error] => 0
                [size] => 31222
            )
     
    )



    How it may be fixed?
      • 39465
      • 14 Posts
      What is the updateProfile snippet code? Try to call it cached (without ! before snippet call).
        • 45196
        • 8 Posts
        UpdateProfile:
        <?php
        /**
         * Login
         *
         * Copyright 2010-2012 by Shaun McCormick <[email protected]>
         *
         * Login is free software; you can redistribute it and/or modify it under the
         * terms of the GNU General Public License as published by the Free Software
         * Foundation; either version 2 of the License, or (at your option) any later
         * version.
         *
         * Login is distributed in the hope that it will be useful, but WITHOUT ANY
         * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
         * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
         *
         * You should have received a copy of the GNU General Public License along with
         * Login; if not, write to the Free Software Foundation, Inc., 59 Temple
         * Place, Suite 330, Boston, MA 02111-1307 USA
         *
         * @package login
         */
        /**
         * MODx UpdateProfile Snippet. Handles updating of User Profiles.
         *
         * @var modX $modx
         * @var Login $login
         * @var array $scriptProperties
         * 
         * @package login
         */
        require_once $modx->getOption('login.core_path',null,$modx->getOption('core_path').'components/login/').'model/login/login.class.php';
        $login = new Login($modx,$scriptProperties);
        
        $controller = $login->loadController('UpdateProfile');
        return $controller->run($scriptProperties);


        Called this cached and get same result.
        But if I use [[!UpdateProfile?&preHooks=`avatar.upload`]] my Post array is not empty and it works.
        If I use [[!UpdateProfile?&postHooks=`avatar.upload`]] I will see empty arrays.


        http://rtfm.modx.com/extras/revo/login/login.updateprofile

        If you need more information - will glad to help
          • 3749
          • 24,544 Posts
          Is your postHook returning true?
            Did I help you? Buy me a beer
            Get my Book: MODX:The Official Guide
            MODX info for everyone: http://bobsguides.com/modx.html
            My MODX Extras
            Bob's Guides is now hosted at A2 MODX Hosting
            • 45196
            • 8 Posts
            Now yes, returning true.

            That strange behavior was due to parameter reloadOnSuccess in updateProfile snippet. That was reloading my page so all global arrays GET, POST cleared.

            Turned this parameter off and now it works.
              • 3749
              • 24,544 Posts
              Nice catch. I never noticed that property.
                Did I help you? Buy me a beer
                Get my Book: MODX:The Official Guide
                MODX info for everyone: http://bobsguides.com/modx.html
                My MODX Extras
                Bob's Guides is now hosted at A2 MODX Hosting