Jump to content
Diogo Guimaraes

Refresh - Duplica registo BD

Recommended Posts

Diogo Guimaraes

Boas,

Tou a fazer um form basico que regista em mysql o conteudo do form mas por exemplo depois de clicar em submit, se fizer refresh a pagina ele vai me duplicar sempre  conteudo inserido. Alguem sabe como posso evitar isso?

 

<?php
    
    function __autoload($class_name){
        
        require_once '/classes/' . $class_name .'.php';
        
    }
?>
<!DOCTYPE html>
<html>
    
    <head>
    <meta charset="UTF-8">
    <?php
        
            $equip = new Equipamentos();
            
            if(isset($_POST['btn_submit'])):
                
                $nome_equipamento = $_POST['input_nome_equip'];
                $marca_equipamento = $_POST['input_marca_equip'];
                $modelo_equipamento = $_POST['input_nome_equip'];                
                                                    
                $equip->setEquipamento($nome_equipamento);                
                $equip->setMarca($marca_equipamento);
                $equip->setModelo($modelo_equipamento);
                                
                $equip->insert();
                
                if($equip->insert()){
                    unset($_POST['btn_submit']);
                }else{
                    echo "nao inserido";
                }
                endif;
        ?>
    </head>
    <body>        
        <form method="POST" action="">            
            <input type="text" name="input_nome_equip" id="input_nome_equip" required="true">
            <input type="text" name="input_marca_equip" id="marca_nome_equip" required="true">
            <input type="text" name="input_modelo_equip" id="modelo_nome_equip" required="true">            
            <input type="submit" name="btn_submit" id="btn_submit" value="Registar">           
                  
        </form>
        <?php include_once 'list.php';
        ?>
    </body>
</html>

 

Share this post


Link to post
Share on other sites
tiago.f

Olá, assumo que é inserção seja feita na função insert da classe Equipemento. Se sim, então o problema esporeie estás a chamá-la duas vezes: uma dentro do “if” e outra na linha anterior. 

Share this post


Link to post
Share on other sites
Diogo Guimaraes

Boas tiago.f,

Isso por acaso já tinha corrigido o codigo q copiei ainda tinha em duplicado a execução do insert, agora o prob é que depois de inserir um dado faço submit e ele fica com os inputs limpos mas no fundo se fuzer refresh a pagina ele adiciona-me o dado que foi registado anteriormente como se ficasse sempre em cache.

Share this post


Link to post
Share on other sites
Diogo Guimaraes

Acho que já resolvi, não sei se é tecnicamente correcto mas ultrapassa o problema usando isto:

if($equip->insert()){
                    echo "<script>
                            window.alert('Inserido na BD');
                            window.location.href = 'index.php';
                            </script>";
                }else{
                    echo "nao inserido";
                }
                endif;

 

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.