Ir para conteúdo

Arquivado

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

PhantOmL0rd

[Resolvido] Probleminha na validação

Recommended Posts

Ae galera estou com o seguinte problema, meus dados no formulario estão validando, mas quando da um "problema", o usuário tem que digitar tudo novamente, por exemplo: o usuario digita todo conteudo e esquece de digitar o titulo, dai pede pra ele digitar o titulo só que dai ele vai ter q digitar o conteudo todo novamente. Sugestões serão bem vindas. Segue o código.

 

Formulario.

<h2>Dica / Promoção</h2>
<span id="ondeEstou"><a href=".">gerenciador</a> >> <a href="?pag=dicpro">dica / promoção</a> >> adicionar dica / promoção</span>
<div id="msg">
	<?php
		$msg = base64_decode($_GET['msn']);
		echo $msg;
	?>
</div>
<form action="funcoes/cadastros.php" method="post" name="form_dicpro">
	<fieldset>
		<legend>Adicionar dica / promoção.</legend>
		<label for="tituloDIC">*Título:</label><br/>
		<input name="tituloDIC"  id="tituloDIC" type="text" size="45" maxlength="45" /><br/>
		<label for="conteudoDIC">*Conteúdo:</label><br/>
		<textarea name="conteudoDIC" cols="45" rows="5" id="conteudoDIC"></textarea><br/>
    <label for="tipoDIC">*Tipo:</label><br/>
		<select name="tipoDIC" id="tipoDIC">
		  <option value="-1" selected="selected">Selecione o tipo:</option>
		  <option value="0">Dica</option>
		  <option value="1">Promoção</option>
    </select><br/>
    <input type="submit" name="btnEnviar" value="Enviar" />
    <input name="txtLocal" type="hidden" id="txtLocal" value="form_dicpro" />
	</fieldset>
</form>

Pagina de 'ativação' do formulario.

/*************************************************
***	ADICIONAR DICAS/PROMOÇÕES
*************************************************/
if($_POST["txtLocal"] == "form_dicpro")
{	//if_6.
	
	//Pegando os dados do formulário.
  if(isset($_POST['tituloDIC']) && !empty($_POST['tituloDIC']))
		$tituloDIC = $_POST['tituloDIC'];
	else
   	$msg .= base64_encode('- Preencha o Título.<br/>');
		
	if(isset($_POST['conteudoDIC']) && !empty($_POST['conteudoDIC']))
		$tituloDIC = $_POST['conteudoDIC'];
	else
   	$msg .= base64_encode('- Preencha o Conteúdo.<br/>');
		
	
	if($_POST['tipoDIC'] != "-1")
		$tituloDIC = $_POST['tipoDIC'];
	else
   	$msg .= base64_encode('- Selecione o tipo.<br/>');
	
	if (empty($msg)) //Se não houver erros.
	{	//if_6.2.
		//Instanciando a classe de manipulação de dados.
		$add = new ManipulaDados();
		$add->setTabela("dicas_promo");
		$add->setCampos("tituloDIC, conteudoDIC, tipoDIC");
		$add->setValores("'$tituloDIC', '$conteudoDIC', '$tipoDIC'");
		$add->insert();
		$msg = base64_encode($add->getStatus());
		@header("Location: ../?pag=adicionar_dicpro&msn=$msg");
	}	//Fim if_6.2.
	else
		@header("Location: ../?pag=adicionar_dicpro&msn=$msg");
	
}	//Fim if_6.

Desde já agradecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faço assim (não sei se é a melhor maneira), passo os dados de volta pelo header, mais ou menos assim:

...
else{
  $conteudo =  urlencode($_POST['conteudoDIC']);
  @header("Location: ../?pag=adicionar_dicpro&msn=$msg&conteudo=$conteudo");
}

E lá no formulário eu pego o valor passado por get e coloco na textarea:

<textarea name="conteudoDIC" cols="45" rows="5" id="conteudoDIC"><?php echo urldecode($_GET['conteudo']); ?></textarea><br/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma opção é na página que processa, você faz um cópia do $_POST em uma sessão, e caso dê erro, preenche os dados do formulário com os dados armazenados na sessão. Uma vez que retornou ao formulário, limpa a session, senão o cara vai pra home, e quando voltar ao formulário, estará preenchido novamente. :)

 

Algo como:

 

processa.php

<?php //se der algum erro, grava dados enviados
$_SESSION['dados_form'] = $_POST; ?>

formulario.php

<?php $dados_form = $_SESSION['dados_form'];
unset($_SESSION['dados_form']); //limpa variavel ?>

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.