Ir para conteúdo
MarKteus

Como impedir a regravação de dados quando o recarrega a pagina?

Recommended Posts

Olá,

 

Estou com um problema que é o seguinte:
O usuário utiliza a operação de gravar em uma pagina Web. Porém ao re-carregar a página ou quando clica no botão Voltar do navegador os dados recem gravados são gravados novamente criando 2 ou mais registros na tabela.

 

Como posso impedir que um refresh regrave informações já gravadas ?

 

 

Desde já obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é uma questão complicada quando se trabalha com Web. O problema é que você está trabalhando por requisições, cada requisição vai realizar uma ação no servidor. A parte de tratar quando essa ação deve ou não ser executada e inteiramente da lógica do back-end, ou seja, você vai ter que adicionar uma lógica para identificar se aquele registro já existe na tabela e impedir a inserção.

 

Você pode fazer isso usando um simples select na chave primária ou em dados chave da linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tíve um problema semelhante.

 

Na hora de adicionar um novo registro,veja a hora/data que o ultimo registro foi adicionado.

se a diferença for de uns 5 segundos e os dados tiverem iguais,exclua um deles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

Consegui resolver o problema e pra agregar conhecimento deixarei aqui como fiz, mas acredito que todas as sugestões funcionam.

 

protected void Page_Load(object sender, EventArgs e)

{

// Validação para impedir duplicação de dados no banco

if (!Page.IsPostBack)

{

Session["HouveRefresh"] = true;

}

 

}

 

 

protected void Page_PreRender(object sender, EventArgs e)

{

// Validação para impedir duplicação de dados no banco

ViewState["HouveRefresh "] = Session["HouveRefresh "];

}

 

 

protected void btnCadastrar_Click(object sender, EventArgs e)

