Código JS:
// Função que permite o cadastro do administrador.
function cadastrarAdm() {
let form = document.querySelector('#adm-cadastro-form');
form.addEventListener('submit', async (e) => {
e.preventDefault();
try {
let response = await fetch('controllers/ajax/adm.cadastro.php', {
method : 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body : new FormData(form)
});
let result = await response.text();
let final = `<span>${result}</span>`;
let div = document.querySelector('#div-log');
div.innerHTML = final;
} catch (error) {
console.log(error);
alert(error);
}
});
}
Código PHP:
<?php
require $_SERVER['DOCUMENT_ROOT'] . '/../config.php';
// Cadastro básico do cliente feito pelo Administrador.
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Criando o objeto cliente.
$cliente = new Pessoa;
$cliente->setCpf(trim(intval($_POST['cpf'])));
$cliente->setNome(ucfirst(strtolower(trim(strval($_POST['nome'])))));
$cliente->setEmail(trim(strval($_POST['email'])));
// Passar função para transformar ESTADO.
$cliente->setEstado(intval($_POST['estado']));
$cliente->setCidade(strval($_POST['cidade']));
$cliente->setSenha(randomPassword2());
$cliente->setEmpresa(trim(strval($_POST['empresa'])));
// Encriptar a senha e configurando variáveis.
$senha = $cliente->getSenha();
$nome = $cliente->getNome();
$hash = password_hash($senha, PASSWORD_DEFAULT);
// Inserindo o cliente no banco de dados.
try {
$sql = 'INSERT INTO clientes (clt_cpf, clt_nome, clt_email, clt_cidade, clt_estado, clt_senha, clt_empresa)
VALUES (
:cpf,
:nome,
:email,
:cidade,
:estado,
:senha,
:empresa
)';
$query = $pdo->prepare($sql);
$query->execute([
'cpf' => $cliente->getCpf(),
'nome' => $nome,
'email' => $cliente->getEmail(),
'estado' => $cliente->getEstado(),
'cidade' => $cliente->getCidade(),
'senha' => $hash,
'empresa' => $cliente->getEmpresa()
]);
} catch (PDOException $th) {
echo $th->getMessage();
die();
}
if ($query->rowCount()) {
// Enviar e-mail para o cliente com os dados e a senha randômica.
try {
// Create the Transport
$transport = (new Swift_SmtpTransport(EMAIL_H, 465, 'ssl'))
->setUsername(EMAIL_C)
->setPassword(EMAIL_S);
// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);
// Create a message
$message = (new Swift_Message('Bem-vindo à empresa'))
->setFrom([EMAIL_C => 'empresa Tecnologias'])
->setTo($cliente->getEmail())
->setBody('<h3>oi<h3>', 'text/html')
->addPart('oi', 'text/plain');
// Send the message
$result = $mailer->send($message);
} catch (Swift_TransportException $th) {
echo $th->getMessage();
}
echo "Cliente $nome cadastrado com sucesso.";
}
}
Error_log:
PHP Parse error: syntax error, unexpected end of file in /home/user/dominio.com.br/admin/controllers/ajax/clt.cadastro.php on line 103
O ajax está buscando o arquivo php, mas o status fica em 500 e gera esse PARSE ERROR.
script.js:66 POST https://dominio.com.br/admin/controllers/ajax/clt.cadastro.php 500
(anônimo) @ script.js:66
Por favor me ajudem, pois não estou conseguindo consertar isso.