Jump to content


Photo

Problema Na Validação De Dados


  • Faça o login para participar
3 replies to this topic

#1 Red FeniX

Red FeniX

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 28/04/2009, 18:14

Ae galera,

Minha função de validação não tá funcionando. Tipo, se o cara seleciona uma opção nula ou até mesmo nenhuma, a form passa da mesma maneira para a etapa seguinte.

Código no index.php
<div id="block_container" style="width: 800px;">	<div id="novo_anuncio">	<?	if($slclass->VerValidacoes() && isset($_POST["p_etapa_2"])) {	?>	<div id="t_newa_2">			&nbsp;		</div>		<div id="cont_newa">			<form method="post" action="<? if(isset($_POST["p_etapa_3"]) && $slclass->VerValidacoes()) echo "index.etapa3.php"; ?>">						<?php				$pega_cat = mysql_query("SELECT * FROM $tablecats WHERE idCat='".$_POST["categorias"]."'");				$a_c = mysql_fetch_array($pega_cat);				$pega_sub = mysql_query("SELECT * FROM $tablecats WHERE idCat='".$_POST["subcats"]."'");				$a_s = mysql_fetch_array($pega_sub);						?>			<div id="blocks_anun" style="padding-top: 0;">			Você selecionou:<b> <?php echo $a_c["nome_cat"]; ?></b> &gt;&gt; <b><?php echo $a_s["nome_cat"]; ?></b> (<a href="index.php">Alterar</a>)			</div><br /><br />						<div id="blocks_anun" style="padding-top: 0;">				<div style="clear: both;">					<table width="600" border="0" cellspacing="0" cellpadding="5">						<tr>						  <td width="110"><b>Título:</b><br /></td>						  <td width="470"><input type="text" name="titulo" class="input_anun" /></td>						</tr>					</table>					</div>				<div style="padding-top: 2px; padding-bottom: 10px;">				<?if(isset($_POST["p_etapa_3"])) echo $slclass->ValidaBranco($_POST["titulo"], "Título");?>				</div>				</div>			<div id="blocks_anun" style="padding-top: 0;">				<div style="clear: both;">					<table width="600" border="0" cellspacing="0" cellpadding="5">						<tr>						  <td width="110"><b>Tipo:</b><br /></td>						  <td width="470"><label><input type="radio" name="tipo" value="Venda/Oferta" class="input" checked="checked">Vendo / Ofereço</label><label><input type="radio" name="tipo" value="Compra/Procura" class="input">Compro / Procuro</label></td>						</tr>					</table>					</div>					<div style="padding-top: 2px; padding-bottom: 10px;">				<?if(isset($_POST["p_etapa_3"])) echo $slclass->ValidaBranco($_POST["tipo"], "Tipo");?>				</div>			</div>			<div id="blocks_anun" style="padding-top: 0;">				<div style="clear: both;">					<table width="600" border="0" cellspacing="0" cellpadding="5">						<tr>						  <td width="110"><b>Descrição:</b><br /></td>						  <td width="470"><textarea name="descricao" rows="10" cols="55" id="descricao"></textarea></td>						</tr>					</table>					</div>					<div style="padding-top: 2px; padding-bottom: 10px;">				<?if(isset($_POST["p_etapa_3"])) echo $slclass->ValidaBranco($_POST["descricao"], "Descrição");?>				</div>			</div>			<div id="blocks_anun" style="padding-top: 0;">				<div style="float: left;">					<table width="600" border="0" cellspacing="0" cellpadding="5">						<tr>						  <td width="110">Preço:<br /></td>						  <td width="470">R$&nbsp;&nbsp;<input type="text" name="preco" size="8" style="text-align: right;" id="preco">&nbsp;,&nbsp;<input type="text" name="centavos" size="1" value="00" maxlength="2"></td>						</tr>					</table>					</div>				</div>			<div id="blocks_anun" style="padding-top: 0;">				<div style="float: left;">					<table width="600" border="0" cellspacing="0" cellpadding="5">						<tr>						  <td width="110">Exibir Telefone?<br /></td>						  <td width="470"><label><input type="radio" name="contato" value="1" class="input" checked="checked">Sim</label><label><input type="radio" name="contato" value="0" class="input">Não</label></td>						</tr>					</table>					</div>				</div>			<div id="blocks_anun" style="padding-top: 0;">				<div style="float: left;">					<table width="600" border="0" cellspacing="0" cellpadding="5">						<tr>						  <td width="110">Fotos:<br /></td>						  <td width="470">						  <input type="file" name="foto[1]">						  <div id="add_input_div" style="font-weight: bold;">												  </div>							<a href="#" onclick="java script:addInput(); return false;">Adicionar mais uma foto</a></td>						</tr>					</table>  					<input type="hidden" name="categoria" value="<? echo $_POST["categorias"]; ?>"> 					<input type="hidden" name="subcat" value="<? echo $_POST["subcats"]; ?>">  				</div>				</div>			<div id="blocks_anun">					<center><input type="submit" name="p_etapa_3" class="bt_prosseguir" style="margin: 0;" value=""></center>			</div>			</form>		</div>				<div id="footer_newa">			&nbsp;		</div>	</div>	<?	}	else{	?>		<div id="t_newa_1">			&nbsp;		</div>		<div id="cont_newa">			<form method="post" action="#" id="cats">						<div id="blocks_anun" style="padding-top: 0;">				<div style="float: left;">					<b>Categoria:</b><br /><br />									<select name="categorias" onchange="alimentarCombo(this.value);">					<option value="NDA"> Selecione a categoria...</option>					<?php										$select = mysql_query("SELECT * FROM $tablecats WHERE id_pai='0'") or die(mysql_error());										while ($r = mysql_fetch_array($select)) {												echo "<option value=\"{$r['idCat']}\">{$r['nome_cat']}</option>";					}					?>					</select>				</div>				<div style="float: right; margin-right: 25px; padding-top: 20px;">				<?if(isset($_POST["p_etapa_2"])) echo $slclass->ValidaSelect($_POST["categorias"], "NDA", "categoria", "f");?>				</div>			</div>			<div id="blocks_anun">					<div style="float: left;" id="subcats">				</div>				<div style="float: right; margin-right: 25px; padding-top: 20px;">				<?if(isset($_POST["p_etapa_2"])) echo $slclass->ValidaSelect($_POST["subcats"], "none", "sub-categoria", "f");?>				</div>			</div>			<div id="blocks_anun">					<center><input type="submit" name="p_etapa_2" class="bt_prosseguir" style="margin: 0;" value=""></center>			</div>			</form>		</div>				<div id="footer_newa">			&nbsp;		</div>	</div><? }?>		</div>

