Jump to content
heenrique

Limitar quantidade de acesso como o mesmo código (login)

Recommended Posts

Bom Dia Prezados!

 

estou realizando o desenvolvimento de um sistema multi empresas no ao acessar ira pedir um código, ate a parte do código tudo OK, apos passar esse código vai para um tela de login onde cada meu sistema é ligado com o banco de dados do sistema (é um sistema padrão)do cliente ate aqui OK. gostaria de limitar a quantidade de acesso a esse código, ex empresa 1 contratou código com 3 acessos, empresa 2 contratou 1 acesso, alguém tem um dica ou um outro método para realizar esse controle ?

Share this post


Link to post
Share on other sites

É muito complexo fazer isso sem saber como funciona o teu sistema, mas eu fiz uma base pra você.

Obviamente tá cheio de falhas, mas você pode corrigir.

 

Resumo: a empresa petrobras tem 5 códigos cadastrados. Ao logar com um código, ele apaga o código e reduz a quantidade de códigos da empresa.

 

BD.sql

CREATE TABLE `empresas` (
	`id` INT NOT NULL AUTO_INCREMENT,
	`empresa` VARCHAR(30) NOT NULL,
	`codigos` CHAR(3) NOT NULL,

	PRIMARY KEY (`id`));

INSERT INTO `empresas` (`id`,`empresa`, `codigos`) VALUES (1, 'Petrobras', '5');

CREATE TABLE `codigos` (
	`id` INT NOT NULL AUTO_INCREMENT,
	`empresa` VARCHAR(30) NOT NULL,
	`codigo` VARCHAR(50) NOT NULL,

	PRIMARY KEY (`id`));

INSERT INTO `codigos` (`id`,`empresa`, `codigo`) VALUES (1, 'Petrobras', 'hwaniaw');
INSERT INTO `codigos` (`id`,`empresa`, `codigo`) VALUES (2, 'Liquigas', 'eareafe');
INSERT INTO `codigos` (`id`,`empresa`, `codigo`) VALUES (3, 'Petrobras', 'eare4546afe');
INSERT INTO `codigos` (`id`,`empresa`, `codigo`) VALUES (4, 'Petrobras', 'e1324are23244546afe');
INSERT INTO `codigos` (`id`,`empresa`, `codigo`) VALUES (5, 'Petrobras', 'eare13234546afe');
INSERT INTO `codigos` (`id`,`empresa`, `codigo`) VALUES (6, 'Petrobras', 'zdsacda43');

conexao.php

<?php

$Servidor = 'localhost';
$nomeBanco = 'ale';
$Usuario = 'root';
$Senha = '';
$strcon = mysqli_connect($Servidor, $Usuario, $Senha, $nomeBanco); 

?>

conexao2.php

<?php

$conexao = mysqli_connect('localhost','root','') or die (header('Location: manutencao/'));
$banco = mysqli_select_db($conexao,'ale') or die (header('Location: manutencao/'));

?>

index.php


<form method="POST" action="vai.php">
	<input type="text" name="corporation" placeholder="digite aqui o nome da empresa" />
	<input type="text" name="token" placeholder="digite aqui ó código" />
	<input type="submit" value="logar" />
</form>


<h4>Empresas: </h4>
<?php

include ('conexao.php');
include ('conexao2.php');


$sql = mysqli_query($conexao,"SELECT * FROM empresas") or die ('a conexão falhou');
while($empresas=mysqli_fetch_assoc($sql))
{
	echo '<p>A empresa <b>';
	echo $empresas['empresa'];
	echo '</b> possui ';
	echo $empresas['codigos'];
	echo ' códigos disponíveis';
}

?>

vai.php

<?php

include ('conexao.php');
include ('conexao2.php');

$fcorp = addslashes($_POST['corporation']);
$ftoken = addslashes($_POST['token']);

