Jump to content


Daniel Filho

Member Since 21/09/2009
Offline Last Active 14/11/2009, 02:53
-----

Topics I've Started

Upando Arquivos Para O Ftp Via Php

13/11/2009, 15:22

Bom pessoal, lá vem eu mais uma vez pedir ajuda!

Eu estou fazendo uma site com CMS próprio, e claro, fiz ele primeiramente no localhost, onde tudo funcionou certinho.

Mas ai fui fazer um teste online, e criei um diretorio dentro de um dominio, ficando ele assim: www.dominio.com/seminovosja

Enviei o site para dentro do diretório. Fiz uns teste, funcionou beleza.

Porém, o problema está na área administrativa responsável por incluir os registros no site. Esta mesma área fica responsável por inserir registros no banco de dados e criar um diretório para as imagens.

O problema, é que o diretório não é criado e os arquivos não são movidos.

A conexão com o banco de dados está correta, assim como a conexão com o FTP.

Eis meu código:

<?php

	$acao = $_POST['acao'];

	require "conexao.php";
	
	$ftp_server = "ftp.capanemaonline.com";
	$ftp_user_name = "capanemaonline";
	$ftp_user_pass = "site2009";
	$conn_id = ftp_connect($ftp_server)or die("Erro ao fazer login com o servidor FTP.");
	$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
	
	if ($acao=="inserir_anuncio") {
		
		$categoria_anuncio = $_POST['categoria_anuncio'];
		$nome_proprietario = $_POST['nome_proprietario'];
		$ddd_telefone = $_POST['ddd_telefone'];
		$telefone_proprietario = $_POST['telefone_proprietario'];
		$nome_produto = $_POST['nome_produto'];
		$combustivel_produto = $_POST['combustivel_produto'];
		$anofabricacao_produto = $_POST['anofabricacao_produto'];
		$anomodelo_produto = $_POST['anomodelo_produto'];
		$cor_produto = $_POST['cor_produto'];
		$km_produto = $_POST['km_produto'];
		$preco_produto = $_POST['preco_produto'];
		$placa_produto = $_POST['placa_produto'];
		$local_produto = $_POST['local_produto'];
		$itens_produto = $_POST['itens_produto'];
		$foto1_produto = $_FILES['foto1_produto']['name'];
		$foto2_produto = $_FILES['foto2_produto']['name'];
		$foto3_produto = $_FILES['foto3_produto']['name'];
		$foto4_produto = $_FILES['foto4_produto']['name'];
		$foto5_produto = $_FILES['foto5_produto']['name'];
		$data_exclusao = $_POST['data_exclusao'];
	
		$pasta = $_POST['placa_produto'];
		$pasta = sha1($pasta);
		$string = "../../imagens/fotos/anuncios/".$pasta;
		
		$nome_foto1 = "foto1";
		$nome_foto2 = "foto2";
		$nome_foto3 = "foto3";
		$nome_foto4 = "foto4";
		$nome_foto5 = "foto5";
	
		$tmp_foto1 = $_FILES['foto1_produto']['tmp_name'];
		$tmp_foto2 = $_FILES['foto2_produto']['tmp_name'];
		$tmp_foto3= $_FILES['foto3_produto']['tmp_name'];
		$tmp_foto4 = $_FILES['foto4_produto']['tmp_name'];
		$tmp_foto5 = $_FILES['foto5_produto']['tmp_name'];
		
		$criar_destino = ftp_mkdir($conn_id, $string);
		
		$destino_foto1 = $string."/".$nome_foto1.".jpeg";
		$destino_foto2 = $string."/".$nome_foto2.".jpeg";
		$destino_foto3 = $string."/".$nome_foto3.".jpeg";
		$destino_foto4 = $string."/".$nome_foto4.".jpeg";
		$destino_foto5 = $string."/".$nome_foto5.".jpeg";
		
		$destino_final1 = $destino_foto1;
		$destino_final2 = $destino_foto2;
		$destino_final3 = $destino_foto3;
		$destino_final4 = $destino_foto4;
		$destino_final5 = $destino_foto5;
		
		if (empty($categoria_anuncio)) {
			
			echo "<script>alert('Informe a categoria do anúncio.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($nome_proprietario)) {
			
			echo "<script>alert('Informe o nome do proprietário do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($ddd_telefone)) {
			
			echo "<script>alert('Informe o código de área do telefone do prorietário!')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($telefone_proprietario)) {
			
			echo "<script>alert('Informe o telefone do proprietário.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($nome_produto)) {
			
			echo "<script>alert('Informe o nome do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($anofabricacao_produto)) {
			
			echo "<script>alert('Informe o ano de fabricação do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($anomodelo_produto)) {
			
			echo "<script>alert('Informe o ano do modelo do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($cor_produto)) {
			
			echo "<script>alert('Informe a cor do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($km_produto)) {
			
			echo "<script>alert('Informe a kilometragem do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($preco_produto)) {
			
			echo "<script>alert('Informe o preço do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($placa_produto)) {
			
			echo "<script>alert('Informe a placa do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($local_produto)) {
			
			echo "<script>alert('Informe o localidade do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($itens_produto)) {
			
			echo "<script>alert('Informe os itens do produto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($foto1_produto)) {
			
			echo "<script>alert('Insira uma foto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($foto2_produto)) {
			
			echo "<script>alert('Insira uma foto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($foto3_produto)) {
			
			echo "<script>alert('Insira uma foto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($foto4_produto)) {
			
			echo "<script>alert('Insira uma foto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($foto5_produto)) {
			
			echo "<script>alert('Insira uma foto.')</script>";
			echo "<script>history.back(1)</script>";
			
		} elseif (empty($data_exclusao)) {
			
			echo "<script>alert('Informe a data de exclusão do anúncio.')</script>";
			echo "<script>history.back(1)</script>";
			
		} else {
		
			if (file_exists($destino_final1) && file_exists($destino_final2) && file_exists($destino_final3) && file_exists($destino_final4) && file_exists($destino_final5)) {
			
				echo "<script>alert('Impossível armazenar as fotos. O caminho já existe.')</script>";
				echo "<script>history.back(1)</script>";
			
			} else {
			
				move_uploaded_file($tmp_foto1, $destino_final1);
				move_uploaded_file($tmp_foto2, $destino_final2);
				move_uploaded_file($tmp_foto3, $destino_final3);
				move_uploaded_file($tmp_foto4, $destino_final4);
				move_uploaded_file($tmp_foto5, $destino_final5);
			
				$inserir_fotos = "INSERT INTO anuncios (categoria_anuncio, nome_proprietario, ddd_telefone, telefone_proprietario, nome_produto, combustivel_produto, anofabricacao_produto, anomodelo_produto, cor_produto, km_produto, preco_produto, placa_produto, local_produto, itens_produto, nome_foto1, foto1_produto, nome_foto2, foto2_produto, nome_foto3, foto3_produto, nome_foto4, foto4_produto, nome_foto5, foto5_produto, data_exclusao) VALUES ('$categoria_anuncio', '$nome_proprietario', '$ddd_telefone', '$telefone_proprietario', '$nome_produto', '$combustivel_produto', '$anofabricacao_produto', '$anomodelo_produto', '$cor_produto', '$km_produto', '$preco_produto', '$placa_produto', '$local_produto', '$itens_produto', '$nome_foto1', '$destino_final1', '$nome_foto2', '$destino_final2', '$nome_foto3', '$destino_final3', '$nome_foto4', '$destino_final4', '$nome_foto5', '$destino_final5', '$data_exclusao')";
				$query_fotos = mysql_query($inserir_fotos);
			
				echo "<script>alert('Anúncio inserido com sucesso!')</script>";
				echo "<script>history.back(1)</script>";
		
			}
			
		}
		
	}
	
	ftp_close($conn_id);
	
	mysql_close($conexao);

