Erro - Capitulo12.8 FINALIZANDO A FUNÇÃO ENVIAR_EMAIL()

39 views
Skip to first unread message

Matheus Vidal

unread,
Jan 24, 2018, 8:02:32 PM1/24/18
to Livro PHP e MySQL - Casa do Código
Estou com o seguinte erro na chamada do PHPMailerAutoload:

Fatal error: Cannot redeclare PHPMailerAutoload() (previously declared in C:\xampp\htdocs\tarefas\bibliotecas\PHPMailer\PHPMailerAutoload.php:24) in C:\xampp\htdocs\tarefas\bibliotecas\PHPMailer\PHPMailerAutoload.php on line 31

Como corrijo isso?

Aí abaixo está o código do PHPMailerAutoload, eu tenho que passar o valor dessa variável $classname ? No livro não explica isso...

/**
 * PHPMailer SPL autoloader.
 * PHP Version 5
 * @package PHPMailer
 * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
 * @author Marcus Bointon (Synchro/coolbru) <phpm...@synchromedia.co.uk>
 * @author Jim Jagielski (jimjag) <jim...@gmail.com>
 * @author Andy Prevost (codeworxtech) <codewo...@users.sourceforge.net>
 * @author Brent R. Matzelle (original founder)
 * @copyright 2012 - 2014 Marcus Bointon
 * @copyright 2010 - 2012 Jim Jagielski
 * @copyright 2004 - 2009 Andy Prevost
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 * @note This program is distributed in the hope that it will be useful - WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 */

/**
 * PHPMailer SPL autoloader.
 * @param string $classname The name of the class to load
 */
function PHPMailerAutoload($classname)
{
    //Can't use __DIR__ as it's only in PHP 5.3+
    $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
    if (is_readable($filename)) {
        require $filename;
    }
}

if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
    //SPL autoloading was introduced in PHP 5.1.2
    if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
        spl_autoload_register('PHPMailerAutoload', true, true);
    } else {
        spl_autoload_register('PHPMailerAutoload');
    }
} else {
    /**
     * Fall back to traditional autoload for old PHP versions
     * @param string $classname The name of the class to load
     */
    function __autoload($classname)
    {
        PHPMailerAutoload($classname);
    }
}


Evaldo Junior

unread,
Jan 26, 2018, 1:40:25 PM1/26/18
to Livro PHP e MySQL - Casa do Código
Olá, Matheus.

Me parece que a biblioteca está sendo incluída mais de uma vez e isso causa o problema de não poder redeclarar a classe.

Abraços
On Thu, Jan 25, 2018 at 2:02 AM, Matheus Vidal <matheu...@gmail.com> wrote:
Estou com o seguinte erro na chamada do PHPMailerAutoload:

Fatal error: Cannot redeclare PHPMailerAutoload() (previously declared in C:\xampp\htdocs\tarefas\bibliotecas\PHPMailer\PHPMailerAutoload.php:24) in C:\xampp\htdocs\tarefas\bibliotecas\PHPMailer\PHPMailerAutoload.php on line 31

Como corrijo isso?

Aí abaixo está o código do PHPMailerAutoload, eu tenho que passar o valor dessa variável $classname ? No livro não explica isso...

/**
 * PHPMailer SPL autoloader.
 * PHP Version 5
 * @package PHPMailer
 * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
 * @author Marcus Bointon (Synchro/coolbru) <phpm...@synchromedia.co.uk>
 * @author Jim Jagielski (jimjag) <jim...@gmail.com>
 * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>


--
Você recebeu essa mensagem porque está inscrito no grupo "Livro PHP e MySQL - Casa do Código" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para phpemysqlcasadocodigo+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
Message has been deleted
0 new messages