Jump to content


Photo

[resolvido] Tratamento De Dados


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

#1 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 21/09/2009, 10:26

Olá pessoal,



Estou usando desenvolvendo uma página usando include, nos menus tb utilizo include....e esta da seguinte forma: <A href="index.php?area=teste">Teste</a>



Porém lendo um artigo relacionado com segurança em páginas o mesmo diz que: (Cross site script) regra Numero um, nunca passe dados importantes via GET ; (tratamento de dados) regra numero dois, sempre que passar um dado via GET tratar esse dado usando REGEX ou qualquer tipo de mascara, para ter certeza do tipo de dado recebido.

Porém da forma que estava fazendo no navegador estava mostrando da seguinte forma:
http://exemplo.com.b...aleconosco.html

E gostaria q ficasse assim:
http://exemplo.com.b...plo.php?cod=123


Dae tentei fazer assim: No menu passo isso: <A href="index.php?area=teste">Teste</a>

E no índex:



<?

$area = int($_GET['area']);





//$area = $_GET["area"];



switch ($area)

{

default:

include "home.php";

break;



case "teste":

include "teste.php";

break;



?>


Porém dá o seguinte erro: Fatal error: Call to undefined function: int()

Edição feita por: Eu_Nana, 25/09/2009, 07:33.


#2 MarcoviZ

MarcoviZ

    ubuntu for human being

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

Posted 21/09/2009, 10:31

Você está definindo a variável como int, mas nos teus exemplos você utiliza "teste" que é uma string...
e também, faltou fechar a função switch.

[]'s
[]'s

#3 Paulo Freitas

Paulo Freitas

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

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

Posted 21/09/2009, 10:53

A questão do erro é que não existe a função int().

O que existe são: função intval() e tipo int. O que você quer se chama type-casting, mas é feito de outra forma: http://www.php.net/m...pes.typecasting

Exemplos de uso:

$num = intval($str);
$num = (int) $str;
[]’sAté mais

#4 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 21/09/2009, 10:58

Você está definindo a variável como int, mas nos teus exemplos você utiliza "teste" que é uma string...
e também, faltou fechar a função switch.

[]'s


Ah sim, o switch esta fechado....peguei apenas parte do código......e oq vc me sugeriria para aparecer dessa forma no navegador:

http://exemplo.com.br/exemplo.php?cod=123


Ah e o texto que estava lendo é este:

http://www.linhadeco...igo.aspx?id=673


#5 MarcoviZ

MarcoviZ

    ubuntu for human being

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

Posted 21/09/2009, 11:02

hum, nunca trabalhei com int, respondi por dedução. mas seguindo sua dúvida:

<?
$cod = $_GET["cod"];

switch ($cod)
{
default:
include "home.php";
break;

case "123":
include "teste.php";
break;
}
?>

aqui você pode acessar outros exemplos

[]'s

Edição feita por: MarcoviZ, 21/09/2009, 11:02.

[]'s

#6 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 22/09/2009, 14:09

A questão do erro é que não existe a função int().

O que existe são: função intval() e tipo int. O que você quer se chama type-casting, mas é feito de outra forma: http://www.php.net/m...pes.typecasting

Exemplos de uso:

$num = intval($str);
 $num = (int) $str;
[]’s


Uma dúvida.....como disse estou usando include onde o menu lateral é chamado via include e no index estou passando isso:
$area = int($_GET['area']);				switch ($area)				{    			default:        		include "home.php";        		break;    			case "teste":        		include "teste.php";        		break;}

e no menu lateral isso: <A href="index.php?area=teste">Teste</a>


Bom estou tentando usar a função intval....porém ele continua exibindo o valor q pega do menu lateral com string.....

#7 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 23/09/2009, 13:29

Perceba bem o que você está atribuindo à variável $area, e o valor que você está tentando checar da mesma.

Você converte o valor em $_GET['area'] para inteiro. E em uma das situações no switch, está verificando se o valor é "teste". Isto nunca irá acontecer, afinal, $area contém um valor inteiro.

Vocẽ só precisa fazer cast de um valor pra inteiro, quando você realmente espera que um parâmetro tenha valor inteiro.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#8 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 23/09/2009, 15:52

Olá pessoal,



Estou usando desenvolvendo uma página usando include, nos menus tb utilizo include....e esta da seguinte forma: <A href="index.php?area=teste">Teste</a>



Porém lendo um artigo relacionado com segurança em páginas o mesmo diz que: (Cross site script) regra Numero um, nunca passe dados importantes via GET ; (tratamento de dados) regra numero dois, sempre que passar um dado via GET tratar esse dado usando REGEX ou qualquer tipo de mascara, para ter certeza do tipo de dado recebido.

Porém da forma que estava fazendo no navegador estava mostrando da seguinte forma:
http://exemplo.com.b...aleconosco.html

E gostaria q ficasse assim:
http://exemplo.com.b...plo.php?cod=123


Dae tentei fazer assim: No menu passo isso: <A href="index.php?area=teste">Teste</a>

E no índex:



<?

$area = int($_GET['area']);





//$area = $_GET["area"];



switch ($area)

{

default:

include "home.php";

break;



case "teste":

include "teste.php";

break;



?>

Consegui resolver ...porém agora ele esta me retornando esse erro: Notice: Undefined index: area

Ela esta sendo declarada no index......não entendo esse erro....


Porém dá o seguinte erro: Fatal error: Call to undefined function: int()



#9 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 23/09/2009, 19:41

Humm!?
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#10 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 24/09/2009, 08:12

Humm!?


Bom consegui resolver o erro q citei acima ......

eu entendi oq vc disse....estou fazendo da seguinte forma agora......veja se esta correto?

No menu passo da seguinte forma<A href="index.php?id=12">Teste</a>


$area = @$_GET["area"];				switch ($area)				{    			default:        		include "home.php";        		break;    							case "12":        		include "teste.php";        		break;

Humm!?


Bom consegui resolver o erro q citei acima ......

eu entendi oq vc disse....estou fazendo da seguinte forma agora......veja se esta correto?

No menu passo da seguinte forma<A href="index.php?id=12">Teste</a>


$area = @$_GET["area"];				switch ($area)				{    			default:        		include "home.php";        		break;    							case "12":        		include "teste.php";        		break;


Só q ele continua passando esse valor no navegador da seguinte forma: http://www.exemplo.c.../index.php?id=9



Existe uma forma de não deixar ele passar esse valor no navegador....?

#11 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 24/09/2009, 20:20

Só se você não usasse a URL para passar a informação que você deseja. Passa-se como POST, mas descarte essa opção! :D
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#12 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 25/09/2009, 07:33

Só se você não usasse a URL para passar a informação que você deseja. Passa-se como POST, mas descarte essa opção! :D


Consegui resolver essa questão valeu pelas respostas.... (y)




1 user(s) are reading this topic

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

IPB Skin By Virteq