icarof 9 Denunciar post Postado Junho 26, 2014 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
Williams Duarte 431 Denunciar post Postado Junho 26, 2014 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
icarof 9 Denunciar post Postado Junho 26, 2014 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
Vitor RC 11 Denunciar post Postado Junho 26, 2014 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
icarof 9 Denunciar post Postado Junho 26, 2014 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
paulinhosupriano 103 Denunciar post Postado Junho 27, 2014 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
icarof 9 Denunciar post Postado Junho 27, 2014 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