?>

Eis a parte que eu creio estar com algum defeito:
$pasta = $_POST['placa_produto'];
		$pasta = sha1($pasta);
		$string = "../../imagens/fotos/anuncios/".$pasta;
		
		$nome_foto1 = "foto1";
		$nome_foto2 = "foto2";
		$nome_foto3 = "foto3";
		$nome_foto4 = "foto4";
		$nome_foto5 = "foto5";
	
		$tmp_foto1 = $_FILES['foto1_produto']['tmp_name'];
		$tmp_foto2 = $_FILES['foto2_produto']['tmp_name'];
		$tmp_foto3= $_FILES['foto3_produto']['tmp_name'];
		$tmp_foto4 = $_FILES['foto4_produto']['tmp_name'];
		$tmp_foto5 = $_FILES['foto5_produto']['tmp_name'];
		
		$criar_destino = ftp_mkdir($conn_id, $string);
		
		$destino_foto1 = $string."/".$nome_foto1.".jpeg";
		$destino_foto2 = $string."/".$nome_foto2.".jpeg";
		$destino_foto3 = $string."/".$nome_foto3.".jpeg";
		$destino_foto4 = $string."/".$nome_foto4.".jpeg";
		$destino_foto5 = $string."/".$nome_foto5.".jpeg";
		
		$destino_final1 = $destino_foto1;
		$destino_final2 = $destino_foto2;
		$destino_final3 = $destino_foto3;
		$destino_final4 = $destino_foto4;
		$destino_final5 = $destino_foto5;

Substituindo Caracteres Na String

12/11/2009, 01:58

Eu tenho uma string que começa com "../..", e queria substituir isso por "./", afim de criar uma nova string.

Já tentei usar o eregi_replace, ele funciona, mas fica dando o seguinte erro: Deprecated: Function eregi_replace() is deprecated in C:\Program Files\EasyPHP5.3.0\www\seminovosja\arquivo\paginas\inicio.php on line 11

Alguém?

Sistema De Upload De Imagens

08/11/2009, 17:39

Então, estou tentando fazer um pequeno sistema que consiste em enviar imagens para um banco de dados (de forma criptografada) para serem exibidos posteriormente em uma consulta.

Pesquisando na iternet, li algumas coisa sobre determinar o tipo de campo do banco de dados como BLOB, isso se encarregaria de criptografar a imagem.

Porém, eu tenho um formulário e um script que funcionam corretamente. O dado é inserido no banco de dados, porém, nada em um código criptografado, mas sim, esta informação: [BLOB - 5Bytes]. E quando eu tento recuperar a imagem, apenas um texto aparace: Array.

Se valer de algo, eis aqui os códigos:

formulario.php
<form method="post" action="upload.php" enctype="multipart/form-data">
	<input type="hidden" name="acao" value="inserir" />
	<input type="file"  name="foto" /> <input type="submit" name="enviar" value="enviar" />
</form>

upload.php
<?php

	require "conexao.php";
	
	$acao = $_POST["acao"];
	
	if (isset($_FILES["foto"]) && $acao=="inserir") {
		
		$foto = $_FILES["foto"];
		
		$consulta = "INSERT INTO foto (foto) VALUES ('".$foto."')";
		$query = mysql_query($consulta)or die(mysql_error());
		
		echo "Imagem enviada com sucesso!";
		
	}
	
	mysql_close($conexao);

?>

exibir.php
<?php
	
	require "conexao.php";
	
	$recuperar = "SELECT foto FROM foto";
	$query = mysql_query($recuperar)or die(mysql_error());
	$linhas = mysql_num_rows($query);
	
	while ($dado = mysql_fetch_array($query)) {
	
		echo $dado["foto"];
	
	}
	
	mysql_close($conexao);

?>

Paginação Dos Resultados De Uma Consulta

04/11/2009, 20:57

Bom, passei o dia quase todo hoje pesquisando sobre o assunto, e de fato, achei diversos tutoriais, mas além de ainda não ter pego a lógica completa do negócio, não consegui implatar os diversos códigos que eu vi, no meu.

A única coisa que eu entendi até agora é que eu preciso definir um LIMIT para a consulta.

Vejam bem, eu tenho o seguinte código:

<?php require "validacao.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=utf-8" />
<title>Exibir Notícias</title>
<style type="text/css">
form fieldset {
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px;
	width:490px
}
form fieldset input {
	border:none;
	font:Arial, Helvetica, sans-serif;
	font-size:10px;
	font-weight:bold;
	text-align:left;
	color:#000;
	text-decoration:none
}
form fieldset a {
	font:Arial, Helvetica, sans-serif;
	font-size:10px;
	font-weight:bold;
	text-align:left;
	color:#F00;
	text-decoration:none
}
#cancelar a {
	font-family:Arial, Helvetica, sans-serif;
	font-size:10px;
	font-weight:bold;
	text-align:left;
	color:#F00;
	text-decoration:none
}
#titulo {
	font-weight:bold
}
</style>
</head>
<body>
<?php
	require "conexao.php";
	$exibir_noticia = "SELECT * FROM noticia ORDER BY id_noticia DESC";
	$query = mysql_query($exibir_noticia);
	$linhas = mysql_num_rows($query);
	for ($contador=0; $contador<$linhas; $contador++) {
		$titulo_noticia = mysql_result($query, $contador, "titulo_noticia");
		$conteudo_noticia = mysql_result($query, $contador, "conteudo_noticia");
		$fonte_noticia = mysql_result($query, $contador, "fonte_noticia");
		$autor_noticia = mysql_result($query, $contador, "autor_noticia");
		echo "<form>";
		echo "<fieldset>";
		echo "<legend>Exibindo Notícia</legend>";
		echo "<br />";
		echo "<b>$titulo_noticia</b>";
		echo "<br /><br />";
		echo $conteudo_noticia;
		echo "<br /><br />";
		echo "<b>Fonte:</b> $fonte_noticia";
		echo "<br /><br />";
		echo " <b>Autor:</b> $autor_noticia";
		echo "</fieldset>";
		echo "</form>";
		echo "<br />";
	}
	mysql_close($conexao);
	echo "<div id=\"cancelar\" align=\"left\"><a href=\"painel_de_controle.php\">VOLTAR</a></div>";
?>
</body>
</html>

Mas creio que apenas esta parte é de maior importancia:

<?php
	require "conexao.php";
	$exibir_noticia = "SELECT * FROM noticia ORDER BY id_noticia DESC";
	$query = mysql_query($exibir_noticia);
	$linhas = mysql_num_rows($query);
	for ($contador=0; $contador<$linhas; $contador++) {
		$titulo_noticia = mysql_result($query, $contador, "titulo_noticia");
		$conteudo_noticia = mysql_result($query, $contador, "conteudo_noticia");
		$fonte_noticia = mysql_result($query, $contador, "fonte_noticia");
		$autor_noticia = mysql_result($query, $contador, "autor_noticia");
		echo "<form>";
		echo "<fieldset>";
		echo "<legend>Exibindo Notícia</legend>";
		echo "<br />";
		echo "<b>$titulo_noticia</b>";
		echo "<br /><br />";
		echo $conteudo_noticia;
		echo "<br /><br />";
		echo "<b>Fonte:</b> $fonte_noticia";
		echo "<br /><br />";
		echo " <b>Autor:</b> $autor_noticia";
		echo "</fieldset>";
		echo "</form>";
		echo "<br />";
	}
	mysql_close($conexao);
?>

Como vocês que já são bem mais experientes podem perceber, trata-se de um loop com a finalidade de exibir em cascata os resultados de um consulta ao banco de dados.

A questão é que eu queria entender como fazer a paginação deste loop (tentei implantar vários códigos, mas nenhum deles deu certo, como já falei), exibindo 10 (por exemplo) registros por página.

Luz, por favor!

Desde já, grato!

:D

Deletando Registros Através De Uma Lista

02/11/2009, 13:16

Estou fazendo um simples sistema de notícia em PHP, com o intuito de aprender.

Pois bem, já consegui montar o banco de dados e fazer o script que adicionasse as notícias nele. Assim como também já consegui fazer a recuperação das notícias em uma outra página.

O problema agora, é que eu estou tentando criar um "painel", onde sejam exibidos os títulos das notícias (de todas ja inseridas no banco de dados) e com cada uma, a opção de deletá-la.

Acho qeu já cheguei bem perto.

Deem uma olhada no código, eu comentei ele todo para que vocês possam me entender melhor.

<?php
 include "conexao.php"; //Faz a conexão com o banco de dados
 $exibir_sql = mysql_query("SELECT titulo FROM noticia ORDER BY id DESC"); //Busca os títulos das notícias ja registradas para exibi-las
 $exibir_id = mysql_query("SELECT id FROM noticia"); //Busca a id das notícias ja registradas para serem usadas na ação de deletar
 $linhas = mysql_num_rows($exibir_sql); //Determina o número de linhas para ser usada na lógica do loop
 for ($contador = 0; $contador<$linhas; $contador++) { // Início do loop
	 $titulo = mysql_result($exibir_sql, $contador, "titulo"); //Responsável por ordenar as notícias
	 $id = mysql_result($exibir_id, $contador, "id"); //Responsável por ordenar os ids
	 $deletar = mysql_query("DELETE FROM noticia WHERE id='$id'"); //Responsável por deletar os ids (aqui que está o problema)
	 echo "$titulo - <a href='del.php?id=\"$id\"'>REMOVER</a>"; //Exibi o título das notícias e a ação para deleta-la
	 echo "<br />"; //Quebra de linha para melhor organizar as notícias
 } //Fim do loop
 mysql_close($conexao); //Fecha a conexão com o banco de dados
 ?>

Então, os títulos são exibidos de forma correta, assim como a opção "REMOVER" também.

O problema é que quando eu clico em remover, a URL é carregada (com a id de cada notícia), porém, todos os registros do banco de dados são apagados.

Alguém pode me dar uma luz?

IPB Skin By Virteq