Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php namespace Widget; use Typecho\Common; use Typecho\Cookie; use Typecho\Db\Exception..

Decoded Output download

<?php

namespace Widget;

use Typecho\Common;
use Typecho\Cookie;
use Typecho\Db\Exception;
use Typecho\Validate;
use Utils\PasswordHash;
use Widget\Base\Users;

if (!defined('__TYPECHO_ROOT_DIR__')) {
    exit;
}

/**
 * 
 *
 * @author qining
 * @category typecho
 * @package Widget
 */
class Register extends Users implements ActionInterface
{
    /**
     * 
     *
     * @throws Exception
     */
    public function action()
    {
        // protect
        $this->security->protect();

        /**  */
        if ($this->user->hasLogin() || !$this->options->allowRegister) {
            /**  */
            $this->response->redirect($this->options->index);
        }

        /**  */
        $validator = new Validate();
        $validator->addRule('name', 'required', _t(''));
        $validator->addRule('name', 'minLength', _t('2'), 2);
        $validator->addRule('name', 'maxLength', _t('32'), 32);
        $validator->addRule('name', 'xssCheck', _t(''));
        $validator->addRule('name', [$this, 'nameExists'], _t(''));
        $validator->addRule('mail', 'required', _t(''));
        $validator->addRule('mail', [$this, 'mailExists'], _t(''));
        $validator->addRule('mail', 'email', _t(''));
        $validator->addRule('mail', 'maxLength', _t('64'), 64);

        /** password */
        if (array_key_exists('password', $_REQUEST)) {
            $validator->addRule('password', 'required', _t(''));
            $validator->addRule('password', 'minLength', _t(', '), 6);
            $validator->addRule('password', 'maxLength', _t(', '), 18);
            $validator->addRule('confirm', 'confirm', _t(''), 'password');
        }

        /**  */
        if ($error = $validator->run($this->request->from('name', 'password', 'mail', 'confirm'))) {
            Cookie::set('__typecho_remember_name', $this->request->get('name'));
            Cookie::set('__typecho_remember_mail', $this->request->get('mail'));

            /**  */
            Notice::alloc()->set($error);
            $this->response->goBack();
        }

        $hasher = new PasswordHash(8, true);
        $generatedPassword = Common::randString(7);

        $dataStruct = [
            'name' => $this->request->get('name'),
            'mail' => $this->request->get('mail'),
            'screenName' => $this->request->get('name'),
            'password' => $hasher->hashPassword($generatedPassword),
            'created' => $this->options->time,
            'group' => 'subscriber'
        ];

        $dataStruct = self::pluginHandle()->call('register', $dataStruct);

        $insertId = $this->insert($dataStruct);
        $this->db->fetchRow($this->select()->where('uid = ?', $insertId)
            ->limit(1), [$this, 'push']);

        self::pluginHandle()->call('finishRegister', $this);

        $this->user->login($this->request->get('name'), $generatedPassword);

        Cookie::delete('__typecho_first_run');
        Cookie::delete('__typecho_remember_name');
        Cookie::delete('__typecho_remember_mail');

        Notice::alloc()->set(
            _t(
                ' <strong>%s</strong> ,  <strong>%s</strong>',
                $this->screenName,
                $generatedPassword
            ),
            'success'
        );
        $this->response->redirect($this->options->adminUrl);
    }
}
 ?>

Did this file decode correctly?

Original Code

<?php

namespace Widget;

use Typecho\Common;
use Typecho\Cookie;
use Typecho\Db\Exception;
use Typecho\Validate;
use Utils\PasswordHash;
use Widget\Base\Users;

if (!defined('__TYPECHO_ROOT_DIR__')) {
    exit;
}

/**
 * 
 *
 * @author qining
 * @category typecho
 * @package Widget
 */
class Register extends Users implements ActionInterface
{
    /**
     * 
     *
     * @throws Exception
     */
    public function action()
    {
        // protect
        $this->security->protect();

        /**  */
        if ($this->user->hasLogin() || !$this->options->allowRegister) {
            /**  */
            $this->response->redirect($this->options->index);
        }

        /**  */
        $validator = new Validate();
        $validator->addRule('name', 'required', _t(''));
        $validator->addRule('name', 'minLength', _t('2'), 2);
        $validator->addRule('name', 'maxLength', _t('32'), 32);
        $validator->addRule('name', 'xssCheck', _t(''));
        $validator->addRule('name', [$this, 'nameExists'], _t(''));
        $validator->addRule('mail', 'required', _t(''));
        $validator->addRule('mail', [$this, 'mailExists'], _t(''));
        $validator->addRule('mail', 'email', _t(''));
        $validator->addRule('mail', 'maxLength', _t('64'), 64);

        /** password */
        if (array_key_exists('password', $_REQUEST)) {
            $validator->addRule('password', 'required', _t(''));
            $validator->addRule('password', 'minLength', _t(', '), 6);
            $validator->addRule('password', 'maxLength', _t(', '), 18);
            $validator->addRule('confirm', 'confirm', _t(''), 'password');
        }

        /**  */
        if ($error = $validator->run($this->request->from('name', 'password', 'mail', 'confirm'))) {
            Cookie::set('__typecho_remember_name', $this->request->get('name'));
            Cookie::set('__typecho_remember_mail', $this->request->get('mail'));

            /**  */
            Notice::alloc()->set($error);
            $this->response->goBack();
        }

        $hasher = new PasswordHash(8, true);
        $generatedPassword = Common::randString(7);

        $dataStruct = [
            'name' => $this->request->get('name'),
            'mail' => $this->request->get('mail'),
            'screenName' => $this->request->get('name'),
            'password' => $hasher->hashPassword($generatedPassword),
            'created' => $this->options->time,
            'group' => 'subscriber'
        ];

        $dataStruct = self::pluginHandle()->call('register', $dataStruct);

        $insertId = $this->insert($dataStruct);
        $this->db->fetchRow($this->select()->where('uid = ?', $insertId)
            ->limit(1), [$this, 'push']);

        self::pluginHandle()->call('finishRegister', $this);

        $this->user->login($this->request->get('name'), $generatedPassword);

        Cookie::delete('__typecho_first_run');
        Cookie::delete('__typecho_remember_name');
        Cookie::delete('__typecho_remember_mail');

        Notice::alloc()->set(
            _t(
                ' <strong>%s</strong> ,  <strong>%s</strong>',
                $this->screenName,
                $generatedPassword
            ),
            'success'
        );
        $this->response->redirect($this->options->adminUrl);
    }
}

Function Calls

None

Variables

None

Stats

MD5 42e262cd79ed46ed84281464b28c6a38
Eval Count 0
Decode Time 86 ms