Hi! Could we please enable some services and cookies to improve your experience and our website?

PHPize Online / SQLize Online  /  SQLtest Online

A A A
Login    Share code      Blog   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

Copy Format Clear

Stuck with a problem? Got Error? Ask AI support!

Copy Clear
Copy Format Clear
<?php // Função para fazer a chamada cURL para o endpoint de login function efetuarLogin($login, $senha) { // URL do endpoint $url = 'https://auto-gwsmartapi.linx.com.br/api-seguranca/Geral/Cadastros/Usuarios/EfetuarLogin'; // Dados para o corpo da requisição (body) $data = [ 'login' => $login, 'senha' => $senha, 'CodigoFilial' => '7.1', 'Encrypted' => false ]; // Converte os dados para o formato JSON $json_data = json_encode($data); // Headers da requisição $headers = [ 'Content-Type: application/json', 'Ocp-Apim-Subscription-Key: 5048f57a76774a00ab07aa3d01bdd8d0', 'Cache-Control: no-cache', 'AMBIENTE: 14749549000279-LAGEESCARABELIVEICULOS-PRODUCAO' ]; // Inicializa o cURL $ch = curl_init(); // Configura as opções do cURL curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // --- INÍCIO DA CORREÇÃO --- // Força o cURL a usar o protocolo TLS 1.2 curl_setopt($ch, CURLOPT_SSLVERSION, 6); // A linha de SSL_CIPHER_LIST foi removida por ser incompatível com a sua versão do cURL. // --- FIM DA CORREÇÃO --- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Mantido para ambientes de teste // Executa a requisição $response = curl_exec($ch); $curl_error = null; if ($response === false) { $curl_error = curl_error($ch); // Captura o erro específico do cURL } // Obtém o código de status HTTP $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Fecha a conexão cURL curl_close($ch); // Retorna o status, a resposta e o erro do cURL (se houver) return [ 'status' => $http_code, 'response' => $response, 'curl_error' => $curl_error // Novo valor retornado ]; } $mensagem_resultado = ''; // Verifica se o formulário foi enviado if ($_SERVER['REQUEST_METHOD'] === 'POST') { $login_usuario = isset($_POST['login']) ? $_POST['login'] : ''; $senha_usuario = isset($_POST['senha']) ? $_POST['senha'] : ''; if (!empty($login_usuario) && !empty($senha_usuario)) { $resultado = efetuarLogin($login_usuario, $senha_usuario); if ($resultado['curl_error']) { // Se houve um erro de conexão cURL, mostra ele $mensagem_resultado = '<div class="error"><strong>Falha na Conexão!</strong><br>Erro cURL: ' . $resultado['curl_error'] . '</div>'; } elseif ($resultado['status'] == 200) { // Se a conexão foi bem-sucedida e o status é 200 $mensagem_resultado = '<div class="success">Status 200: OK! Login efetuado e senha válida.</div>'; } else { // Se a conexão foi bem-sucedida mas o status não é 200 $mensagem_resultado = '<div class="error">Status ' . $resultado['status'] . ': Usuário ou senha inválido.</div>'; } } else { $mensagem_resultado = '<div class="error">Por favor, preencha o login e a senha.</div>'; } } ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Teste de Endpoint de Login</title> <style> body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f2f5; } .container { background-color: #fff; padding: 2rem; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); width: 100%; max-width: 400px; } h1 { text-align: center; color: #1c1e21; margin-bottom: 1.5rem; } .form-group { margin-bottom: 1rem; } label { display: block; margin-bottom: 0.5rem; color: #606770; font-weight: bold; } input[type="text"], input[type="password"] { width: 100%; padding: 0.75rem; border: 1px solid #dddfe2; border-radius: 6px; box-sizing: border-box; } button { width: 100%; padding: 0.75rem; border: none; border-radius: 6px; background-color: #1877f2; color: #fff; font-size: 1.1rem; font-weight: bold; cursor: pointer; transition: background-color 0.2s; } button:hover { background-color: #166fe5; } .result { margin-top: 1.5rem; padding: 1rem; border-radius: 6px; text-align: center; font-weight: bold; } .success { background-color: #e7f3ff; color: #1877f2; border: 1px solid #bde0ff; } .error { background-color: #ffebe8; color: #c92a1e; border: 1px solid #ffbdad; } </style> </head> <body> <div class="container"> <h1>Teste de Login</h1> <form method="POST" action=""> <div class="form-group"> <label for="login">Usuário:</label> <input type="text" id="login" name="login" required> </div> <div class="form-group"> <label for="senha">Senha:</label> <input type="password" id="senha" name="senha" required> </div> <button type="submit">Autenticar</button> </form> <?php if (!empty($mensagem_resultado)): ?> <div class="result"> <?php echo $mensagem_resultado; ?> </div> <?php endif; ?> </div> </body> </html>
Copy Clear