Ivopcb 0 Denunciar post Postado Junho 4, 2009 Pessoal, eu sou iniciante (completamente noob) em php e to fazendo uma codigo pra treino mesmo. Assim: $btn_incluir = $_POST[btn_incluir]; $btn_alterar = $_POST[btn_alterar]; $btn_excluir = $_POST[btn_excluir]; $codigo = $_POST[codigo]; $str_cidade = $_POST[str_cidade]; $str_estado = $_POST[str_estado]; (...) if ($btn_incluir){ $str_sql = "INSERT INTO ivo_cidade (nome, estado) VALUES ('$str_cidade','$str_estado')"; mysql_query($str_sql); $str_msg="Cidade incluída com sucesso."; unset($str_cidade);//tentei iso mas nao funcionou } Aí beleza, insere e tal... Mas quando se dá "f5" na pagina do "action" ela fica inserindo repetidamente. Daí a necessidade de esvaziar as variaveis $str_cidade','$str_estado, né isso? Como fazer isso? Espero que tenha dado pra entender... Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Junho 4, 2009 $btn_incluir =0;Ai não entra dentro do IF porque o parâmetro de validação é a variável $btn_incluir;Btn_incluir Sendo Zero, é valor falso. Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 4, 2009 se você tirar o valor da variavel, ela vai ser inserida do mesmo jeito, porém vazia... você pode verificar se os dados informados já existem no formulário, assim você evita cadastros duplicados... Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Junho 4, 2009 Pelo que entendi você quer que no F5 o request não seja feito novamente... 'Esvazia o request': $_POST = array(); Isso ao final do code em... Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 4, 2009 eibon, mas caso o usuário preencha o form com outros dados eles não seriam enviados, ou serão? Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Junho 4, 2009 cassiano...Claro que seriam cara...'só o request atual que seria perdido'. Calvin...nada a ver meu caro. Compartilhar este post Link para o post Compartilhar em outros sites
Ivopcb 0 Denunciar post Postado Junho 4, 2009 Pelo que entendi você quer que no F5 o request não seja feito novamente... 'Esvazia o request': $_POST = array(); Isso ao final do code em... Eibon, você poderia ser mais especifico? Em o que? Nem "btn_incluir=0" nem $_POST = array(); funfou :| Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Junho 4, 2009 Nossa que falta de atenção. Outro request será feito no update... Então cara...acho que a solução é persistir um dado independente a esse request e em toda execução do script o checar. Mas essa não é a melhor alternativa para o seu caso. No seu caso,é antes do insert checar se os dados já existem. Eu te recomendo fazer isso com uma before insert trigger,mas opte por maneiras mais faceis se desejar. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 5, 2009 use session na página do formulário: $_SESSION['form'][finished] = false; na página que recebe os dados if( !$_SESSION['form'][finished] ) { //após validar e concluir o processamento dos dados: $_SESSION['form'][finished] = true; } Compartilhar este post Link para o post Compartilhar em outros sites
Ivopcb 0 Denunciar post Postado Junho 5, 2009 Eu num intendi mto bem, mas fiz assim: Na pagina do formulario: <?PHP # Projeto: Cidades # Data de criação: 14/05/2009 # Desenvolvedor: $_SESSION['form1'][finished] = false; //form1 é o nome do formulario ?> e na pagina que recebe os dados: if ($btn_incluir) and (!$_SESSION['form1'][finished]){ $str_sql = "INSERT INTO ivo_cidade (nome, estado) VALUES ('$str_cidade','$str_estado')"; mysql_query($str_sql); $str_msg="Cidade incluída com sucesso."; //após validar e concluir o processamento dos dados: $_SESSION['form1'][finished] = true; } e deu nisso: Parse error: parse error in C:\Documents and Settings\agente\Desktop\MoWes\www\Cidades\index.php on line 33 (linha do If) Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 5, 2009 "parse error" http://forum.imasters.com.br/public/style_emoticons/default/seta.gif provável erro na sintaxe erro if ($btn_incluir) and (!$_SESSION['form1'][finished]){ correção if( $btn_incluir and !$_SESSION['form1'][finished] ){ Compartilhar este post Link para o post Compartilhar em outros sites
Ivopcb 0 Denunciar post Postado Junho 5, 2009 Parou o parse error mas persiste inserindo com f5. Aff. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 6, 2009 agora que reparei um detalhe quando digitei o indice do array esqueci de delimitá-lo entre aspas errado $_SESSION['form1'][finished] correção ('finished') $_SESSION['form1']['finished'] O seu ambiente de desenvolvimento está mal-configurado. Ative todas as mensagens de aviso de erro no php.ini, pois esse tipo falha provocaria um erro. Compartilhar este post Link para o post Compartilhar em outros sites
Ivopcb 0 Denunciar post Postado Junho 10, 2009 Eh,... ta brabo, pelo jeito a coisa é mais complexa do que eu imaginava... e não é tão simples pra resolver. Isso normalmente ocorre em sitemas profissionais? Compartilhar este post Link para o post Compartilhar em outros sites