RaulMC 0 Denunciar post Postado Fevereiro 8, 2015 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
Beraldo 864 Denunciar post Postado Fevereiro 9, 2015 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
RaulMC 0 Denunciar post Postado Outubro 13, 2015 Muito obrigado, deu certo desculpe a demora na resposta Compartilhar este post Link para o post Compartilhar em outros sites