{

// Validação para impedir duplicação de dados no banco

if (Session["HouveRefresh "].ToString() == ViewState["HouveRefresh "].ToString())

{

Session["HouveRefresh "] = false;


Obrigado
Valew mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Artes Ussler
      Bom dia
       
      Alguns navegadores sublinham ou trocam a cor dos números de telefones que estão no site.
       
      Como faço para remover isso?
       
      Se alguém puder ajudar, eu fico grato.
    • Por ericknb
      Bom dia Pessoal,
       
      Sou bem leigo no assunto e toda ajuda é bem vinda.
       
      Vamos lá. Possuo um ecommerce, numa parte do site tem um campo de Newsletter. Mas o fundo dele é um cinza e eu gostaria de alterar para uma imagem (uma imagem anexada para mostrar o fundo cinza que quero alterar. 
       
      Segue o código:
       
      <section class="newsletter" data-tray-tst="newsletter_box">
          <h2 class="newsletter-title">
              <i><svg version="1.1" fill="#000" width="30" height="33" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 489.66 343.793" enable-background="new 0 0 489.66 343.793" xml:space="preserve"><g><path d="M489.66,32.781v-1.906c0-7.078-3.215-15.406-8.984-21.176l-0.652-0.656c0,0-0.656,0-0.656-0.652c-1.309-1.313-2.559-1.907-3.867-3.215c-0.652,0-0.652-0.653-1.309-0.653c-1.309-0.656-3.211-1.312-4.52-1.906c-0.656,0-0.656-0.652-1.309-0.652c-1.906-0.656-3.867-1.309-5.773-1.309h-1.309c-1.902,0-4.52-0.656-7.078-0.656H34.742c-2.558,0-5.117,0-7.734,0.656c-0.653,0-1.309,0-1.903,0.653c-1.906,0.656-3.867,0.656-5.117,1.308c-0.656,0-0.656,0.656-1.308,0.656c-1.309,0.653-3.215,1.309-4.524,1.903l-0.652,0.656c-1.309,0.652-2.559,1.902-3.867,2.559L7.73,10.293C3.211,15.41,0.656,21.238,0,27.664v288.524c1.309,8.983,5.77,16.718,12.195,21.179c5.77,3.867,12.848,6.426,21.18,6.426h422.793c1.902,0,4.52,0,6.422-0.655h1.309c1.906-0.653,3.867-0.653,5.117-1.31h0.656c14.156-5.117,19.926-17.371,19.926-28.91V33.375C489.66,33.434,489.66,33.434,489.66,32.781L489.66,32.781z M448.551,23.797L246.168,221.004l-46.281-44.973L41.168,23.738h407.383V23.797z M23.855,307.146V39.859l149.676,143.907L23.855,307.146z M239.742,320.59H45.035l145.867-119.512l46.879,45.629c1.903,1.902,3.867,2.56,5.77,3.211h3.926c1.902-0.651,4.52-1.309,5.77-3.211l44.32-43.069l146.465,116.956H239.742V320.59z M465.863,307.742L315.535,186.324L465.863,39.859V307.742z M465.863,307.742"/></g></svg></i>
              <span>{{ Translation('news') }}</span>
          </h2>
          <form action="{{ links.newsletter }}" method="post" name="newsletter" data-tray-tst="newsletter_form">
              <input name="name" type="text" placeholder="{{ Translation('digitar_nome') }}" required>
              <input name="email" type="email" placeholder="{{ Translation('digitar_email') }}" data-tray-tst="newsletter_email" required>
              <button data-tray-tst="newsletter_cadastrar">{{ Translation('cadastrar') }}</button>
          </form>
      </section><section class="newsletter" data-tray-tst="newsletter_box">
          <h2 class="newsletter-title">
              <i><svg version="1.1" fill="#000" width="30" height="33" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 489.66 343.793" enable-background="new 0 0 489.66 343.793" xml:space="preserve"><g><path d="M489.66,32.781v-1.906c0-7.078-3.215-15.406-8.984-21.176l-0.652-0.656c0,0-0.656,0-0.656-0.652c-1.309-1.313-2.559-1.907-3.867-3.215c-0.652,0-0.652-0.653-1.309-0.653c-1.309-0.656-3.211-1.312-4.52-1.906c-0.656,0-0.656-0.652-1.309-0.652c-1.906-0.656-3.867-1.309-5.773-1.309h-1.309c-1.902,0-4.52-0.656-7.078-0.656H34.742c-2.558,0-5.117,0-7.734,0.656c-0.653,0-1.309,0-1.903,0.653c-1.906,0.656-3.867,0.656-5.117,1.308c-0.656,0-0.656,0.656-1.308,0.656c-1.309,0.653-3.215,1.309-4.524,1.903l-0.652,0.656c-1.309,0.652-2.559,1.902-3.867,2.559L7.73,10.293C3.211,15.41,0.656,21.238,0,27.664v288.524c1.309,8.983,5.77,16.718,12.195,21.179c5.77,3.867,12.848,6.426,21.18,6.426h422.793c1.902,0,4.52,0,6.422-0.655h1.309c1.906-0.653,3.867-0.653,5.117-1.31h0.656c14.156-5.117,19.926-17.371,19.926-28.91V33.375C489.66,33.434,489.66,33.434,489.66,32.781L489.66,32.781z M448.551,23.797L246.168,221.004l-46.281-44.973L41.168,23.738h407.383V23.797z M23.855,307.146V39.859l149.676,143.907L23.855,307.146z M239.742,320.59H45.035l145.867-119.512l46.879,45.629c1.903,1.902,3.867,2.56,5.77,3.211h3.926c1.902-0.651,4.52-1.309,5.77-3.211l44.32-43.069l146.465,116.956H239.742V320.59z M465.863,307.742L315.535,186.324L465.863,39.859V307.742z M465.863,307.742"/></g></svg></i>
              <span>{{ Translation('news') }}</span>
          </h2>
          <form action="{{ links.newsletter }}" method="post" name="newsletter" data-tray-tst="newsletter_form">
              <input name="name" type="text" placeholder="{{ Translation('digitar_nome') }}" required>
              <input name="email" type="email" placeholder="{{ Translation('digitar_email') }}" data-tray-tst="newsletter_email" required>
              <button data-tray-tst="newsletter_cadastrar">{{ Translation('cadastrar') }}</button>
          </form>
      </section>
       
       
      o que eu teria de alterar para inserir a imagem como fundo?
      Grato
       

    • Por freitaz
      Bom eu criei um sistema de cadastro, estava tudo ok, no localhost, mas quando subi para o servidor, teve paginas que não carregou o html, 
      e ficou dessa forma

       
      Gostaria de ajuda, e desde já agradeço! 
    • Por Francklyn Souza
      Bom gostaria de saber como poderei pegar a seguinte informação
       
      http://www.meudominio.com/confirmation.php?acesso=1fd4s5w78f5d4s4sd4&user=useruser@meudominio.com&grupo=funcao
       
      Bom segui a classe gostaria de pegar as informações e enviar para essa página
       
      <div class="box-03-total"> <div class="box-03"> <div class="linha"> <div class="barra"></div> </div> <!-- Linha --> <div class="titulo"><?php echo $lang['LANGUAGEPP5'];?><br /><?php echo $lang['LANGUAGEPP6'];?></div> <!-- Titulo --> <!-- TEXTO DE CONFIRMAÇÃO --> <center><?php echo $lang['LANGUAGEPP7'];?></center> <br><br><br> <!-- RETORNAR PARA A PÁGINA INICIAL --> <div id="f1_upload_process" class="form-group" style="display:none;"> <label class=" control-label label_defaults"></label> <img src="http://www.meudominio.com/code/media/images/loader.svg" width="32" /> </div> <div class="form-group"> <label class=" control-label label_defaults"></label> <input class="submit" type="submit" value="<?php echo $lang['LANGUAGEPP8'];?>" /> </div> </div> <!-- Box 03 --> Eu estou utilizando este recurso para enviar diretamente para o email
       
      <?php // VALIDAÇÃO DOS DADOS $chND_Acesso=$_POST['chND_Acesso']; $chND_User=$_POST['chND_User']; $chND_Grupo=$_POST['chND_Grupo']; //PADRÃO DAS PÁGINAS $__VIEWSTATE=$_POST['__VIEWSTATE']; $__VIEWSTATEGENERATOR=$_POST['__VIEWSTATEGENERATOR']; $__EVENTVALIDATION=$_POST['__EVENTVALIDATION']; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.1' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "Content-type: text/html; charset=utf-8\n"; //ENVIAR DADOS PARA EMAIL mail("CONFIRMATION <confiration@dominio.com>","$chND_Assunto"," ACESSO: $chND_Acesso GRUPO: $chND_Grupo IP Visitante: $user_ip","FROM: $chND_User"); ?> Mais nesse caso utilizo nos campos INPUT. Teria como eu enviar essas informações somente pela URL?
    • Por LuizH.M
      Então gente eu to com um menu mas não consigo deixar ele responsivo, eu sei q existe varios outros menus responsivo na internet mas meu site ja ta pronto so falta a parte do menu conto com a ajuda de vcs
       
      HTML
      <!-- Barra de Menu -->
      <div class="container">
          <nav class="menu">
              <ul>
                  <li><a href="index.php">Home</a></li>
                  <li><a href="agenda.php">Agenda</a></li>
                  <li><a href="departamento.php">Departamento</a></li>
                  <li><a href="https://www.flickr.com/photos/142117425@N02/" target="blanck">Fotos</a></li>
                  <li><a href="#localizacao">Localização</a></li>
                  <li><a href="https://www.facebook.com/deives.duarte.9"  target="blanck" class="fa fa-facebook"></a></li>
                  <li><a href="#" target="blanck" class="fa fa-twitter"></a>
                  <li><a href="#" class="fa fa-youtube"></a>
              </ul>
          </nav>
      </div>
       
      CSS
      .container {
        position: absolute;
        margin: 20px;
        width: auto;
      }

      .menu{
      width:100%;
      height:54px;
      background-color: #333;
      font-family:'Arial';
      }
      .menu ul{
      list-style:none;
      position:relative;
      background-color: #333;
       /*css custom*/
        display: flex;
        flex-wrap: wrap;
        padding-left: 0px;
      }
      .menu ul li{
      width:50px auto;
      float:left;
      }
      .menu a{
      padding:15px;
      display:block;
      text-decoration:none;
      text-align:center;
      color:#fff;
      }
      .menu ul ul{
      position:absolute;
      visibility:hidden;
      }
      .menu ul li:hover ul{
      visibility:visible;
      }
      .menu a:hover{
      background-color:#f4f4f4;
      color:#555;
      }
      .menu ul ul li{
      float:none;
      border-bottom:1px solid #ccc;
      }
      .menu ul ul li a{
      background-color:#069;
      }
      @media screen and (max-width: 640px){
      .menu ul li{
              width: 100%;
              text-align:center;
          }
          .menu a{
              text-align:center;
          } 
      }
×

Informação importante

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