Olá estou com uma dificuldade em algo, seria para um painel de streaming.
Preciso fazer algo no login que seria fazer uma consulta em uma tabela exemplo streamings coluna codigo_cliente pega a informação dessa coluna e adicionar em outra.
Seria mais ou menos assim streamings -> codigo_cliente pegou código exemplo (1) enviar para bloqueios_login -> codigo_cliente
Essa informação coletada é enviada para o banco se houver uma solicitação de login mal sucedida e cada erro ele vai registrar 5 tentativas após essas 5 tentativa será bloqueado acesso.
Tenho código pré pronto que está funcionando até ponto exceto a coleta da informação codigo_cliente na tabela streaming.
Essa função serve para enviar os dados para o painel do revendedor, onde aparece os clientes bloqueados por erros de acesso.
Porem painel do cliente verifica o codigo_cliente para saber se esse cliente pertence ao mesmo evitar que apareçã uma pancada de ips de bloqueados de outros clientes que não são desse revendedor.
Não estou dando conta de fazer se alguém puder ajudar
Aqui está o código
// Verificar se o formulário de login foi submetido
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$porta = $_POST['porta'];
$senha = $_POST['senha'];
// Verificar se o IP já foi bloqueado
$ip = $_SERVER['REMOTE_ADDR'];
$verificarBloqueio = $conexao->prepare("SELECT * FROM bloqueios_login WHERE ip = ? AND data >= DATE_SUB(NOW(), INTERVAL 1 HOUR)");
$verificarBloqueio->bind_param("s", $ip);
$verificarBloqueio->execute();
$resultadoBloqueio = $verificarBloqueio->get_result();
$tentativas = 0;
if ($resultadoBloqueio->num_rows > 0) {
// Se o IP já estiver na tabela, atualize o número de tentativas
$row = $resultadoBloqueio->fetch_assoc();
$tentativas = $row['tentativas'] + 1;
// Verificar se excedeu o limite de tentativas
if ($tentativas >= 6) {
die("Seu IP foi bloqueado devido a múltiplas tentativas de login malsucedidas. Tente novamente mais tarde.");
}
// Atualizar o número de tentativas na tabela a cada erro
$atualizarTentativas = $conexao->prepare("UPDATE bloqueios_login SET tentativas = ? WHERE ip = ?");
$atualizarTentativas->bind_param("is", $tentativas, $ip);
$atualizarTentativas->execute();
} else {
// Se o IP não estiver na tabela, insira-o como 1 tentativa
$inserirBloqueio = $conexao->prepare("INSERT INTO bloqueios_login (codigo_cliente, data, ip, navegador, tentativas) VALUES (?, NOW(), ?, ?, 1)");
$codigoCliente = 1; // Aqui está enviando a informação para o banco como 1 , preciso enviar o que está na tabela codigo_cliente
$navegador = $_SERVER['HTTP_USER_AGENT'];
$inserirBloqueio->bind_param("iss", $codigoCliente, $ip, $navegador);
$inserirBloqueio->execute();
}
// Obter a porta digitada no formulário
$porta = $_POST['porta'];
// Adicionar a porta na coluna codigo_stm coletada do que foi digitado no formulario não há necessidade de busca na tabela
$adicionarPorta = $conexao->prepare("UPDATE bloqueios_login SET codigo_stm = ? WHERE ip = ?");
$adicionarPorta->bind_param("ss", $porta, $ip);
$adicionarPorta->execute();
// Verificar as credenciais do usuário se está correta
$verificarUsuario = $conexao->prepare("SELECT * FROM streamings WHERE porta = ? AND senha = ?");
$verificarUsuario->bind_param("ss", $porta, $senha);
$verificarUsuario->execute();
$resultadoUsuario = $verificarUsuario->get_result();
// Se as credenciais estiverem corretas
if ($resultadoUsuario->num_rows > 0) {
// Limpar o IP da tabela de bloqueios se o login for bem-sucedido
$limparBloqueio = $conexao->prepare("DELETE FROM bloqueios_login WHERE ip = ?");
$limparBloqueio->bind_param("s", $ip);
$limparBloqueio->execute();
// Adicionar o valor da "porta" na coluna 'codigo_stm'
$row = $resultadoUsuario->fetch_assoc();
$codigo_stm = $row['codigo_stm'];
echo "Login bem-sucedido! Código STM: $codigo_stm";
} else {
echo "Credenciais inválidas. Por favor, tente novamente.";
}
}
Pergunta
Ualace
Olá estou com uma dificuldade em algo, seria para um painel de streaming.
Preciso fazer algo no login que seria fazer uma consulta em uma tabela exemplo streamings coluna codigo_cliente pega a informação dessa coluna e adicionar em outra.
Seria mais ou menos assim streamings -> codigo_cliente pegou código exemplo (1) enviar para bloqueios_login -> codigo_cliente
Essa informação coletada é enviada para o banco se houver uma solicitação de login mal sucedida e cada erro ele vai registrar 5 tentativas após essas 5 tentativa será bloqueado acesso.
Tenho código pré pronto que está funcionando até ponto exceto a coleta da informação codigo_cliente na tabela streaming.
Essa função serve para enviar os dados para o painel do revendedor, onde aparece os clientes bloqueados por erros de acesso.
Porem painel do cliente verifica o codigo_cliente para saber se esse cliente pertence ao mesmo evitar que apareçã uma pancada de ips de bloqueados de outros clientes que não são desse revendedor.
Não estou dando conta de fazer se alguém puder ajudar
Aqui está o código
// Verificar se o formulário de login foi submetido if ($_SERVER["REQUEST_METHOD"] == "POST") { $porta = $_POST['porta']; $senha = $_POST['senha']; // Verificar se o IP já foi bloqueado $ip = $_SERVER['REMOTE_ADDR']; $verificarBloqueio = $conexao->prepare("SELECT * FROM bloqueios_login WHERE ip = ? AND data >= DATE_SUB(NOW(), INTERVAL 1 HOUR)"); $verificarBloqueio->bind_param("s", $ip); $verificarBloqueio->execute(); $resultadoBloqueio = $verificarBloqueio->get_result(); $tentativas = 0; if ($resultadoBloqueio->num_rows > 0) { // Se o IP já estiver na tabela, atualize o número de tentativas $row = $resultadoBloqueio->fetch_assoc(); $tentativas = $row['tentativas'] + 1; // Verificar se excedeu o limite de tentativas if ($tentativas >= 6) { die("Seu IP foi bloqueado devido a múltiplas tentativas de login malsucedidas. Tente novamente mais tarde."); } // Atualizar o número de tentativas na tabela a cada erro $atualizarTentativas = $conexao->prepare("UPDATE bloqueios_login SET tentativas = ? WHERE ip = ?"); $atualizarTentativas->bind_param("is", $tentativas, $ip); $atualizarTentativas->execute(); } else { // Se o IP não estiver na tabela, insira-o como 1 tentativa $inserirBloqueio = $conexao->prepare("INSERT INTO bloqueios_login (codigo_cliente, data, ip, navegador, tentativas) VALUES (?, NOW(), ?, ?, 1)"); $codigoCliente = 1; // Aqui está enviando a informação para o banco como 1 , preciso enviar o que está na tabela codigo_cliente $navegador = $_SERVER['HTTP_USER_AGENT']; $inserirBloqueio->bind_param("iss", $codigoCliente, $ip, $navegador); $inserirBloqueio->execute(); } // Obter a porta digitada no formulário $porta = $_POST['porta']; // Adicionar a porta na coluna codigo_stm coletada do que foi digitado no formulario não há necessidade de busca na tabela $adicionarPorta = $conexao->prepare("UPDATE bloqueios_login SET codigo_stm = ? WHERE ip = ?"); $adicionarPorta->bind_param("ss", $porta, $ip); $adicionarPorta->execute(); // Verificar as credenciais do usuário se está correta $verificarUsuario = $conexao->prepare("SELECT * FROM streamings WHERE porta = ? AND senha = ?"); $verificarUsuario->bind_param("ss", $porta, $senha); $verificarUsuario->execute(); $resultadoUsuario = $verificarUsuario->get_result(); // Se as credenciais estiverem corretas if ($resultadoUsuario->num_rows > 0) { // Limpar o IP da tabela de bloqueios se o login for bem-sucedido $limparBloqueio = $conexao->prepare("DELETE FROM bloqueios_login WHERE ip = ?"); $limparBloqueio->bind_param("s", $ip); $limparBloqueio->execute(); // Adicionar o valor da "porta" na coluna 'codigo_stm' $row = $resultadoUsuario->fetch_assoc(); $codigo_stm = $row['codigo_stm']; echo "Login bem-sucedido! Código STM: $codigo_stm"; } else { echo "Credenciais inválidas. Por favor, tente novamente."; } }
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.