Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ivopcb

Esvaziar variavel

Recommended Posts

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

$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

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

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...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

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

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

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

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

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

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

×

Informação importante

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