Ir para conteúdo

POWERED BY:

Arquivado

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

icarof

Função Isset e Empty

Recommended Posts

Olá Pessoal

 

Vocês são o unico socorro para nós novatos em em PHP, lá vou eu de novo:

 

Bom, nos meus ultimos topicos tive alguns problemas com um formulario, durante as soluções me falaram que era bom "tratar" as variaveis com o Isset, me deram uma brev explicação do codigo.

 

Dai coloquei a mão, na massa, e pra variar deu errado.

 

Bom, gostaria que o formulario não permitisse que fossem gravados dados em branco, mas ja tentei usar as duas funções que descrevi acima, e sempre se efetua o cadastro com campos vazios.

 

Bom gostaria que o formualrio não deixasse efeturar o cadastro caso haja campos em branco.

 

esse é o codigo do arquivo que grava os dados:

<?php
include ("conexao.php");

//variaveis recebidas e tratdas para o BD
$curso 		= $_POST["curso"];
$utf_curso = utf8_decode($curso);

$modalidade = $_POST["modalidade"];
$utf_modalidade = utf8_decode($modalidade);

$val_mat 	= $_POST["valor_matricula"];
$utf_val_mat = utf8_decode($val_mat);

$emissor 	= $_POST["emissor_diploma"];
$utf_emissor = utf8_decode($emissor);

$creden		= $_POST["credenciamento"];
$utf_dreden = utf8_decode($creden);

$turma 		= $_POST["turma"];

$nome 		= $_POST["nome_aluno"];
$utf_nome = utf8_decode($nome);

$sexo 		= $_POST["sexo"];
$rg 		= $_POST["rg"];
$orgao 		= $_POST["orgao_emissor"];
$cpf 		= $_POST["cpf"];
$nascimento = $_POST["nascimento"];
$nacional 	= $_POST["nacionalidade"];

$natural 	= $_POST["naturalidade"];
$utf_natural = utf8_decode($natural);

$est		= $_POST["estado_civil"];
$utf_est = utf8_decode($est);

$pai 		= $_POST["nome_pai"];
$utf_pai = utf8_decode($pai);

$mae 		= $_POST["nome_mae"];
$utf_mae = utf8_decode($mae);

$endereco	= $_POST["endereco"];
$utf_endereco = utf8_decode($endereco);

$bairro 	= $_POST["bairro"];
$utf_bairro = utf8_decode($bairro);

$muni 		= $_POST["municipio"];
$utf_muni = utf8_decode($muni);

$uf 		= $_POST["uf"];
$cep 		= $_POST["cep"];

$compl 		= $_POST["complemento"];
$utf_compl = utf8_decode($compl);

$email 		= $_POST["email"];
$utf_email = utf8_decode($email);

$telefone	= $_POST["tel"];
$celular 	= $_POST["celular"];
$telcom 	= $_POST["tel_comercial"];

$defic		= $_POST["portado_def"];
$utf_defic = utf8_decode($defic);

$atend		= $_POST["respon_atendimento"];
$utf_atend = utf8_decode($atend);

$data 		= $_POST["data"];

$obs 		= $_POST["obs"];
$utf_obs = utf8_decode($obs);

$matricula	= $_POST["ficha_numero"];

//verificações



$sql = "INSERT INTO alunos_matricula(curso, modalidade, valor_matricula, emissor_diploma, credenciamento, turma, nome_aluno, sexo, rg, orgao_emissor, cpf, nascimento, nacionalidade, naturalidade, estado_civil, nome_pai, nome_mae, endereco, bairro, municipio, uf, cep, complemento, email, tel, celular, tel_comercial, portado_def, respon_atendimento, data, obs, ficha_numero) VALUES ('$utf_curso', '$utf_modalidade', '$utf_val_mat', '$utf_emissor', '$utf_creden', '$turma', '$utf_nome', '$sexo', '$rg', '$orgao', '$cpf', '$nascimento', '$nacional', '$utf_natural', '$utf_est', '$utf_pai', '$utf_mae', '$utf_endereco', '$utf_bairro', '$utf_muni', '$uf', '$cep', '$utf_compl', '$utf_email', '$telefone', '$celular', '$telcom', '$utf_defic', '$utf_atend', '$data', '$utf_obs', '$matricula')";


$query = mysql_query($sql) or die ("Não foi possivel salvar os dados, verifique os valores passados");

header("location:index.php?link=8");

?>

tive de usar o decode, po causa do BD que dava dando muito erro.

 

alguem tem alguma ajuda pra esse novato?

 

Caso alguem possa me esplciar melhor essas 2 funções com exemplos praticos, eu ficaria agradecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use a função abaixo

function getValue($key, $default_value = false)
{
	if (!isset($key) || empty($key) || !is_string($key))
		return false;
	$ret = (isset($_POST[$key]) ? $_POST[$key] : (isset($_GET[$key]) ? $_GET[$key] : $default_value));

	if (is_string($ret) === true)
		$ret = urldecode(preg_replace('/((\%5C0+)|(\%00+))/i', '', urlencode($ret)));
	return !is_string($ret)? $ret : stripslashes($ret);
}

 

Forma de uso, Post ou Get

$curso = getValue("curso");

Normalize tudo para utf-8

 

banco, script, conexão

 

Gambiarra

$utf_obs = utf8_decode($obs);

Solução

http://rberaldo.com.br/problemas-com-codificacao-acentos-nao-interpretados/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano, como citei antes ta tudo em UTF-8, mas o erro persiste, essa gambiarra ae foi a única forma de fazer a coisa andar.

 

tenho pouco conhecimento em php, to aprendendo ainda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia ter feito assim tambem:

$email = utf8_decode($_POST['email']);

Em meus codigos , para verificar se os campos estao vazios eu uso o seguinte codigo e funciona com isset/ empty

if(empty($variavel)){
echo "Este campo esta vazio";


}

Adicione ainda nesse codigo o EXIT para intenrromper o processamento , ficando assim:

if(empty($variavel)){
echo "Este campo esta vazio";

exit;

}

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa era a questão, o campo vinha vazio, mas não mostrava a mensagem e cadastrava.

 

vou tentar essa modo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre a diferença da função.

 

o ISSET verifica se existe a variável.

o EMPTY verifica se o conteúdo da variável está vazia.

 

então sabendo disso, saberás utilizar o comando.

 

Ex1: verifique se a variável $teste é vazia.

<?php
 
$teste = 'oi';
 
if(empty($teste)){
echo "A variável e vazia.";
}else{
echo "A variável não e vazia.";
}
 
 
?>

Ex2: verifique se a variável $teste existe;

<?php
 
if( isset($teste) ){
echo "A variável existe";
}else{
echo "A variável $teste não existe";
}
 
?>

Ex3. Verifique se a variável $teste exite e não e vazia;

<?php
$teste = "Testando..";
 
if( isset($teste) &&  !empty($teste) ){
echo "A variável teste existe e não e vazia.";
}else{
echo "A variável não existe";
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, paulinho, com essa sua explicação, deu pra entender melhor a coisa, e com o exemplo do vitor, vou reanalisar o codigo

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.