Prevenindo múltiplas inserções no envio de formulário em PHP
Múltiplas inserções ao enviar um formulário podem ocorrer quando o usuário pressiona o botão enviar várias vezes. Isso pode levar à duplicação involuntária de dados. Existem várias abordagens para resolver esse problema:
Desativação do botão de envio de JavaScript:
Este método usa JavaScript para desativar o botão de envio após ele ser clicado. No entanto, não é confiável, pois os formulários podem ser enviados sem usar o botão ou com o JavaScript desabilitado.
Data e hora da sessão PHP:
Esta abordagem define uma variável de sessão ($_SESSION['posttimer']) para o carimbo de data/hora atual no envio do formulário. Durante o processamento do formulário, ele verifica se a variável existe e a compara com o carimbo de data/hora atual. Se a diferença de tempo for menor que um limite predefinido (por exemplo, 2 segundos), um envio duplo será detectado.
Inclusão de token exclusivo:
Este método envolve a inclusão de um token exclusivo em cada formulário. Uma variável de sessão contém o token usado no formulário. Após o envio do formulário, um novo token é gerado. Se o token enviado não corresponder ao token da sessão, será considerado um envio duplo. Exemplo:
// form.php
$_SESSION['token'] = md5(session_id() . time());
echo '';
// foo.php
if (isset($_SESSION['token'])) {
if (isset($_POST['token']) && $_POST['token'] != $_SESSION['token']) {
// Double submit detected
}
}
Ao implementar um desses métodos, você pode efetivamente evitar múltiplas inserções ao enviar formulários em PHP, garantindo a integridade dos dados e evitando duplicação não intencional.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3