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

Funciona No Meu Localhost E Na Hospedagem Não!


viejoyo

Pergunta

E ai amigos,está acontecendo algo que não entendo,meu sistema funciona perfeitamente no meu servidor pessoal,mas na hospedagem não,já comuniquei com o pessoal da hospedagem,mas nada eles me falam meu código está errado,so que eu não vejo onde,sabendo que está tudo funcionado perfeito,detalhe,os mesmos erros que tem aparecido eram os mesmos que apareciam no meu antes de eu habilitar algumas coisas na minha biblioteca,mas ele se negan a fazer algo dizendo que o erro é meu:S,por isso imploro ajuda aqui,porque presciso tentar outra forma de resolver isso,antes a trocar de servidor,...é um sistema de cadastro de fotos, as fotos cadastran,mas aparece erros:

Após cadastro a página não retorna pra onde ela está direcionada no código:

$insertGoTo = "index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
Este erro antes em meu servidor acontecia,mas fiz algumas alterações na mnha gd, e funcionou legal!! Na hora de editar a foto,outro problema, é uma foto e um texto,se eu quero so modificar o texto e não a foto ele também aparece um erro,me dizendo que estou fazendo uma divisão por zero...:
Warning: Division by zero in /home/playaazul/public_html/admin/materias/editar.php on line 137 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/playaazul/public_html/admin/materias/editar.php on line 141 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/playaazul/public_html/admin/materias/editar.php on line 143 Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/playaazul/public_html/admin/materias/editar.php on line 144 Warning: Cannot modify header information - headers already sent by (output started at /home/playaazul/public_html/admin/materias/editar.php:137) in /home/playaazul/public_html/admin/materias/editar.php on line 156
Mas se eu modifico a foto,acontece tudo normalmente...sim..sério..não acontece erro algum nem aquele que acontece cuando cadastro a foto,:S..ela redireciona para a página e tudo...bem a linha 137,na cual o código se refere que acontece o erro é essa ..ou melhor vou colocar todo o código que gera a imagem marcando a linha que me acusa o problema a 137:
function geraImg($img, $max_x, $max_y, $imgNome) { 
    
    list($width, $height) = getimagesize($img); 
    $original_x = $width; 
    $original_y = $height; 
    // se a largura for maior que altura acho a porcentagem 
    if($original_x > $original_y) { 
       $porcentagem = (100 * $max_x) / $original_x;       
    } 
    else { 
137  -  $porcentagem = (100 * $max_y) / $original_y;
    } 
    $tamanho_x = $original_x * ($porcentagem / 100); 
    $tamanho_y = $original_y * ($porcentagem / 100); 
    $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); 
    $image = imagecreatefromjpeg($img); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); 
    return imagejpeg($image_p, $imgNome, 100); 
}  
       geraImg($fotoTmp, 150, 117, "../fotos/".$foto); 

Minha maior dúvida,é que no meu servidor tudo funciona muito bem,sem problema algum,e no servidor não,

resumindo,cadastra mas não direciona para o index.php,da parte de cadastro, e quando edita se não troco a foto ele não faz nada e se troco a foto tudo acontece normalmente...se alguém puder da um opinião ai..eu sou grato desde já!!!!

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

não vou falar do teu codigo porque faz tempao que não trabalho com PHP e nem tenho conhecimento suficiente pra palpitar...

Agora, teu servidor tá falhando feio hein... Tente ser mais firme com eles, ligando, reclamando e até ameaçando de cancelar..

Porque é facil dizer "o erro é o codigo", mas se voce sabe que mudando configurações arrumou o problema, é certo que no servidor tambem será necessário mudar.

Link para o comentário
Compartilhar em outros sites

  • 0

Kara aconteceu isso comigo também eu não me lembro qual era o erro

mas se eu não me engano é a permissão do arquivo que você vai editar

a permissão que o arquivo e a pasta que se localiza o arquivo deve ser 777

De um chmod nesses arquivos e na pasta...

O erro não é no servidor é por que no "localhost" seu computador

deve ser windows e o windows não usa permissões

já a hospedagem deve ser tipo o "linux" usa permissões

Procure aprender sobre essas permissões vai ser util ^^

Link para o comentário
Compartilhar em outros sites

  • 0

Olá "viejoyo", na verdade não é um problema no servidor.. é a falta de um recurso no Interpretador PHP que está rodando no servidor, os outros que postaram até tinham uma certa razão... você neste script está criando arquivos no servidor... o usuário que roda o apache precisa ter permissão de gravar (criar) este arquivo...

a permissão ideal não é 777 ... abaixo um Ctrl + C do que significam as permissões e como elas trabalham no Linux (que não é um "tipo" é um Sistema Operacional!).

755 > O primeiro dígito significa a permissão do usuário (dono do arquivo)(7)

