Jump to content


Photo

Função Retorno Erro String


  • Faça o login para participar
10 replies to this topic

#1 thiagoafcmk

thiagoafcmk

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 05/06/2008, 18:50

Olá tenho uma função e quero retornar uma variavel contendo o erro.
mas a mesma não esta sendo exibida.

<?php
function tratar($string) {
	if (empty($string)) {
		$msg = "Preencha um Nome!"; 
		$erro= "1";
	} elseif (!ctype_alnum($string)) {
		$msg = "Somente Letras e Números!"; 
	$erro= "1";
	}
	return $string;	
}	

	$nome = tratar($_POST['nome']);
		 
?>
<?php if ($msg != "") { echo $msg; }?>


#2 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 05/06/2008, 19:15

<?php if ($nome != "") { echo $nome; }?>

#3 thiagoafcmk

thiagoafcmk

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 05/06/2008, 19:23

Olá, você não entendeu eu quero exibir o erro caso exista.

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 05/06/2008, 20:07

Posso dar uma sugestão? Esqueça essa idéia. ;)

Você precisa de excessões.

Lavagem cerebral: http://www.php.net/exceptions ;-)

[]’s :DAté mais

#5 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 06/06/2008, 03:03

Olá, você não entendeu eu quero exibir o erro caso exista.


Você está armazenando o retorno da função na variável $nome, você parece ser iniciante, leia mais sobre funções e retorno de valores.

#6 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 06/06/2008, 08:29

Isso é questão de escopo de variável, a variável 4msg soh vai ser vista dentro da função, a não ser que você faça:

function tratar($string, &$msg) {

}

e chamál-la assim

tratar($string, $msg);
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#7 thiagoafcmk

thiagoafcmk

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 06/06/2008, 09:51

Pessoal desculpe pelo encomodo mas ainda não entendi, abaixo segue o codigo de como estou usando.

<?php

	function tratar($string) {
	   // função para empty.
	   if (empty($string)) {
		  $msg = "Preencha um Nome!";
		  $erro= "1";
	   // função para somente letras e numeros.
	   } elseif (!ctype_alnum($string)) {
		  $msg = "Somente Letras e Números!";
		  $erro= "1";
	   }
	   // retorna a string
	   return $string;	
	}	
	
	// Aqui declaro a var. nome.
	$nome = tratar($_POST['nome'], $msg);
		
?>
<?php 
// Aqui exibe o erro caso exista.
if ($msg != "") { echo $msg; }
?>
<form name="form1" method="post" action="">
  <input type="text" name="nome" id="nome">
  <input type="submit" name="button" id="button" value="Submit">
</form>


#8 offspring

offspring

    O_o

  • Ex-Admins
  • 946 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 06/06/2008, 10:05

Você está retornando a váriavel que é passada como parametro, você tem que retornar a váriavel $msg:

return $msg; ao invés de return $string;

#9 thiagoafcmk

thiagoafcmk

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 06/06/2008, 10:15

Já fiz assim também e não retornou, se poder testar ai vai ver que não retorna.

#10 offspring

offspring

    O_o

  • Ex-Admins
  • 946 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 06/06/2008, 10:18

De um echo no $nome, as variaveis que você trata dentro de uma função pertencem apenas a ela, você está retornando a variavel $msg na variavel nome

Portanto ficaria assim:
<?php if ($nome != "") { echo $nome; }?>

#11 thiagoafcmk

thiagoafcmk

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 06/06/2008, 11:13

Bem o intuito do que queri fazer ninguém entendu mas mesmo assim agradeço, já consegui fazer o que eu queria.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq