Ir para conteúdo

POWERED BY:

Arquivado

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

joootap

[Resolvido] Variavel de uma página para outra

Recommended Posts

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

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

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

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

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

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

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(
		"á"=>"á",
		"à"=>"à",
		"Á"=>"Á",
		"À"=>"À",
		"ã"=>"ã",
		"Ã"=>"Ã",
		"â"=>"â",
		"Â"=>"Â",

		"é"=>"é",
		"É"=>"É",
		"ê"=>"ê",
		"Ê"=>"Ê",

		"í"=>"í",
		"Í"=>"Í",

		"ú"=>"ú",
		"Ú"=>"Ú",

		"ó"=>"ó",
		"Ó"=>"Ó",
		"õ"=>"õ",

		"ç"=>"ç",
		"Ç"=>"Ç",

		"^"=>"ˆ",
		"~"=>"˜",
		"´"=>"´",
		"`"=>"&grave;",

		"ª"=>"ª",
		"º"=>"º",
		"÷"=>"÷",
		"ü"=>"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

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

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

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

É... 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

(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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.