o seguindo dígito significa que permissão os outros usuários do mesmo grupo em que está o dono arquivo ou pasta tem, é a permissão do grupo (5)

O terceiro dígito significa os "outros", ou seja, qual a permissão daquele que não é membro do grupo do dono e também não é o dono do arquivo ou diretório, quando eu acesso pela internet uma página eum um servidor, eu sou um "outro" lendo aquele arquivo.

Portanto o "outro" deve poder gravar neste diretório.

Onde cada número expressa uma permissão ou determinado grupo de permissões, usando o seguinte esquema:

---.....0.....Sem permissão

--x.....1.....Somente executa

-w-....2.....Somente grava

-wx....3.....Grava e executa

r--.....4.....Somente leitura

r-x.....5.....Lê e executa

rw-....6.....Lê e grava

rwx....7.....Todas as permissões (Lê, grava e executa)

O problema é a biblioteca GD, você está criando imagens no teu script...GD é a biblioteca do PHP que trabalha com imagens (criação, colcar em preto e branco, redimensionamento, alpha ... brillho,contraste ...). Essa biblioteca provavelmente não está disponível no servidor...

experimenta o seguinte...

faz um arquivo chamado "gd_info.php" coloca o seguinte neste arquivo:

<?php
print_r(gd_info());
?>
se der erro fique certo que o servidor NÃO TEM SUPORTE A GD. Ou lendo o retrono deste comando vai dar para descobrir o problema, talvez a GD está de um modo a não trabalhar com arquivos JPG.... No servidor que eu uso retornou o seguinte:
Array ( [GD Version] => bundled (2.0.28 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => 1 [XBM Support] => 1 [JIS-mapped Japanese Font Support] => 1 )
ou faz um arquivo chamado phpinfo.php coloca nele:
<?php
phpinfo();
?>

acessa pelo browser.. procura por "GD Support" abaixo de "HTTP Headers Information".

Bom, como estou inspirado para escrever... pense no seguinte,,, quando você edita imagens tua máquina trava (ou quase) não é? Imagine um servidor que tem talvez 5000 sites hospedados, se em 100 deles tem algum tipo de tratamento de imagens... são sites bastantes acessados ...

O servidor vai ficar muito lento... os administradores do servidor com certeza não instalarão a GD para tí... isso compromete o funcionamento de todos os sites que usam o interpretador que agora está rodando.

Até mais.

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

E ai "heltonritter",mm bem..a ver se eu entendi algo de lo que você me disse,ou se você realmente entendeu o que eu quis dizer,porque se por acaso o servidor não tivesse com a gd instalda,eu cadastraria a imagem?Acho que não,mas isso está acontecendo,está tudo funcionado "normal"cadastro edito(se troco a imagem se não troco desanda tudo)entende??A biblioteca esta disponível no servidor,se não as imagens não cadastrarian nem por nada,estou errado?Talves esteje pois sou muito inexperiente pra dar algum palpite,o que tenho é uma leve noção,de que seja isso que te digo,vou checar minhas permissões novamente valeu pelo seu Ctrl + C,.....Vou tentar algo de que você me falou..!!Ajudou muito velho grande abraço!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Há alguma diferenças...

quando você apenas cadastra uma imagem, ou quando faz o php mostrar essa imagem na tela é uma coisa, quando você cria, "edita" uma imagem é outra.

pense comigo...

<?php
$figura='teste.jpg';

echo('<img src="'.$figura.'">');

?>
Você só está usando HTML, não está trabalhando com imagens e PHP. Agora quando você faz o seguinte:
$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
Então sim, você está usando a biblioteca de imagens do PHP, a famosa GD. Como eu te falei antes...
ou faz um arquivo chamado phpinfo.php coloca nele:
<?php
phpinfo();
?>

acessa pelo browser.. procura por "GD Support" abaixo de "HTTP Headers Information".

Link para o comentário
Compartilhar em outros sites

  • 0

E ai velho,eu fiz alugumas coisas que você deu idéa,a permissão eu modifiquei e nem cadastrou mais fotos

,então eu retornei ela para 7,7,7...e voltou ao "normal"...eu executei esse arquivo:

<?php
print_r(gd_info());
?>

e me apareceu

Array ( [GD Version] => bundled (2.0.28 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => 1 [XBM Support] => 1 [JIS-mapped Japanese Font Support] => 1 )
....parece que esta tudo normal não é?..mais ainda assim eu não entendo porque no meu servidor pessoal,está tudo perfeito,!!!
Link para o comentário
Compartilhar em outros sites

  • 0

E ai amigo..você leu o que em verdade é o meu problema?As fotos estão cadastrando essa permissão já foi dada,creo em verdade o problema é no servidor!!Mas valeu!!

Mas entaum kara você tem certesa que deu chmod em todas pastas?

As vezes você fes numa sub pasta mas na primeira não...

ou entaum o contrario

t+

E ai velho,eu fiz alugumas coisas que você deu idéa,a permissão eu modifiquei e nem cadastrou mais fotos

,então eu retornei ela para 7,7,7...e voltou ao "normal"...eu executei esse arquivo:

<?php
print_r(gd_info());
?>

e me apareceu

Array ( [GD Version] => bundled (2.0.28 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => 1 [XBM Support] => 1 [JIS-mapped Japanese Font Support] => 1 )
....parece que esta tudo normal não é?..mais ainda assim eu não entendo porque no meu servidor pessoal,está tudo perfeito,!!!

Por que seu servidor pessoal(nesse caso o apache)

geralmente é uma versão diferente do Apache do servidor na net...

O da net é mais dificil de mecher tipo meche muito com segurança e permissões...

É como se ele usa-se plataforma linux(Unix), porem há severs na NET que funcionam igual o seu apache "pessoal"...

Entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

"viejoyo", posta o erro que ocorre agora... ou é o mesmo de antes? Posta completo o fonte da tua página...

O "hipnos" parece ter razão.. Onde você deu "chmod 777 nome_do_diretorio" ? ou fez isso em algum arquivo?

O diretório todo onde você vai colocar os arquivos gerados deve ter permissão...

Experimenta "chmod 777 nome_do_diretorio -R"

O "-R" significa que a permissão vaio ser remissiva, ou seja é na pasta, arquivos e sub-pastas e pastas das sub-pastas .... que estiverem lá dentro.

Link para o comentário
Compartilhar em outros sites

  • 0

E ai Helton(¿Qual o problema com meu "nick"?:rolleyes:) ,exatamente os mesmos erros,tudo funciona,cadastra,edita,mas mmm exatamente igual ao meu primeiro post...vo posta o update:

<?php
$colname_rseditar = "-1";
if (isset($_GET['_id'])) {
  $colname_rseditar = (get_magic_quotes_gpc()) ? $_GET['_id'] : addslashes($_GET['_id']);
}
mysql_select_db($database_conexao, $conexao);
$query_rseditar = sprintf("SELECT * FROM fotos WHERE _id = %s", $colname_rseditar);
$rseditar = mysql_query($query_rseditar, $conexao) or die(mysql_error());
$row_rseditar = mysql_fetch_assoc($rseditar);
$totalRows_rseditar = mysql_num_rows($rseditar);

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
$foto = $row_rseditar['_foto'];
$fotoTmp = $_FILES["_foto"]["tmp_name"];

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE fotos SET titulo=%s, conteudo=%s, data=%s, _foto='$foto', fonte=%s, _usu_id=%s WHERE _id=%s",
                       GetSQLValueString($_POST['titulo'], "text"),
                       GetSQLValueString($_POST['conteudo'], "text"),
                       GetSQLValueString($_POST['data'], "date"),
                       GetSQLValueString($_POST['fonte'], "text"),
                       GetSQLValueString($_POST['_usu_id'], "text"),
                       GetSQLValueString($_POST['_id'], "int"));

     function geraImg($img, $max_x, $max_y, $imgNome) { 
    //pega o tamanho da imagem ($original_x, $original_y) 
    list($width, $height) = getimagesize($img); 
    $original_x = $width; 
    $original_y = $height; 
    // se a largura for maior que altura acho a porcentagem 
    if($original_x > $original_y) { 
       $porcentagem = (100 * $max_x) / $original_x;       
    } 
    else { 
       $porcentagem = (100 * $max_y) / $original_y;   
    } 
    $tamanho_x = $original_x * ($porcentagem / 100); 
    $tamanho_y = $original_y * ($porcentagem / 100); 
    $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); 
    $image = imagecreatefromjpeg($img); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); 
    return imagejpeg($image_p, $imgNome, 100); 
}  
       geraImg($fotoTmp, 150, 117, "../fotos/".$foto); 
       
  mysql_select_db($database_conexao, $conexao);
  $Result1 = mysql_query($updateSQL, $conexao) or die(mysql_error());

  $updateGoTo = "index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
}


?>

Desde já muito obrigado sua atenção !!!Ahh Hipnos sua idéia também clareou algumas coisas,mais ainda assim ...Grande abraço a todos!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos lá... "Viejoyo" ... heheh não tem nada errado com teu nick ... é costume meu mesmo usar entre aspas duplas o nick da pessoa a quem estou escrevendo...

Um errinho acho que agora sem testar já posso ajudar... que é o

Warning: Cannot modify header information - headers already sent by (output started at /home/playaazul/public_html/admin/materias/editar.php:137) in /home/playaazul/public_html/admin/materias/editar.php on line 156

Bom esse ocorre porque está tentando enviar um outro cabeçalho quando você já enviou um anteriormente. A solução mais simples é

echo ('<script>window.location="'.$updateGoTo.'";</script>');
coloca isso no lugar de
header(sprintf("Location: %s", $updateGoTo));

Quanto aos outros erros vou ter que ver com mais calma.. de tardinha acho que me sobra um tempinho para postar.

Até +.

Link para o comentário
Compartilhar em outros sites

  • 0

Então... não sei se achei o problema.. mas tenho uma dúvida para entender o script...

ache as linhas:

$foto = $row_rseditar['_foto'];
$fotoTmp = $_FILES["_foto"]["tmp_name"];

Bom, você faz upload da imagem não é? aonde ? em uma outra página... porque nesta (na de update não)...