Código de validação
function ValidaSelect($campo, $campo_val, $campo_name, $sex) {
		
		if(empty($campo) || !isset($campo) || $campo == "" || $campo == $campo_val) if($sex == "m") return $this->mensagens(15, $campo_name, null, null); else return $this->mensagens(14, $campo_name, null, null);
	}
function VerValidacoes() {
		
		if(sizeof($this->msgerror) == 0) {
			
			return true;
		}
		else {
			
			return false;
		}

Qual o erro aqui?

Vlew

#2 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 30/04/2009, 14:36

cara que zo... de codigo....

separa isso ai.. e outra coisa ja que sua validação e simples

faz em java script...
masi simples e nao vai precisar ficar pedidndo requisição ao servidor

[codebox]
<script>

function Checar(form)
{
if(form.campo.value == "")
{
alert("mensamgem");
form.campo.focus();
return false;
}
form.submit();
}
</script>

[/codebox]
algo assim..


no form e so mandar no onclick do botão o seguinte



[codebox]onclick="Checar(document.nomedoform)"
[/codebox]



prontinho

Edição feita por: Dudu, 30/04/2009, 20:10.
Utilize [codebox][/codebox] nos códigos.

<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#3 Red FeniX

Red FeniX

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 03/05/2009, 20:45

Nao vey,

Validação é server-side.

Com PHP

falo

#4 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 03/05/2009, 21:52

Você está definindo no IF o ||, ou seja, dizendo que se UM ou OUTRO ocorrer ele vai dentro do IF, se colocar só assim já ajuda:
$campo == ""

Por isset não deve dar ali, por que o campo estará setado mesmo sendo vazio...
E empty há muitas contraversas para usar em verificação de form...

se usar só o de cima já ajuda, mas é bom verificar caracteres dentro da var também... ou um addslashes antes de verificar se está vazio... (y)

Com javascript ajuda muito para não perder dados ou redigitar algo caso esteja errado, mas é bom ter os dois, client-side | server-side. (principalmente).
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq