joootap 0 Denunciar post Postado Novembro 8, 2009 Fala pessoal. Estou com uma dúvida hoje e se poderem gostaria que me ajudassem. Pesquisando e com o passar do tempo aprendi a passar variáveis no php de uma página para outra, porém eu sei fazer por métodos de post ou get aonde a pessoa digita algo e o php recupera os dados. Mas o meu caso é um pouco diferente... na minha página há um <form action="cadastroRealizado.php" method="post" /> que leva pra uma aonde faz as verificações dos dados do cadastro e se estiver tudo ok ele cadastra. Maaas se ele der erro, ele exibe o erro na página cadastroRealizado.php, eu gostaria de saber se há com eu exibir o erro na página cadastro.php, sendo que a verificação vai ser na página cadastroRealizado.php e ela voltaria pra outra página (a inicial) para exibir o erro. Existe como fazer isso? Obrigado a todos! E espero que isso não tenha sido perguntado antes, porque eu procurei bem antes de criar esse tópico. Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Filho 1 Denunciar post Postado Novembro 8, 2009 É só deletar o campo action e por o script na mesma página, de prefenrência, no início. Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Novembro 8, 2009 Ou...no arquivo para onde você manda os dados para serem processados...após ele ser preocessado e der algum tipo de erro....você pode fazer o seguinte. Caso der tudo certo... tá de boa né....mais...caso der algo errado...você pode mandar uma mensagem para o usuario via JavaScript (ou outra forma...de acordo com sua preferencia)por exemplo: "Erro ao efetuar cadastro" e mandar voltar para o formulario com os dados já preenchidos. Exemplo: if($insercao == $ok){ echo "beleluza"; } else{ echo '<script> alert("Erro ao efetuar cadastro!!!\nPor favor, confira os dados e tente novamente"); history.back(-1); </script>'; } Bom...aí é só um exemplo ok...caso der o erro...agora você tem que adpatar para o seu aí.... Qualquer coisa....vai postando as duvidas beleza... Abraços e boa sorte!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
joootap 0 Denunciar post Postado Novembro 9, 2009 Obrigado pela atenção de vocês, mas ainda não é exatamente o que eu quero... Minha intenção é realmente separar as páginas... O que é formulario em uma e o que é validação na outra e minha outra intenção é a de não usar javascript, pela questão de poder ser desabilitado. Minha idéia principal é alertar ao usuario que deu erro no preenchimento indo para uma página, fazendo a validação nela e voltando para outra para exibir o erro, por Php. Isso é possível? Obrigado pela atenção de vocês e segue o meu código abaixo... Bem simples, mas se ficar melhor pra visualizar a minha idéia. <form action="cadastradoRealizado.php" method="post" /> <legend>Cadastro</legend> <table width="200" border="0" cellspacing="5"> <tr> <td>Nome Completo:</td> <td><input type="text" name="nomefrm" value="" /></td> </tr> <tr> <td>Idade</td> <td><input type="text" name="idadefrm" value=<!--APARECER ERRO AQUI DEPOIS DE SER PROCESSADO PELA ACTION... COMO?-->"<?php if($erro==1){echo "preencha todos os campos";} ?>"<!--APARECER ERRO AQUI DEPOIS DE SER PROCESSADO PELA ACTION... COMO?--> /></td> </tr> <tr> <td>Nome de usuario:</td> <td><input type="text" name="userfrm" value="" /></td> </tr> <tr> <td>Senha</td> <td><input type="text" name="senhafrm" value="" /></td> <td><input type="submit" name="enviar" value="enviar" /></td> </tr> </table> </form> <?php require_once("conexao.php"); $erro = 1; if(!empty($_POST["nomefrm"]) AND !empty($_POST["idadefrm"]) AND !empty($_POST["senhafrm"]) AND !empty($_POST["usuariofrm"])){ $nome = $_POST["nomefrm"]; $idade = $_POST["idadefrm"]; $usuario = $_POST["usuariofrm"]; $senha = $_POST["senhafrm"]; $erro = 0; } else{ if(empty($_POST["nomefrm"])){ echo "<h2>Preencha seu nome!</h2>"; $erro=1; } if(empty($_POST["idadefrm"]) OR !is_numeric($_POST["idadefrm"])){ echo "<h2>Preencha sua idade corretamente!</h2>"; $erro=1; } } if($erro == 0){ $executaQuery = mysql_query("INSERT INTO tb_usuario(nome, idade, senha, usuario) VALUES ('$nome', '$idade', '$senha', '$usuario')"); echo "<h1>Cadastro realizado com sucesso!</h1>"; header("location:login.php"); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Filho 1 Denunciar post Postado Novembro 9, 2009 Certo, mas isso então será feito no script de validação, tanto faz ela está em uma página separada como dentro da mesma. Dá uma olhada nesse código e presta atenção nos elseif: <?php $operacao = $_POST["operacao"]; require "conexao.php"; if ($operacao=="login") { $login_usuario = $_POST["login_usuario"]; $senha_usuario = $_POST["senha_usuario"]; if (empty($login_usuario) && empty($senha_usuario)) { echo "<script>alert('Por favor, insira seu login e sua senha!')</script>"; echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\">"; } elseif (empty($login_usuario)) { echo "<script>alert('Por favor, insira seu login!')</script>"; echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\">"; } elseif (empty($senha_usuario)) { echo "<script>alert('Por favor, insira sua senha!')</script>"; echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\">"; } else { $senha_usuario = md5($senha_usuario); $consulta_usuario = "SELECT * FROM usuario WHERE login_usuario='$login_usuario' AND senha_usuario='$senha_usuario'"; $query = mysql_query($consulta_usuario) or die(mysql_error()); if (mysql_num_rows($query)=="0") { echo "<script>alert('Por favor, insira seus dados corretamente!')</script>"; echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\">"; } else { session_start(); $_SESSION["login_usuario"] = $login_usuario; $_SESSION["senha_usuario"] = $senha_usuario; header('location: painel_de_controle.php'); } } } mysql_close($conexao); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Novembro 9, 2009 Olá....bom dia à todos.... Muito bem...a dica do Daniel Filho é bastante valida....porém usa JavaScript na validação e você disse que não qeur com validação certo... Bom....é só fazer uma adaptação bem simples no codigo citado acima....nos elseif que o Daniel fez...se você tirar as linhas onde contém a parte do javascript...são essas echo "<script>alert('Por favor, insira sua senha!')</script>"; . As linhas com o seguinte código echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\">"; Irá retornar o usuario para a tela de login...portanto....lá na tela de login...apartir dessa linha acima....iremos retornar alguns valores para a tela de login...onde tais valores serão atribuidos valores de acordo com o erro especifico...por exemplo 1; //Login não preenchido corretamente 2; //Insira sua senha 3; // Etc... Enfim...para cara erro que você achar que deve ser reportado....você atribui um valor ok.... Então...novamnete na pagina de validação.... quando houver o erro e a seguinte linha echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\">"; for executda...passe um valor de volta para a pagina de login....isso pode ser feito da seguinte forma. echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php?erro=1\">"; ,Observe o que irá ser passado para a pagina de login "?erro=1", desta forma aí...ao ser redirecionado para a pagina anterior...irá retornar o valor 1, que ao receber lá....será correspondente à mensagem "Login não preenchido corretamente". Ahh sim...e na pagina de login...você pega o valor retornado com um $_GET["erro"] ok... Daí se.... if($erro == 1){ $msg = 'Login não preenchido corretamente'; } else if($erro == 2){ $msg = 'Insira sua senha'; } else if($erro == 3){ $msg = 'Login e/ou senha invalidos'; } echo $msg;Bom...a ideia é mais ou menos essa daí ok...qualquer coisa...vai postando suas duvidas aqui beleza... Boa sorte!!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 Olha, achei interessante a idéia. Resolvi fazer um script. form.php <?php session_start();?> <html> <body> <form method="post" action="valida.php"> <label>Nome <input type="text" name="nome" value="<?php if(isset($_SESSION['valores']['nome'])) echo $_SESSION['valores']['nome']?>"/><br /> <?php if(isset($_SESSION['erro']['nome'])) echo '<h1>'.$_SESSION['erro']['nome'].'</h1>'?> </label> <label>Email <input type="text" name="email" value="<?php if(isset($_SESSION['valores']['email'])) echo $_SESSION['valores']['email']?>" /><br /> <?php if(isset($_SESSION['erro']['email'])) echo '<h1>'.$_SESSION['erro']['email'].'</h1>'?> </label> <label>Telefone <input type="text" name="telefone" value="<?php if(isset($_SESSION['valores']['telefone'])) echo $_SESSION['valores']['telefone']?>" /><br /> <?php if(isset($_SESSION['erro']['telefone'])) echo '<h1>'.$_SESSION['erro']['telefone'].'</h1>'?> </label> <label>Assunto <input type="text" name="assunto" value="<?php if(isset($_SESSION['valores']['assunto'])) echo $_SESSION['valores']['assunto']?>" /><br /> <?php if(isset($_SESSION['erro']['assunto'])) echo '<h1>'.$_SESSION['erro']['assunto'].'</h1>'?> </label> <input type="submit" name="enviar" value="Enviar" /> </form> </body> </html> valida.php <?php session_start(); unset($_SESSION['erro'],$_SESSION['valores']); $erro = array(); if(isset($_POST['nome']) && empty($_POST['nome'])) { $erro['nome'] = 'O nome deve ser preenchido.'; } if(isset($_POST['email']) && empty($_POST['email'])) { $erro['emai'] = 'O e-mail deve ser preenchido.'; } if(isset($_POST['telefone']) && empty($_POST['telefone'])) { $erro['telefone'] = 'O telefone deve ser preenchido'; } if(isset($_POST['assunto']) && empty($_POST['assunto'])) { $erro['assunto'] = 'O assunto deve ser preenchido'; } if(!empty($erro)) { $_SESSION['erro'] = $erro; foreach($_POST as $chave => $valor) { if(!empty($valor)) { $_SESSION['valores'][$chave] = $valor; } } header('Location: form.php'); } else { echo 'Passei na validação'; } ?> Veja se entende a lógica do script. Ele retorna a mensagem de erro embaixo do campo do formulário e o valor dos campos que foram preenchidos. Aí é só complementar a validação. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Raul Souza Silva 1 Denunciar post Postado Novembro 9, 2009 nao é preciso trabalhar com sessoes pra fazer isso... =D eu tenho uma classe cheia de funcoes uteis para varios casos...sempre q eu preciso de uma função q eu possa usar em outras coisas eu coloco la e uma delas é a alertBack(): public function alertBack($msg){ echo "<script language='javascript'> <!-- alert('".$msg."'); history.back(); --> </script>"; } =D $msgErro = ""; if($nome==""){ $msgErro .= "\\nNome está em branco."; } if($email==""){ $msgErro .= "\\nPreencha o campo email."; } if(filter_var($email,FILTER_VALIDATE_EMAIL)===FALSE){ $msgErro .= "\\nEmail inválido."; } if($msgErro!=""){ alertBack("Os seguintes erros foram encontrados:\\n".$msgErro); exit; } Se alguem quiser a classe: <?php //Essa classe é um conjunto de funções úteis //Agiliza bastante o processo de programação class Util{ //Anti SQL Injection: Somente deixa passar numeros e letras public function no_injection_login($str){ try{ //aceita somente numeros e letras e aceita espaços - bom pra login if(preg_match("/[^\sa-zA-Z0-9]/i", $str)){ throw new Exception("Alteração de Dados"); } } catch(Exception $err){ //Chama função que registra o violamento de dados //A função que grava você faz de acordo com sua necessidade //gravaLog(); die("Houve um erro na tentativa de login."); } } //Verifica se o cpf é valido public function verificaCPF($cpf){ for( $i = 0; $i < 10; $i++ ){ if ( $cpf == str_repeat( $i , 11) or !preg_match("@^[0-9]{11}$@", $cpf ) or $cpf == "12345678909" ) return false; if ( $i < 9 ) $soma[] = $cpf{$i} * ( 10 - $i ); $soma2[] = $cpf{$i} * ( 11 - $i ); } if(((array_sum($soma)% 11) < 2 ? 0 : 11 - ( array_sum($soma) % 11 )) != $cpf{9}) return false; return ((( array_sum($soma2)% 11 ) < 2 ? 0 : 11 - ( array_sum($soma2) % 11 )) != $cpf{10}) ? false : true; } //Verifica se o email é valido public function validaMail($email){ return filter_var($email, FILTER_VALIDATE_EMAIL===true) ? true : false; } public function validateEmail($address) { if (function_exists('filter_var')) { //Introduced in PHP 5.2 if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) { return false; } else { return true; } } else { return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address); } } //Calcula diferença de datas public function dateDiff($sDataInicial, $sDataFinal){ $sDataI = explode("-", $sDataInicial); $sDataF = explode("-", $sDataFinal); $nDataInicial = mktime(0, 0, 0, $sDataI[1], $sDataI[0], $sDataI[2]); $nDataFinal = mktime(0, 0, 0, $sDataF[1], $sDataF[0], $sDataF[2]); return ($nDataInicial > $nDataFinal) ? floor(($nDataInicial - $nDataFinal)/86400) : floor(($nDataFinal - $nDataInicial)/86400); } //Calcula idade //A entrada é a data de nascimento //Formato: dd-mm-aaaa public function calculaIdade($dtNasc){ $data1 = str_replace("/" ,"-",$dtNasc); $data2 = date("d-m-Y"); // Hoje $resultado = $this->datediff("$data1", "$data2"); $anos = $resultado/365; $idade = explode("." , $anos); return $idade[0]; } //Checando se é valida //Quantidades de dias que tem no mês public function dias_mes_atual(){ $mes_atual = date("m", time()); $ano_atual = date("Y", time()); return cal_days_in_month(CAL_GREGORIAN, $mes_atual, $ano_atual); } //Formata data vinda do banco de dados no formato YYYY-mm-dd hh:mm:ss public function formataDataTime($dataBD,$act=1){ list($data,$time) = explode(" ",$dataBD); list($ano, $mes,$dia) = explode("-",$data); list($hora, $minuto,$segundo) = explode(":",$time); $retorno = ""; switch ($act) { default: case 1: //Data no formato brasileiro: dd/mm/YYYY $retorno = $dia."/".$mes."/".$ano; break; case 2: //Hora no formato brasileiro $retorno = $hora.":".$minuto.":".$segundo; break; } return $retorno; } public function diaSemanaAtual(){ $dia = getdate(); $arrayDias = array(); $arrayDias["Monday"] = "Segunda-Feira"; $arrayDias["Tuesday"] = "Terça-Feira"; $arrayDias["Wednesday"] = "Quarta-Feira"; $arrayDias["Thursday"] = "Quinta-Feira"; $arrayDias["Friday"] = "Sexta-Feira"; $arrayDias["Saturday"] = "Sabado"; $arrayDias["Sunday"] = "Domingo"; return $diaAtual = $arrayDias[$dia["weekday"]]; } public function diaSemana($dia,$mes,$ano){ $novoDia = getdate(mktime(0,0,0,$mes,$dia,$ano)); $arrayDias = array(); $arrayDias["Monday"] = "Segunda-Feira"; $arrayDias["Tuesday"] = "Terça-Feira"; $arrayDias["Wednesday"] = "Quarta-Feira"; $arrayDias["Thursday"] = "Quinta-Feira"; $arrayDias["Friday"] = "Sexta-Feira"; $arrayDias["Saturday"] = "Sabado"; $arrayDias["Sunday"] = "Domingo"; return $arrayDias[$novoDia["weekday"]]; } public function dataPepacc($data){ //2009-10-12 16:30:00 list($data,$hora) = explode(" ",$data); list($ano,$mes,$dia) = explode("-",$data); $semana = substr($this->diaSemana($dia,$mes,$ano),0,3); //4-abr $dataFormatada = $dia."-".$semana; return $dataFormatada; } public function dataPepac($data){ list($data,$hora) = explode(" ",$data); list($ano,$mes,$dia) = explode("-",$data); $arrayMes = array(); $arrayMes[1] = "jan"; $arrayMes[2] = "fev"; $arrayMes[3] = "mar"; $arrayMes[4] = "abr"; $arrayMes[5] = "mai"; $arrayMes[6] = "jun"; $arrayMes[7] = "jul"; $arrayMes[8] = "ago"; $arrayMes[9] = "set"; $arrayMes[10] = "out"; $arrayMes[11] = "nov"; $arrayMes[12] = "dez"; if(substr($mes,0,1)==0){ $mes = substr($mes,1); } return $dia."-".$arrayMes[$mes]; } //Função exibe um alerta em javascript public function alert($msg){ echo "<script language='javascript'> <!-- alert('".$msg."'); --> </script>"; } //Exibe um alerta e volta para a página anterior public function alertBack($msg){ echo "<script language='javascript'> <!-- alert('".$msg."'); history.back(); --> </script>"; } //Volta para a página anterior public function goBack(){ echo "<script language='javascript'> <!-- history.back(); --> </script>"; } //Fecha a janela em execução public function closeWindow(){ echo "<script language='javascript'> <!-- window.close(); --> </script>"; } //Redireciona para a página indicada no parametro public function redirect($page){ echo "<script language='javascript'> <!-- location.href='".$page."'; --> </script>"; } //Atualizar página public function atualiza(){ echo "<script language='javascript'> <!-- window.location.reload(); --> </script>"; } //Verifica se a quantidade de caracteres for maior que o indicado (60 é o padrão) //Só exibe a quantidade indicada e adiciona 3 pontos no final public function subString($str,$qtde=60){ return strlen($str)>$qtde ? substr($str,0,$qtde)."..." : $str; } //Executa uma págian externa enviando parametros por POST //Variavel de parametro $pacote deve ser um array public function execPage($url,$packet){ $o=""; foreach ($packet as $key=>$value){ $o.= "$key=".utf8_encode($value)."&"; } $args = substr($o,0,-1); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, 1 ); curl_setopt($ch, CURLOPT_POSTFIELDS,$args); $result = curl_exec($ch); $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); $result[0] = $result; $result[1] = $responseCode; return $result; } //Sobre cURL //Sempre deve-se iniciar o cURL com a função curl_init(), geralmente na variavel $ch //curl_setopt() é uma função para setar os parametros do curl //curl_exec($ch) executa uma requisição curl //curl_close($ch) fecha a requisição curl //As opções do curl são muito vastas //Para obter apenas o html de uma página você tem que setar a url na opção CURLOPT_URL //o CURLOPT_RETURNTRANSFER deve ser true para retornar resultudado //guardar a requisição em uma variavel ($result = curl_exec($ch) //Fechar a conexão //Dai você pode mandar exibir o conteudo da variavel $result, porque agora ele esta com o html resultante //E você poderá alterar o conteudo livremente. //Fazer exibir os acentos corretamente nos navegadores public function rewriteString($str){ $listaArr = array( "á"=>"á", "à"=>"à", "Á"=>"Á", "À"=>"À", "ã"=>"ã", "Ã"=>"Ã", "â"=>"â", "Â"=>"Â", "é"=>"é", "É"=>"É", "ê"=>"ê", "Ê"=>"Ê", "í"=>"í", "Í"=>"Í", "ú"=>"ú", "Ú"=>"Ú", "ó"=>"ó", "Ó"=>"Ó", "õ"=>"õ", "ç"=>"ç", "Ç"=>"Ç", "^"=>"ˆ", "~"=>"˜", "´"=>"´", "`"=>"`", "ª"=>"ª", "º"=>"º", "÷"=>"÷", "ü"=>"u", "©"=>"®" ); return strtr($str,$listaArr); } public function tiraAcento($string){ $string = $this->rewriteString($string); $string = htmlentities($string); $string = preg_replace("/&(.)(acute|cedil|circ|grave|tilde|ring|uml);/","$1",$string); return $string; } // Retira todas as tags html public function noTags($str){ return preg_replace("/\<[^\>]*\>?/"," ",$str); } // Restira as tags especificadas // Apenas o nome das tags // Ex: leaveTags($str,'img','a') public function leaveTags(){ $args = func_get_args(); $str = $args[0]; if(is_array($args)){ foreach($args as $arg){ if($args[0]!=$arg){ $pattern = "/\<".$arg."[^\>]*\>?/"; $str = preg_replace($pattern," ",$str); } } } return $str; } public function debugArray($array){ echo "<code>"; echo "Array <br>( <br> "; foreach ($array as $key=>$value){ if(is_array($value)){ echo " [$key] => Array <br> ( <br> "; foreach ($value as $key2=>$value2){ if(is_array($value2)){ echo " Array <br> {<br> "; foreach ($value2 as $key3=>$value3){ if(is_array($value3)){ foreach ($value3 as $key4=>$value4){ echo " [$key4] => $value4<br> "; } } else { echo " [$key3] => $value3<br> "; } } } else { echo " [$key2] => $value2<br> "; } } echo " ) <br><br> "; } else { echo " [$key] => $value<br> "; } } echo ") <br> "; echo "</code> "; } public function constroiVariaveisPOST(){ foreach ($_POST as $key=>$value) { echo '$'.$key.' = $_POST["'.$key.'"]; // Valor enviado: '.$value.'<br>'; } } public function constroiVariaveisGET(){ foreach ($_GET as $key=>$value) { echo '$'.$key.' = $_GET["'.$key.'"];<br>'; } } public function limitaPonto($str,$limit=3){ $limit = 3; if(strpos($str,",")!==false){ list($numero,$decimal) = explode(",",$str); if(strlen($decimal)>$limit){ $decimal = substr($decimal,0,$limit); } return $numero.",".$decimal; } elseif(strpos($str,".")!==false) { list($numero,$decimal) = explode(".",$str); if(strlen($decimal)>$limit){ $decimal = substr($decimal,0,$limit); } return $numero.".".$decimal; } else { return $str; } } // Função exclui dados repetidos em um array public function array_diff_values($str){ if(is_array($str)){ $numArray = count($str); $newArray = array(); if($numArray>0){ $newArray[0] = $str[0]; foreach ($str AS $key=>$value){ if(!in_array($value,$newArray)){ $newArray[] = $value; } } return $newArray; } else { // Array vazio return false; } } else { // Não é array return false; } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Filho 1 Denunciar post Postado Novembro 9, 2009 Creio que ele tem várias opções agora! http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 Só que a sua função utiliza JS, o que o usuário do tópico disse que não quer utilizar. Então, se ele não quer utilizar JS e não quer validar na mesma página, só enviado por GET, por SESSION ou por COOKIE. Agora, pensando um pouco no código, estou zerando a SESSION no lugar errado. unset($_SESSION['erro'],$_SESSION['valores']); Esta linha. O correto é tirar ela do início do valida.php e colocar no final do form.php. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Raul Souza Silva 1 Denunciar post Postado Novembro 9, 2009 Matias Rezende: uma coisa, você pode dar um nome a sessao pra ficar mais organizado caso voce esteja com outro aberta session_name("validacao"); session_start(); mas entao da pra passar pela url o erro... tipo: $erros = ""; if($nome==""){ $erros .= "1-"; // 1 para identificar que é o nome } if($email=="" || filter_var($email,FILTER_VALIDATE_EMAIL)===FALSE){ $erros .= "2-"; } if($erros!=""){ $querystring = substr($erros,0,-1); // String a ser passada por query string, retiro o ultimo caracter (que é o "-") header("pagina.php?erros=".$querystring); } mas dai perde o conteudo tem uma infinidadede coisas a se fazer nesses casos.... acho eu que a mais bonita é com jquery... =D alem de fazer uma animaçãozinha bonita nem precisa carregar a página...=D <script src="../js/jquery.js"></script> <script> function validaForm(){ nome = $("#nome").val(); email = $("#email").val(); $.post("recebe.php",{strNome: nome, strEmail:email},function(str){ $("#divForm").hide("fast"); $("#divResult").show("fast"); $("#divResult").html(str); }); } </script> Compartilhar este post Link para o post Compartilhar em outros sites
Raul Souza Silva 1 Denunciar post Postado Novembro 9, 2009 Matias Rezende Eu sei.... esse doido trampa comigo.... ele pediu pra mim postar pra poder juntar as opinioes de todo mundo.... =D mas da pra fazer tanta coisa fmz com validacao de formulario... =D Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 É... mas eu repito... O autor NÃO quer utilizar JS. Então jQuery está fora de cogitação. Matias Rezende: uma coisa, você pode dar um nome a sessao pra ficar mais organizado caso voce esteja com outro aberta session_name("validacao"); session_start(); Eu não vejo motivo para usar session_name(). Veja http://br.php.net/session_name session_name() retorna o nome da sessão atual. Se name está especificado, o nome da sessão atual é mudado para esse valor. Então ele vai sobrescrever o nome da SESSION. Por isto que eu utilizo como um array multidimensional. $_SESSION['erro']['nome'] Se tiver um SESSION de login, por exemplo, posso utilizar algo assim $_SESSION['login']['userId']; $_SESSION['login']['userName']; $_SESSION['login']['userLevel'] Além disto, só utilize aspas duplas quando tiver algo que precisa ser interpretado pelo PHP. Melhora o desempenho. session_name('nome'); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Raul Souza Silva 1 Denunciar post Postado Novembro 9, 2009 ata....entao vlw... ¬¬ (Alguem acordou de mal humor hj...¬¬) Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 (Alguem acordou de mal humor hj...¬¬) Nem... Na verdade, acho importante explicar o porque de fazer de tal forma, e o porque EU entendo que é melhor (não sou o dono da verdade, muito menos sei todas as coisas). Tudo que eu escrevo é a forma que EU considero melhor de fazer. Eu utilizo jQuery para fazer validações em formulários, mas não dá pra confiar só no JS, porque o cara pode estar navegando com o JS desabilitado. Aí vai passar pela validação direto, prejudicando a segurança do sistema. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Raul Souza Silva 1 Denunciar post Postado Novembro 9, 2009 eu nao estou criticando sua resposta... =D mas sim o jeito com q você falou... fui no mó bom humor e pá... dai chega e leva uma: $oMod = new patada(); :( Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 Bom, não foi a intenção. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Novembro 9, 2009 Nossa...esse topico rendeu...rssss http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Mas foi bom que...aqui foram demonstradas diversas formas de fazer a mesma coisa... Abraços galera... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Filho 1 Denunciar post Postado Novembro 9, 2009 Foi, só espero que o jootap não se enrole! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Novembro 10, 2009 É...vamos ver...rssss http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites