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 Roberto S. Santos
      Bom dia.
      Eu gostaria de postar uma foto do meu computador no facebok usando VB.NET com login automático.
      Teria como fazer em VB.net ou HTML ?
      Obrigado.
    • By k9studio
      Olá Amigos,
      tenho essa tabela abaixo e estou apanhando para listar os dados e fazer validação,
      alguém pode ajudar como chamar os dados e validar mostrar o nome somente se estiver visible=on  

       
      CREATE TABLE `system` (   `namesystem` text COLLATE utf8_unicode_ci NOT NULL,   `setting` text COLLATE utf8_unicode_ci NOT NULL,   `value` text COLLATE utf8_unicode_ci NOT NULL,   `order` int(1) NOT NULL,   KEY `namesystem_setting` (`namesystem`(32),`setting`(32)),   KEY `setting_value` (`setting`(32),`value`(32)) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; como os dados estão na tabela:
       
      namesystem setting   value   order (honda)    (name)   (Honda)   1 (honda)    (xtts)   (ok)      0    (honda)   (visible)  (on)      0    (toyota)    (name)   (Toyota)  2 (toyota)    (xtts)   (ok)      0    (toyota)  (visible)  (on)      0    
    • By iguulima
      É possivel realizar uma consulta SQL em duas colunas da mesma tabela usando outra função que não seja o AND ou OR? Segue o meu Select ate agora:
       
      (SELECT * FROM product WHERE comid = $idcom AND status = 'Ativo' AND categ = $category AND nameprod like'%$search%'  ORDER BY id DESC)  
      Por exemplo se eu colocar um AND após buscar o nameprod, no nome do produto não tiver a palavra chave ele também não irá buscar. Ou se colocar um OR ele anulo as outras condições até onde eu sei.
      Iniciante em programação.
    • By fideles
      Caros,
       
      Venho por uma duvida que esta cruel comigo. Explico-lhes.
       
      Tenho um banco de dados contendo exatas 4 colunas (id, codigo, descricao, quantidade) e criei um relatorio no excel que me separa os codigos, neste caso seria 3 abas pq tenho somente 3 codigos internos (S = Solicitar, F = Forneceder, B = Baixado) e criei uma select com GROUP By codigo
       
      Ai no banco eu posso ter 30 codigos com S, 10 com F e 15 com B,
      SELECT * FROM solicitacoes WHERE n_solicitacao = '".$n_solicitacao."' GROUP BY codigo Acontece que essa instrução acima, lista somente a primeira linha de cada codigo, como que eu faço neste caso para ele listar todos codigos? Exibir no caso os 30 codigos com S, os 10 com F e os 15 com B ? 
       
      Estou comendo algo ou meu raciociono esta totalmente equivocado ?
       
    • By Carlos Longo
      Srs Bom dia,
       
      fiz inumeras tentativas para mostrar a imagem com link em:
       <script type="text/javascript"> var imagens =  new Array( '1.jpg', '2.jpg', '3.jpg','4.jpg', '5.jpg', '6.jpg'); var num_img = 6; var img_atual =0; function ChangeImg() { if (img_atual < (num_img - 1) ) { img_atual = img_atual + 1; } else { img_atual = 0; } document["img_apoio"].src = "http://www.ficasimples.com.br/calcfal/prop/" + imagens[img_atual]; var x = setTimeout ("ChangeImg()", 2000); }   </script>  
      ela posteriormente é chamada assim:
      queria que ao clicar na figura fosse chamado o link da figura especifica conforme valor da variavel  imagens[img_atual]/////
      <img name="img_apoio" src="http://www.ficasimples.com.br/calcfal/prop/1.jpg" alt="" border="0"width="190px" height="210px" align="center">  
       
      poderiam me ajudar??
       
      grato
       
      Carlos
×

Important Information

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