Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Não consigo exibir dados!


jpaulol

Pergunta

Bom eu estou usando QUERY STRING ou melhor tentano usar. Quando eu clico no link ele exibi :

Fatal error: Call to undefined function int() in /home/hitbrasi/public_html/ouvinte.php on line 43
Meu codigo fonte e esse:
<?
include"cadastro/includes/pg_config.php";

$nome=(int($_GET['perfil']));
$sql = "SELECT * FROM $tabelaPerfil WHERE nome='$nome'";
$executar = mysql_query($sql);
while ($exibir = mysql_fetch_array($executar)){;
?>
<table width="596" border="0">
  <tr>
    <td colspan="3"><span class="style8">Perfil Ouvinte<span class="style10">Hit</span></span></td>
  </tr>
  <tr>
    <td height="45" colspan="3"><span class="style16">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - </span></td>
  </tr>
  <tr>
    <td width="275" rowspan="10"><span class="style5"><img border="0" src="cadastro/fotos/<?=$exibir['foto'];?>" width="236" height="201"></span></td>
    <td width="93"><span class="style17">Nome:</span></td>
    <td width="206"><span class="style5"><?=$exibir ['nome'];?></span></td>
  </tr>
  <tr>
  </tr>
  <tr>
    <td><span class="style17">Cidade:</span></td>
    <td><span class="style5"><?=$exibir ['cidade'];?></span></td>
  </tr>
  <tr>
    <td><span class="style17">Estado:</span></td>
    <td><span class="style5"><?=$exibir ['estado'];?></span></td>
  </tr>
  <tr>
    <td><span class="style17">MSN:</span></td>
    <td><span class="style5"><?=$exibir ['cep'];?></span></td>
  </tr>
<?php
}
?>

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Suponho que você não saiba ingles muito bem...

Call to undefined function quer dizer que você está chamando uma função que não existe.

No PHP não existe a função int(x).

O que você está procurando é intval(x), ou até mesmo number_format(x,0), ou então round(x).

Todas essas funções retornam o valor inteiro de um valor qualquer.

Porém, se a sua intenção é converter o $_GET['perfil'] para int...

Não precisa se preocupar. PHP é alto nível demais pra se preocupar com essas besteiras de tipo de varíavel, ROFL.

xDDD

Mas.. olhando agora, porque você está tentando transformar o perfil pra int, sendo que na sua query você coloca ele entre aspas? Você está transformando ele de volta pra string denovo, lol.

Resumindo, mude:

$nome=(int($_GET['perfil']));
Para
$nome = $_GET['perfil'];

E seja feliz ^^

Link para o comentário
Compartilhar em outros sites

  • 0

E depois coloca entra aspas na query? lol acho que o problema não é esse...

Mas caso seja, também existe a função is_numeric(x), que retorna true mesmo para strings numéricas (como "1234", entre aspas mesmo).

Mas vamos esperar o OP responder ^^

Link para o comentário
Compartilhar em outros sites

  • 0
E depois coloca entra aspas na query? lol acho que o problema não é esse...

1 - Já ouviu falar de um negócio chamado sql injection? Se ele dá um cast no valor antes ele tem certeza do que vai chegar na query.

2 - Não sei se você sabe, mas a função dos apóstrofes ali é só de delimitador, pois tudo que está entre mysql_query("TUDO QUE ESTÁ AQUI"), é jogado pro SGBD, e lá usado, logo, o teu raciocínio de que porque está entre apóstrofes vira string, não é válido, seria válido se fosse uma atribuição de valor a uma variável, coisa que não é.

Mas caso seja, também existe a função is_numeric(x), que retorna true mesmo para strings numéricas (como "1234", entre aspas mesmo).

Lembre-se que is_numeric vai retornar verdadeiro para valores numéricos, independentes de serem inteiros ou não, como ele deu um cast int, o correto seria usar ctype_digit, já que assim se testaria se é número e inteiro.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu q fui apreçado (aprendendo agora) e não notei q "in"t era valor numerico!! eu retorno e uma string não um valor numerico, usei o seguinte codigo do amigo fiote e deu certo:

$nome = $_GET['perfil'];

Mas não entendi a parte do sql injection se eu usar este comando eu sou alvo facil de injection ??

Link para o comentário
Compartilhar em outros sites

  • 0

(em resposta ao ESerra)

Eu quis dizer string no lado do sgdb.

Se o campo Nome é inteiro, e você faz Nome = 'valor', você está usando uma string. O sgdb vai ter que converter essa string pra inteiro antes de poder comparar e relalizar a query. Apesar de isso normalmente não ser levado em conta em sites, afeta o desempenho da query. Se ele então já transformou a varíavel em int, é melhor não usar as aspas simples (não to falando das aspas duplas da query em si). E usar '' no where não vai evitar o inject.

Editado por fiote
Link para o comentário
Compartilhar em outros sites

  • 0

Agora tem outro problema, porque quero fazer q quando a pessoa clicar sobre a foto para abir os dados da pessoa abra em pop up, usei o seguinte codigo:

echo "<a href=\"java script:abrejanela('ouvinte.php?perfil=".$nome."','700','500')\"><img border='0' src='cadastro/fotos/$foto' width='129' height='130'/></a>";

O pop up abre, mas o conteudo não e exibido porque?

Link para o comentário
Compartilhar em outros sites

  • 0
E usar '' no where não vai evitar o inject.

Me mostra um exemplo prático de como injetar alguma coisa no seguinte:

$dados = (int)$_POST['campo_do_form'];

$sql = mysql_query("SELECT * FROM tabela WHERE coluna = '$dados'");

Quanto ao resto, bom, só pelo teu conhecimento de sql injection, nem vou perder meu tempo...

:rolleyes:

Agora tem outro problema, porque quero fazer q quando a pessoa clicar sobre a foto para abir os dados da pessoa abra em pop up, usei o seguinte codigo:

echo "<a href=\"java script:abrejanela('ouvinte.php?perfil=".$nome."','700','500')\"><img border='0' src='cadastro/fotos/$foto' width='129' height='130'/></a>";

O pop up abre, mas o conteudo não e exibido porque?

E o código do ouvinte.php?

Link para o comentário
Compartilhar em outros sites

  • 0

Ta ai o ouvinte.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Perfil OuvinteHIT</title>
<style type="text/css">
<!--
body,td,th {
    color: #FFFFFF;
}
body {
    background-color: #000000;
}
a:link {
    color: #FFFFFF;
}
a:visited {
    color: #FFFFFF;
}
a:hover {
    color: #FFFFFF;
}
a:active {
    color: #FFFFFF;
}
.style5 {font-family: Arial, Helvetica, sans-serif}
.style8 {
    font-family: tahoma;
    font-weight: bold;
    font-size: 24px;
}
.style10 {color: #006600}
.style16 {font-size: 36px}
.style17 {font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; color: #006600; }
-->
</style></head>

<body>
<?
include"cadastro/includes/pg_config.php";

//Lista os comentarios do banco de dados MYSQL
$nome=$_GET['perfil'];
$sql = "SELECT * FROM $tabelaPerfil WHERE nome='$nome'";
$executar = mysql_query($sql);
while ($exibir = mysql_fetch_array($executar)){;
?>
<table width="596" border="0">
  <tr>
    <td colspan="3"><span class="style8">Perfil Ouvinte<span class="style10">Hit</span></span></td>
  </tr>
  <tr>
    <td height="45" colspan="3"><span class="style16">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - </span></td>
  </tr>
  <tr>
    <td width="275" rowspan="10"><span class="style5"><img border="0" src="cadastro/fotos/<?=$exibir['foto'];?>" width="236" height="201"></span></td>
    <td width="93"><span class="style17">Nome:</span></td>
    <td width="206"><span class="style5"><?=$exibir ['nome'];?></span></td>
  </tr>
  <tr>
  </tr>
  <tr>
    <td><span class="style17">Cidade:</span></td>
    <td><span class="style5"><?=$exibir ['cidade'];?></span></td>
  </tr>
  <tr>
    <td><span class="style17">Estado:</span></td>
    <td><span class="style5"><?=$exibir ['estado'];?></span></td>
  </tr>
  <tr>
    <td><span class="style17">MSN:</span></td>
    <td><span class="style5"><?=$exibir ['cep'];?></span></td>
  </tr>
  <tr>
    <td><span class="style17">Orkut:</span></td>
    <td><span class="style5"></span></td>
  </tr>
  <tr>
    <td><span class="style5"></span></td>
    <td><span class="style5"></span></td>
  </tr>
  <tr>
    <td><span class="style5"></span></td>
    <td><span class="style5"></span></td>
  </tr>
  <tr>
    <td><span class="style5"></span></td>
    <td><span class="style5"></span></td>
  </tr>
  <tr>
    <td height="21"><span class="style5"></span></td>
    <td><span class="style5"></span></td>
  </tr>
</table>
<?
}
?>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...