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

erro "Fatal error: Function name must be a string"


lucas05

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

cara, axo que esse erro ta acontecendo pelo seguinte:

$img_origem = $ext( $arquivo['tmp_name'] );

esse $ext( **** ) é uma função e o php não esta aceitando a string $arquivo['tml_name'] tenta tirar os ' de dentro do $arquivo, teste com ele assim:

$img_origem = $ext($arquivo[tmp_name]);
ou assim:
$img_origem = $ext("$arquivo[tmp_name]");

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

  • 0
$arquivo = $_FILES['foto'];

if ( eregi( "^image\\/(pjpeg|jpeg|png|gif|bmp)\$", $arquivo['type'] ) )

{

if ( $arquivo['type'] == "image/pjpeg" || $arquivo['type'] == "image/jpg" )

{

$ext = "ImageCreateFromJPEG";

$ext1 = "jpg";

}

else if ( $arquivo['type'] == "image/png" )

{

$ext = "ImageCreateFromPNG";

$ext1 = "png";

}

else if ( $arquivo['type'] == "image/gif" )

{

$ext = "ImageCreateFromGIF";

$ext1 = "gif";

}

else if ( $arquivo['type'] == "image/bmp" )

{

$ext = "ImageCreateFromBMP";

$ext1 = "bmp";

}

$img_origem = $ext($arquivo[tmp_name]);

$origem_x = imagesx( $img_origem );

$origem_y = imagesy( $img_origem );

$imagem_nome = "{$char}".".".$ext1;

echo $imagem_nome;

$linkfoto = "{$imagem_nome}";

$config['diretorio'] = "avatar/";

$imagem_dir = $config['diretorio'].$imagem_nome;

mssql_query( "INSERT INTO avatar (login,foto,char,data) VALUES ('".$login."','{$imagem_nome}','{$char}',getdate())" );

if ( $origem_x < $origem_y ) {

$maxx = 90;

$maxy = 120; }

if ( $origem_y < $origem_x ) {

$maxx = 120;

$maxy = 90; }

if ( $maxx < $origem_x ) { $x = $maxx; }

else { $x = $origem_x; }

if ( $maxy < $origem_y ) { $y = $maxy; }

else { $y = $origem_y; }

$img_final = ImageCreateTrueColor($x,$y);

ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x, $y, $origem_x, $origem_y);

$branco = ImageColorAllocate($img_final, 255, 255, 255);

ImageJPEG($img_final,$config["diretorio"] . $imagem_nome,100);

o q eu teria q fazer ai pra funcionar normal o codigo ?

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

  • 0

Olá, eu acho que o que você queria inicialmente era tratar a variável $ext como um array:

$img_origem = $ext[$arquivo["tmp_name"]];

Agora olhando o contexto de seu código não dá para saber se ele vai funcionar somente consertando essa linha.

Respondi a essa mensagem porque tive o mesmo problema relacionado no título da thread.

:rolleyes:

$arquivo = $_FILES['foto];

if ( eregi( "^image\\/(pjpeg|jpeg|png|gif|bmp)\$", $arquivo['type'] ) )

{

if ( $arquivo['type'] == "image/pjpeg" || $arquivo['type'] == "image/jpg" )

{

$ext = "ImageCreateFromJPEG";

$ext1 = "jpg";

}

else if ( $arquivo['type'] == "image/png" )

{

$ext = "ImageCreateFromPNG";

$ext1 = "png";

}

else if ( $arquivo['type'] == "image/gif" )

{

$ext = "ImageCreateFromGIF";

$ext1 = "gif";

}

else if ( $arquivo['type'] == "image/bmp" )

{

$ext = "ImageCreateFromBMP";

$ext1 = "bmp";

}

$img_origem = $ext($arquivo[tmp_name]);

$origem_x = imagesx( $img_origem );

$origem_y = imagesy( $img_origem );

$imagem_nome = "{$char}".".".$ext1;

echo $imagem_nome;

$linkfoto = "{$imagem_nome}";

$config['diretorio'] = "avatar/";

$imagem_dir = $config['diretorio'].$imagem_nome;

mssql_query( "INSERT INTO avatar (login,foto,char,data) VALUES ('".$login."','{$imagem_nome}','{$char}',getdate())" );

if ( $origem_x < $origem_y ) {

$maxx = 90;

$maxy = 120; }

if ( $origem_y < $origem_x ) {

$maxx = 120;

$maxy = 90; }

if ( $maxx < $origem_x ) { $x = $maxx; }

else { $x = $origem_x; }

if ( $maxy < $origem_y ) { $y = $maxy; }

else { $y = $origem_y; }

$img_final = ImageCreateTrueColor($x,$y);

ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x, $y, $origem_x, $origem_y);

$branco = ImageColorAllocate($img_final, 255, 255, 255);

ImageJPEG($img_final,$config["diretorio"] . $imagem_nome,100);

o q eu teria q fazer ai pra funcionar normal o codigo ?

Link para o comentário
Compartilhar em outros sites

  • 0

O código abaixo executa perfeitamente:

<?php
function a($b) {
        echo $b;
}

$a = 'a';
$a('b');
?>

Acredito que o problema esteja no valor de $ext. Provavelmente seja null ou contém um valor inválido para o nome de uma função (não tenho certeza se essa ultima afirmação é verdadeira).

Um abraço.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...