if (ctype_alpha($fcorp)) {
	if (ctype_alnum($ftoken)) {
		//
		$sql = mysqli_query($conexao,"SELECT * FROM empresas WHERE empresa = '{$fcorp}' LIMIT 1") or die ('a conexão falhou');
		while($ecodigo=mysqli_fetch_assoc($sql))
		{
			$qtdempresa = $ecodigo['codigos'];
			$qtdempresa1 = $ecodigo['codigos'];
			$qmerda = $qtdempresa - 1;
		}

		if ($qtdempresa1 < 1) {
			echo 'a sua empresa nao tem codigos';
			exit;
		}

		if ($qtdempresa1 >= 1) {
			
			$sql = mysqli_query($conexao,"SELECT * FROM codigos WHERE codigo = '{$ftoken}' LIMIT 1") or die ('a conexão falhou');
			while($etoken=mysqli_fetch_assoc($sql))
			{
				$tokendigitado = $etoken['codigo'];
			}
			
			if (!$strcon) {
				die('Não foi possível conectar ao Banco de Dados');
			}
			$sql = "DELETE FROM codigos WHERE codigo = '{$ftoken}'";
			mysqli_query($strcon,$sql) or die("Erro ao tentar alterar.");
			
			if (!$strcon) {
				die('Não foi possível conectar ao Banco de Dados');
			}
			$sql = "UPDATE empresas SET codigos='{$qmerda}' WHERE empresa = '{$fcorp}'";
			mysqli_query($strcon,$sql) or die("Erro ao tentar alterar.");
			
			echo 'tudo certo';
			exit;
		}else{
			echo 'a sua empresa não tem mais códigos';
			exit;
		}
	}else{
		echo 'o código não é alfanumérico';
		exit;
		} 			# FIM IF CTYPE ALNUM TOKEN
	}else{
		echo 'o nome da empresa não pode ter números';
		exit;
	} 		# fim IF ctype alpha corp
	?>

 

Share this post


Link to post
Share on other sites

Olá Megao, obrigado pela resposta, entao um metodo mais facil para executar isso seria por ex.

Cliente - 3 Acessos

  Codigo 1 = 1234-4321

 Codigo 2 = 1111-1111

Codigo 3 = 2222-2222

 

e impedir que um codigo faça mais de um login por vez

 

CREATE TABLE `empresas` (
	`id` INT NOT NULL AUTO_INCREMENT,
	`empresa` VARCHAR(30) NOT NULL,

	PRIMARY KEY (`id`));

INSERT INTO `empresas` (`id`,`empresa`) VALUES (1, 'CLIENTE 1');
INSERT INTO `empresas` (`id`,`empresa`) VALUES (2, 'CLIENTE 2');

//-------------------------------------------------------------------------------------
CREATE TABLE `codigos` (
	`id` INT NOT NULL AUTO_INCREMENT,
	`id_emp` VARCHAR(30) NOT NULL,
	`codigo` VARCHAR(50) NOT NULL,
	`ativo` INT NOT NULL,

	PRIMARY KEY (`id`));

INSERT INTO `codigos` (`id`,`id_emp`, `codigo`, `ativo`) VALUES (1, '1', '1111-1111', '0');
INSERT INTO `codigos` (`id`,`id_emp`, `codigo`, `ativo`) VALUES (2, '1', '2222-2222', '0');
INSERT INTO `codigos` (`id`,`id_emp`, `codigo`, `ativo`) VALUES (3, '1', '3333-3333', '0');
INSERT INTO `codigos` (`id`,`id_emp`, `codigo`, `ativo`) VALUES (4, '2', '4444-4444', '0');
INSERT INTO `codigos` (`id`,`id_emp`, `codigo`, `ativo`) VALUES (5, '2', '5555-5555', '0');
INSERT INTO `codigos` (`id`,`id_emp`, `codigo`, `ativo`) VALUES (6, '2', '6666-6666', '0');
//0 para nao ativo e 1 para ativo