logo na sua máquina funcionaria.. porque

$_FILES["_foto"]["tmp_name"] teria o valor de por execplo "C:\Documents and Settings\helton\Desktop\01.jpg"

e como o interpretador php está nesta máquina mesmo conseguiria ler aimagem...

no servidor não... porque lá não tem este caminho "C:\Documents and Settings\helton\Desktop\01.jpg" de arquivo...

isso explicaria os erros

Warning: Division by zero in /home/playaazul/public_html/admin/materias/editar.php on line 137

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/playaazul/public_html/admin/materias/editar.php on line 141

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/playaazul/public_html/admin/materias/editar.php on line 143

Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/playaazul/public_html/admin/materias/editar.php on line 144

porque:

"ist($width, $height) = getimagesize($img); " vai retornar 0 e 0 ... logo

"$porcentagem = (100 * $max_x) / $original_x; " vai tentar dividir 1500 por 0...

"$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);" não vai dar certo porque não tem como usar a função querendo criar uma figura de 0x0 ou seja ..." nada"

não sei se não estou dando um "balão" ... já que não entendí como ou se é feito o opload .. mas ..

Onde você faz upload da imagem para depois redimensioná-la? a imagem tem que estar em um local válido no servidor....

veja no maual... leia com atenção...

http://www.php.net/function.getimagesize

Tem como me esclarecer onde e como você faz o upload?

Link para o comentário
Compartilhar em outros sites

  • 0

E ai..bem...cara esse sistema de publicar essas fotos que estou usando nesse caso,eu o peguei em um tutorial,que o autor dizia o seguinte:"Não iremos fazer upload das fotos, mas iremos criá-las a partir da foto enviada"...agora eu é quem posso estar dando um vacilo ao dizer isso mas, a parte no código onde chama a imagem já existente em um local no servidor é essa...

$foto = $row_rseditar['_foto'];
não? Vou publicar aqui a parte onde eu publico essas imagens
$foto = $_FILES["_foto"]["name"]; 
$fotoTmp = $_FILES["_foto"]["tmp_name"];  

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO fotos (foto_titulo, foto_legenda, foto_data, foto_foto, foto_fonte, foto_usu_id) VALUES (%s, %s, %s, '$foto', %s, %s)",
                       GetSQLValueString($_POST['titulo'], "text"),
                       GetSQLValueString($_POST['legenda'], "text"),
                       GetSQLValueString($_POST['data'], "date"),
                       GetSQLValueString($_POST['fonte'], "text"),
                       GetSQLValueString($_POST['_usu_id'], "text"));

function geraImg($img, $max_x, $max_y, $imgNome) { 
    //pega o tamanho da imagem ($original_x, $original_y) 
    list($width, $height) = getimagesize($img); 
    $original_x = $width; 
    $original_y = $height; 
    // se a largura for maior que altura acho a porcentagem 
    if($original_x > $original_y) { 
       $porcentagem = (100 * $max_x) / $original_x;       
    } 
    else { 
       $porcentagem = (100 * $max_y) / $original_y;   
    } 
    $tamanho_x = $original_x * ($porcentagem / 100); 
    $tamanho_y = $original_y * ($porcentagem / 100); 
    $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); 
    $image = imagecreatefromjpeg($img); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); 
    return imagejpeg($image_p, $imgNome, 100); 
} 

   geraImg($fotoTmp, 150, 117, "../fotos/".$foto); 

Não se com isso tudo eu ainda fui claro,mas veja..a imagem cadastrada se encontra em um local válido no servidor...e eu cadastro e edito ela de qualquer computador,"edito",pois na edição ocorre esses problemas quando não troco a imagem...bem esses problemas que já te falei...!!Abraço!!

Link para o comentário
Compartilhar em outros sites

  • 0

E ai ..ufaaa...resolvido o problema..o lance é que tava tudo acontecendo como teria que acontecer..so que...:S..simplesmente coloquei

echo ('<script>window.location="'.$updateGoTo.'";</script>');

em editar também..sei..puro vacilo meu...mas muito obrigado!!!de verdade..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...