Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, pessoal!
Sou novo no forúm. Este é meu primeiro dia. Estou bucando aprender sobre programação em PHP. Aprender sozinho é sempre um desafio.
Que bom que há lugares onde possamos conseguir ajuda.
Bem, como ainda estou me siatuando aqui, vou apenas realatar minha dificuldade. Acredito que outros novatos tenham tido também.
Eu consegui um sistema de noticias para sites bem simples. Ele insere a materia e insere uma imagem.
Configurei tudo certinho. Prova diso é que no meu localhost ele funciona normalmente.
Enviei para o provedor e reconfigurei com os dados dele.
Acontece que na internet o sistema envia as materias, mas não consegue encaminhar as imagens.
Tentei outros ssitemas de upload, e todos só funcionaram no localhost.
Alguém teve um problema parecido, ou tem ideia do que pode estar acontecendo?
O código é esse abaixo:
Obrigado pela ajuda!!! Sucesso a todos!!!
<?php
// WAM Sistema de Notícias - Desenvolvido por Álvaro Magnum - magnum@wamwebmedia.com.br
// Funçao para conectar-se com o Banco de Dados. Retorno = O sucesso da operacao (V ou F)
function conectaBancoDados() {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
$resultado = false; // Retorno da Funçao (default = falso). Indica o sucesso da conexao.
// Tenta conectar-se ao Banco de Dados.
if (@mysql_connect($servidor, $usuarioBd, $senhaBd)) {
$resultado = true;
}
return $resultado;
} // Fim da funçao conectaBancoDados.
// Funcao para adicionar uma noticia ao Sistema. Retorno = nenhum
// Parâmetro 1 - A notícia que será adicionada.
// Parâmetro 2 - O link da notícia.
function adicionaNoticia($noticia, $imagem, $titulo) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
// Tenta conectar-se ao Banco de Dados mostrando uma mensagem de erro caso contrário.
if(!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "INSERT INTO $tabela(data, noticia, titulo, imagem) VALUES(now(), '$noticia', '$titulo', '$imagem')";
// Executa o Comando no Banco de Dados mostrando uma mensagem de erro em caso de falha.
if (mysql_db_query($bancoDados, $comandoSql)) {
print("<center><strong>Notícia inserida com sucesso!</strong></center>");
}
else print("<center><strong>Notícia nao inserida!</strong></center>");
mysql_close(); // Nao obrigatoria, porém recomendado.
}
} // Fim da funçao adicionaNoticia.
// Funcao para apagar uma notícia. Retorno = nenhum.
// Parâmetro único - O id da notícia que será deletada.
function apagarNoticia($idNoticia) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
// Tenta conectar-se ao Banco de Dados mostrando uma mensagem de erro caso contrário.
if(!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "DELETE FROM $tabela WHERE id = '$idNoticia'";
// Executa o Comando no Banco de Dados mostrando uma mensagem de erro em caso de falha.
if (mysql_db_query($bancoDados, $comandoSql)) {
print ("<center><strong>Notícia deletada com sucesso!</strong></center>");
}
else print("<center><strong>Notícia nao deletada!</strong></center>");
mysql_close();
}
} // Fim da funçao apagarNoticia.
// Funcao para mostrar as noticias cadastradas no sistema com opcao de exclusao. Versao administrativa.
function mostraNoticiasAdmin() {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
if (!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo FROM $tabela ORDER by data";
// Joga todos os dados da pesquisa para a variavel dados.
$dados = mysql_db_query($bancoDados, $comandoSql);
// Mostra todos as noticias do sistema mostrando uma mensagem de erro em caso de falha.
if ($dados) {
// Cria uma tabela com os resultados.
print("<table width = '50%' align = 'center' border = '0'>");
print("<tr><td><strong>DATA</strong></td><td><strong>NOTÍCIA</strong></td></tr>");
while ($linha = mysql_fetch_array($dados)) {
print("<tr><td>$linha[data_formatada]</td><td>$linha[titulo]</td><td><a href='admin.php?remover=1&id=$linha[id]'><strong>Remover</strong></a></td></tr>");
}
print("</table>");
}
else print("<center><strong>Erro na exibiçao das notícias!</strong></center>");
}
} // Fim da funçao mostraNoticiasAdmin.
// Funcao para mostrar as noticias cadastradas no sistema. Versao do usuário.
// Parâmetro Único - Quantidade de notícias que será exibida.
function mostraNoticias($quantidadeNoticias) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
if (!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo, noticia, imagem FROM $tabela ORDER BY data_formatada DESC";
// Joga todos os dados da pesquisa para a variavel dados.
$dados = mysql_db_query($bancoDados, $comandoSql);
// Mostra todos as noticias do sistema mostrando uma mensagem de erro em caso de falha.
if ($dados) {
$i = 0; // Variável de controle da quantidade de notícias que será exibida
// Cria uma tabela com os resultados.
print("<table width = '100%' align = 'center' border = '0'>");
while (($linha = mysql_fetch_array($dados)) && ($i < $quantidadeNoticias)) {
// Formata a notícia para que apareçam apenas os 250 primeiros caracteres.
@$noticia_formatada = substr($linha[noticia], 0, 250)."...";
print("<tr><td colspan=' 2'><div align='left'><strong>$linha[data_formatada] - $linha[titulo]</strong></div></td></tr>");
print("<tr><td width='5%' valign='top'><div align='left'><img src='img_noticias/$linha[imagem]' alt='sem imagem' width='70' height='60'></div></td><td width='95%' valign='top'><div align='left'><a href='mostrar_noticia.php?id=$linha[id]'>$noticia_formatada</a></div></td></tr>");
print("<tr><td colspan=' 2'><div align='left'><hr></div></td></tr>");
$i++;
}
print("</table>");
}
else print("<center><strong>Erro na exibiçao das notícias!</strong></center>");
}
} // Fim da funçao mostraNoticias.
// Funçao para mostrar as notícias individualmente.
// Parâmetro único - O Id da notícia que será exibida.
function mostraNoticiaId($id) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
if (!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo, noticia, imagem FROM $tabela WHERE id = '$id'";
// Joga todos os dados da pesquisa para a variavel dados.
$dados = mysql_db_query($bancoDados, $comandoSql);
// Mostra todos as noticias do sistema mostrando uma mensagem de erro em caso de falha.
if ($dados) {
// Cria uma tabela com a notícia.
print("<table width = '100%' align = 'center' border = '0'>");
$linha = mysql_fetch_array($dados);
print("<tr><td colspan=' 2'><div align='left'><strong>$linha[data_formatada] - $linha[titulo]</strong></div><br></td></tr>");
print("<tr><td colspan=' 2'><div align='left'><img src='img_noticias/$linha[imagem]' alt='sem imagem'></div><br></td></tr>");
print("<tr><td width='100%' valign='left'><div align='left'>$linha[noticia]</div></td></tr>");
print("<tr><td colspan=' 2'><div align='top'><hr></div></td></tr>");
print("</table>");
}
else print("<center><strong>Erro na exibiçao da notícia!</strong></center>");
}
} // Fim da funçao mostraNoticiaId.
// Funçao para fazer o upload da imagem da notícia.
function uploadImagem() {
// Pega a imagem enviada através do formulário. Nome temporário e verdadeiro.
@$imagem_temp= $_FILES['imagem']['tmp_name'];
@$imagem_real= $_FILES['imagem']['name'];
// O Upload só é efetuado se a imagem for do tipo gif ou jpg.
if (($_FILES['imagem']['type'] == "image/pjpeg") || ($_FILES['imagem']['type'] == "image/gif")) {
// Move a imagem para a pasta de imagens. Mostra mensagem de erro em caso de falha.
if (move_uploaded_file($imagem_temp, "img_noticias/$imagem_real")) {
print("<center><strong>Imagem enviada com sucesso!</strong></center>");
}
else print("<center><strong>Erro no upload!</strong></center>");
}
else print("<center><strong>A imagem não é do tipo jpg ou gif!</strong></center>");
} // Fim da funçao uploadImagem.
?>
O problema ai é que ele não ta pegando os valores das variáveis corretamente, falta ai o $_POST['']; ou $_GET['']; depende do método que ele ta usando no fomulário dele...
O problema ai é que ele não ta pegando os valores das variáveis corretamente, falta ai o $_POST['']; ou $_GET['']; depende do método que ele ta usando no fomulário dele...
Dá um erro apenas no upload.
Tudo funciona perfeitamente, exceto o envio da imagem.
Tem uma coisa curiosa. Se eu envio uma imagem por um programa de FTP para a pasta que deveria receber as imagens e depois cadastro pelo sistema de noticias fazendo o upload, aí nesse caso a imagem aparece. Mas se puxo ela direto, então não funciona.
Alem disso tentei vários outros sistemas de upload. Nenhum conseguiu levar a imagem para a pasta que deveria.
Será que alguém pode me ajudar a corrigir esse script aí?
Valeu!!
Você usa servidor unix ? dê permissão a pasta CHMOD 0777
Você usa servidor unix ? dê permissão a pasta CHMOD 0777
Eu tinha lido até sobre isso. Mas estou aprendendo programação agora, não sei dar essa permissão.
Estou procurando alguns tutoriais pra saber como se dá essa permissão e o que é CHMOD 0777, mas os que estou achando no google, são todos para quem já conhece esse item. se por acaso, puder me ajudar.
obrigado!
Você pode fazer isso no ato do upload amigo,
mkdir('pasta',0777); saca ?
>
Você pode fazer isso no ato do upload amigo,
mkdir('pasta',0777); saca ?
OI, no programa de FTP que eu uso. o Fille Zila eu cliquei com o direito na sta que deveria receber as imagens e dei permissão para tudo lá. kkkk
e não é que funcionou!!!
Devo isso a sua auda. Muito obrigado mesmo.
Vou estudar mais sobre o )777 .
Valeu a ajuda.
É sim, no FTP tem a opção, também uso o Filezila, ótimo ele...
OBS: Quase todos ou todos os programas de FTP tem a opção do CHMOD...
eu desenvolvi um script que cria a pasta já com o tipo de permissão que a pessoa escolher, se quiser dar uma olhada:
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://forum.webaplicacoes.com/index.php?p...tID=112#post112
dá algum erro?
o caminho da pasta tá correto?