Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RaulMC

verificação de conexão com banco mysql

Recommended Posts

Bem minha divida é a seguinte, estou desenvolvendo um sistema de de login onde envio os dados do formulário para uma pagina php, através da função $.post() do Jquery, ela é chamada por um botão.

 

Exemplo :

<script type="text/javascript">
//lembrando que deve ter o script jquery inserido antes
function cadconf(){
	   $.post("php/cadastro.php",{code:code,nome:nome},function(data){
			   alert(data);
			   
	   });
}

</script>
<button onClick="cadconf()">Envia</button>
meu problema é o seguinte como JavaScript pode ser alterado não é inconfiável, por poder ser alterado pelo usuário, eu quero fazer uma verificação na pagina php para verificar se já esta sendo consultado no banco de dados.

 

Exemplo 2:

if(!isset($_SESSION)){
    session_start();
}

if( !isset($_POST["code"]) || !isset($_POST["nome"])){
			 
	exit("Erro - Protocolo de dados incompleto");
			 
}

//Aqui tem outras verificações que não importam para o caso

$mysqli = new mysqli('link', 'usuario', 'senha', 'bd');

if (mysqli_connect_errno()) {
		   exit('Não foi possível conectar-se ao banco de dados: '.
		   mysqli_connect_error());
	  }
	  
	  if($stmt = $mysqli->prepare("SELECT * FROM `bd` WHERE `nome`=? AND `code`=?)){
          $stmt->bind_param('ss', $_POST["nome"], $_POST["code"]);
	  $stmt->execute();
	  $stmt->bind_result($nome, $code);
		  while ($stmt->fetch()) {
                      if($nome == $_POST["nome"]){
                         exit("Erro - Nome já cadastrado");
                      }
                      if($nome == $_POST["code"]){
                         exit("Erro - Código já cadastrado");
                      }
                  }
          $stmt->exit();
}
A requisição via clique pode ser perigosa por causa que o usuário pode não gostar de esperar e acabar clicando varias vezes, e no script faria varias consultas desnecessárias, já coloquei algumas proteções no JavaScript porem como ele pode ser alterado por usuários mal intencionados, gostaria de colocar uma proteção no php, que impedisse de abrir uma nova conexão com o banco de dados em quando a outra ainda estiver em conexão, assim impediria de varias consultas desnecessárias ao banco de dados.

 

Gostaria de saber se existe algum comando na biblioteca para verificar se já esta ativa.

Olhei as funções do php.net porem não consegui encontrar a função que fizesse isso.

 

Obrigado a todos que ajudarem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que vincular o usuário com a conexão. E isso o mysqli não fará mesmo.

 

Já que você está usando session, use-a nessa verificação. Você pode usar session para restringir o número de conexões.

 

Por exemplo, assim que requisição for feita, crie uma variável de sessão dizendo que há um processo em execução. Por exemplo:

 

 

$_SESSION['loading'] = true;

 

Ao final do processamento, defina seu valor para false.

 

E sempre antes de abrir uma conexão, verifique se $_SESSION{loading'] existe. Se existir e seu valor for true, já há um processo sendo executado.

 

Tome cuidado para que essa variável seja setada para false sempre que o processamento acabar

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.