Ir para conteúdo

Arquivado

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

Ricardo Godoi

Validar valor se for pelo get do url .

Recommended Posts

Ola, boa tarde. Estou com uma duvida de como criar uma função onde so valida o valor so se ele estive sido requisidato pelo url index.php?p=cliente&faz=dados e não pelo index.php?p=cliente&faz=update&ID=1

mas não estou conseguindo começar.

function verificaCadastro2($tabela,$nomeCampo,$cadastro){

	global $BancoDeDados;

	try{
		//if ($_POST['dados'] = $_POST['dados'] ?: true ) {
		$consulta	= $BancoDeDados->query_prepare("
											SELECT
												*
											FROM
												".$tabela."
											WHERE
												".$nomeCampo." = :".$nomeCampo."", 
											array(
												$nomeCampo => $cadastro, 
											));
		
		$consulta->bindParam(":".$nomeCampo."", $cadastro, PDO::PARAM_STR);
		$verificaCadastro = $BancoDeDados->num_rows($consulta);

		//$verificaCadastro 	= $BancoDeDados->fetch_array($consulta);

		if ($verificaCadastro > 0) {
			return false;
		} else {
			return true;
		} 
	} catch (Exception $e) {
		echo 'Erro ao verificar registro cadastrado'.$e->getMessage();
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ex: o script so tem a função de chegar se tem o registro no banco de dados.

Para não ter que ficar copiando e colando, fiz uma function, que é essa.

// ------------------------------------------------------------------------------
// * verificaCadastro: faz um verificação de cadastro			
// ------------------------------------------------------------------------------

function verificaCadastro($tabela,$nomeCampo, $cadastro ){
	return true;
}

function verificaCadastro2($tabela,$nomeCampo,$cadastro){

	global $BancoDeDados;

	try{
		if ($_GET['faz']=="dados") {
		$consulta	= $BancoDeDados->query_prepare("
											SELECT
												*
											FROM
												".$tabela."
											WHERE
												".$nomeCampo." = :".$nomeCampo."", 
											array(
												$nomeCampo => $cadastro, 
											));
		
		$consulta->bindParam(":".$nomeCampo."", $cadastro, PDO::PARAM_STR);
		$verificaCadastro = $BancoDeDados->num_rows($consulta);

		if ($verificaCadastro > 0) {
			return false;
		} else {
			return true;
		}
	}
	} catch (Exception $e) {
		echo 'Erro ao verificar registro cadastrado'.$e->getMessage();
	}
}

Porem, quando vo fazer um update ele me retorna que ja está cadastrado, correto, so que quero tirar essa parte, preciso que ele so faça a verificação verificaCadastro2 quando o sistema mandar ele via index.php?p=cliente&faz=dados e não pela index.php?p=cliente&faz=update&ID=1

OBS: o faz=dados e update fica no mesmo arquivo, http://pastebin.com/wHDjVHbA

quero fazer uma function para validar se o valor foi repassado via dados, return true ou update, return false.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 
$faz = filter_input(INPUT_GET, 'faz', FILTER_DEFAULT);
 
if(isset($faz) && $faz == "update"){
 
não chama a função
 
}elseif(isset($faz) && $faz == "cadastro"){
chama a função
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, correto.

Mas como implementa-lo na function verificaCadastro2?

Por que assim, ele vai ficar assim,

	$faz = filter_input(INPUT_GET, 'faz', FILTER_DEFAULT);

	// Testes
	$Erro=false;
	if (!($$Config['id']>0)) $erro=true; 
	//if (verificaCadastro2($Config['tabela'],"central_usuario_login",$central_usuario_login)==false) $Erro= "Login";
	if (  (empty($password)) && (!($$Config['id']>0)) ) $Erros .= "Senha|";
	//if (strlen($usuario_telefone_email_alternativo) < 2) $Erro .= "|E-mail";

	if(isset($faz) && $faz == "update"){
		if (strlen($central_usuario_login) < 2) $Erro .= "Login";
	}elseif(isset($faz) && $faz == "dados"){
		if (verificaCadastro2($Config['tabela'],"central_usuario_login",$central_usuario_login)==false) $Erro= "Login";
	}

	if ($Erro==true) : redirect(site_url(DIR_ADM)."/sys/".$Config['arquivo']."/msg/errorTipo/tipo/".$Erro.""); endif;

mas como no http://pastebin.com/wHDjVHbA ja faço uma if ($_GET['faz']=="dados") : e if ($_GET['faz']=="update") :

 

desse modo, ele me retorna o erro, mas cadastra ainda no banco.

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.