No caso poderia criar um local onde ele vai verificar quantidade de código e possa identificar o código por ex codigo 1111-1111 fulano de tal

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By patrickjnunes1995
      Bom dia, estou tendo dificuldades em recuperar dados de uma tabela do banco de dados, pelo PHP.
      <?php require_once('conexao_bd.php'); $consulta = "SELECT * FROM table"; $con = $mysqli->query($consulta) or die ($mysql->error); echo $dado["nome"]; ?>  
      E o arquivo conexão_bd.php está ok.
       
      Não pude encontrar em nenhuma página pela internet essa solução.
       
      Quero que exiba na página PHP, valores como algum nome, gravado na tabela do banco de dados.
       
      Desde já obrigado.
    • By Joob
      Boas Malta,
       
      Não sei porquê que não estou a conseguir remover os ficheiros após minutos..
      Por exemplo ele vai buscar o deleteshared_links e apaga a partilha feita após o tempo colocado, mas no deletezips já não apaga.
      Supostamente ele vai buscar os ficheiros da pasta zip e deveria apagar.
       
      Resolvido
       
      Obrigado :)
    • By adamo marinho
      Estou tentando achar numeros iguais dentro de arrays criadas usando a função array_intersect, porem para facilitar o meu projeto, precisaria incluir variaveis dentro das arrays, alguem pode ajudar por favor?

      <?php $v1_1 = 1; $v1_2 = 2; $v1_3 = 3; $v1_4 = 4; $v1_5 = 5; $v1 = array($v1_1, $v1_2, $v1_3, $v1_4, $v1_5); $v2_1 = 6; $v2_2 = 7; $v2_3 = 8; $v2_4 = 9; $v2_5 = 10; $v2 = array($v2_1, $v2_2, $v2_3, $v2_4, $v2_5); $v3_1 = 10; $v3_2 = 9; $v3_3 = 8; $v3_4 = 7; $v3_5 = 6; $v3 = array($v3_1, $v3_2, $v3_3, $v3_4, $v3_5); $v4_1 = 5; $v4_2 = 4; $v4_3 = 3; $v4_4 = 2; $v4_5 = 1; $v4 = array($v4_1, $v4_2, $v4_3, $v4_4, $v4_5); $resultado = array_intersect($v1, $v2, $v3, $v4 ); var_dump($resultado); ?>
    • By babylon
      Ola amigos,
       
      Estava querendo criar algo para meu site, um botao igual do site abaixo para calcular formas de pagamento "ver formas de pagamento":
       
      https://www.chipart.com.br/pc-gamer-level-one-black-amd-3400g
       
      Segue imagem em anexo.
       
      Alguem poderia me ajudar se tem algum script algo pronto ou que ajude para abrir pop up modal?
       
      Obrigado a todos.
       
       

    • By srs1999_
      Tópico
       
      Site em Código
      Sobre desenvolver sites sem o wordpress que ja tá tudo ali feito que seja um site dinâmico ou seja com banco de dados , APIs de pagamento, Painel para o usuário ,  além de todas  as funções que tem no wordpress e você teria propriedade pra explicar sobre detalhes mais técnicos da produção onde no wordpress só quem entende de progrqmação explicaria algum detalhe técnico 
      Então usando basicamente : 
      FRONT END 
      HTML 
       CSS 
      JAVASCRIPT 
      ALGUMA DE BACKEND COMO PHP E BANCO DE DADOS
      Pode se criar sites/sistemas tão bons ou melhores que no wordpress
       
      Fato : o proprio wordpress é feito em php e ate o proprio facebook tbm em php
      Fato 2 :  cerca de 70% dos sites são feitos em Wordpress
       
      Acho esse lance de procurar o caminho mais fácil limita muito a pessoa por exemplo é facil editar imagens no paint bem intuitivo , agora para editar no photoshop com muitas outras possibilidades  acaba sendo importante ir explorando essa elaboração mais difícil  com um mesmo objetivo. No caso do exemplo ( editar imagens )  
       
      Reflexão:
      Vale a pena se dedicar a trabalhar com a ferramenta Wordpress apenas por ser um meio rápido de ganhar dinheiro ?
      Ou trabalhar sem wordpress  usando tudo que exigido pra criar coisas originais mais que não seria tão rápido a produção. Mas creio que além dos sites feitos também geraria a possibildade de vender o sistema web criado para o cliente personalizar .
       
      Você Desenvolveria de que forma :
       Wordpress apenas ?
       
      Conhecer programação pra trabalhar 
      com  Wordpress ?
       
      Produzir tudo só com programação totalmente dinâmico sem  Wordpress?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.