Jump to content


Photo

Upload De Imagem


  • Faça o login para participar
8 replies to this topic

#1 Sh1n0

Sh1n0

    Turista

  • Usuários
  • 58 posts
  • Sexo:Masculino
  • Localidade:Castanheiras, Rondonia

Posted 14/12/2009, 00:37

Alguem sabe mi dizer porquê meu script ta dando erro na hora de upload's de imagens?
vo anexar os codigo abaixo!!

http://pauloricardo....upload_erro.rar

Edição feita por: Sh1n0, 14/12/2009, 00:41.

Paulo Ricardo
Skype: sh1n0.styl3
Castanheiras, RO

#2 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 14/12/2009, 04:20

Por que você não mostra o erro que está dando?

Até mais.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#3 Sh1n0

Sh1n0

    Turista

  • Usuários
  • 58 posts
  • Sexo:Masculino
  • Localidade:Castanheiras, Rondonia

Posted 14/12/2009, 12:58

Simples! quando você faz o cadastro ele não upload a foto, mas realiza o cadastro
http://pauloricardo....io_cadastro.php

esse é o meu problema, nao to conseguindo fazer o meu script upload a foto junto com o cadastro

Esse é o script!!
<?php

include "config.php";

$nome = trim($_POST['nome']);
$sobrenome = trim($_POST['sobrenome']);
$email = trim($_POST['email']);
$usuario = trim($_POST['usuario']);
$foto = trim($_POST['foto']);
$info = trim($_POST['info']);

/* Vamos checar algum erro nos campos, mas tenha em mente que existem formas bem mais eficientes de tratar os dados que são enviados ou n&atilde;o pelos campos do formulário */

if((!$nome) || (!$sobrenome) || (!$email) || (!$usuario)){

	echo "ERRO: Voc&ecirc; n&atilde;o enviou as seguintes informaç&otilde;es requeridas para o cadastro! <br /> <br />";

	if(!$nome){

		echo "Nome &eacute; um campo requerido. <br />";

	}

	if(!$sobrenome){

		echo "Sobrenome &eacute; um campo requerido. <br />";

	}

	if(!$email){

		echo "Email &eacute; um campo requerido.<br />";

	}

	if(!$usuario){

		echo "Nome de Usu&aacute;rio &eacute; um campo requerido. <br />";

	}


	echo "<br />Preencha os campos necess&aacute;rios abaixo: <br /><br />";

	include "formulario_cadastro.php"; 

}
else{

	/* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */

	$sql_email_check = mysql_query("SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'");
	$sql_usuario_check = mysql_query("SELECT COUNT(usuario_id) FROM usuarios WHERE usuario='{$usuario}'");

	$eReg = mysql_fetch_array($sql_email_check);
	$uReg = mysql_fetch_array($sql_usuario_check);

	$email_check = $eReg[0];
	$usuario_check = $uReg[0];
	
	//$email_check = mysql_num_rows($sql_email_check);
	//$usuario_check = mysql_num_rows($sql_usuario_check);

	if(($email_check > 0) || ($usuario_check > 0)){

		echo "<strong>ERRO </strong>- Por favor corrija os seguintes erros abaixo: <br /> <br />";

		if($email_check > 0){

		echo "Este email ( <strong>".$email."</strong> ) j&aacute; est&aacute; sendo utilizado.<br />Por favor utilize outra conta de email! <br />";

		unset($email);

		}

		if($usuario_check > 0){

			echo "Este nome de usu&aacute;rio ( <strong>".$usuario."</strong> ) j&aacute; est&aacute; sendo utilizado.<br />Por favor utilize outro nome de usu&aacute;rio!<br />";

			unset($usuario);

		}

		print "<br />";
		include "formulario_cadastro.php";

	}
	else{

		/* Se passarmos por esta verificação ilesos é hora de finalmente cadastrar
		 os dados Vamos utilizar uma função para gerar uma senha randômica */ 

		function makeRandomPassword(){

			$salt = "abchefghjkmnpqrstuvwxyz0123456789";
			srand((double)microtime()*1000000); 

			$i = 0;

			while($i <= 7){

				$num = rand() % 33;
				$tmp = substr($salt, $num, 1);
				$pass = $pass . $tmp;
				$i++;

			}

			return $pass;

		}

		$senha_randomica = makeRandomPassword();

		$senha = md5($senha_randomica);

		//Upload da imagem!!
if (!empty($foto["name"])) {

			// Se não houver nenhum erro
	if (count($error) == 0) {
			   	 		
			// Pega extensão da imagem
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);
			
			// Gera um nome único para a imagem
        	$nome_imagem = md5(uniqid(time())) . "." . $ext[1];

        	// Caminho de onde ficará a imagem
        	$caminho_imagem = "foto/" . $nome_imagem;

			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto["tmp_name"], $caminho_imagem);
	}
}
		// Inserindo os dados no banco de dados

		$info = htmlspecialchars($info);

		$sql = mysql_query("INSERT INTO usuarios (nome, sobrenome, email, usuario, foto, senha, info, data_cadastro) 
							VALUES('{$nome}', '{$sobrenome}', '{$email}', '{$usuario}', '.$nome_imagem.', '{$senha}', '{$info}', now())") 
							or die( mysql_error() );

		if(!$sql){

			echo "Ocorreu algum erro ao criar sua conta, por favor entre em contato com o Webmaster.";

		}
		else {

			$usuario_id = mysql_insert_id();

			// Enviar um email ao usu&aacute;rio para confirmação e ativar o cadastro!

			$headers = "MIME-Version: 1.0\n";
			$headers .= "Content-type: text/html; charset=iso-8859-1\n";
			$headers .= "From: Teu Domínio - Webmaster<teuemail@teudominiodeemail.com>"; // TEU DOMÌNIO E TEU EMAIL 

			$subject = "Confirmação de cadastro - teusite.com";
			$mensagem = "Prezado <strong>$nome $sobrenome</strong>,
			
						<br />
			
						Obrigado pelo seu cadastro em nosso site, 
						<a href ='http://www.teusite.com'>www.teusite.com</a>!
						
						<br /><br />

						Para confirmar seu cadastro e ativar sua conta, podendo assim acessar áreas exclusivas, 
						por favor clique no link abaixo ou copie e cole o link na barra de endereço do seu navegador.
						
						<br /><br /> 

						<a href ='http://www.teusite.com/ativar.php?id=$usuario_id&code=$senha'>
						http://www.teusite.com/ativar.php?id=$usuario_id&code=$senha
						</a>

						<br /> <br />

						Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo, 
						efetuando o login com os dados abaixo:
						
						<br /> <br /> 

						<strong>Usuario</strong>: {$usuario}
						
						<br /> 
						
						<strong>Senha</strong>: {$senha_randomica}
						
						<br /><br /> 

						Obrigado!<br /> <br /> 

						Webmaster<br /> <br /> <br /> 


						Esta é uma mensagem automática, por favor não responda!";

			mail($email, $subject, $mensagem, $headers);

			echo "Foi enviado para seu email - ( ".$email." ) um pedido de confirma&ccedil;&atilde;o de cadastro, 
				por favor verifique e sigas as instru&ccedil;&otilde;es!";
			
		}

	}

}
?>

Paulo Ricardo
Skype: sh1n0.styl3
Castanheiras, RO

#4 Allisson

Allisson

    12 Horas

  • Usuários
  • 239 posts
  • Sexo:Masculino
  • Localidade:Alagoas
  • Interesses:PHP

Posted 14/12/2009, 13:28

seu formulário esta sem o enctype, coloca assim:
<form name="cadastro" method="post" action="cadastra.php" enctype="multipart/form-data">
...
</form>

coloca assim que vai, e não esquece de dá permissão na pasta permissão do tip: 777

Allisson Rafael de Brito Araujo

Devagar e sempre. Se Deus é por nós, quem será contra nós?

#5 Sh1n0

Sh1n0

    Turista

  • Usuários
  • 58 posts
  • Sexo:Masculino
  • Localidade:Castanheiras, Rondonia

Posted 15/12/2009, 13:43

Mesmo assim ele ainda não uploada a foto!!
vo fazer um link com o script

Retireio o Link!!

SQL!!
--
-- Estrutura da tabela `usuarios`
--

Nao usarei mais!

--
-- Extraindo dados da tabela `usuarios`
--

Consegui fazer o script funcionar! tive que monta um proprio script de upload! mas valeu a ajuda de você's.
quando eu termina o script eu coloco ele interio para down

Edição feita por: Sh1n0, 15/12/2009, 13:44.

Paulo Ricardo
Skype: sh1n0.styl3
Castanheiras, RO

#6 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 15/12/2009, 18:45

Além do enctype vc tbm deve definir o campo para imagem devidamente

Veja bem... vc está tentando pegar a imagem com $_POST, onde na verdade deve ser $_FILE

Ao invés disso
$foto = trim($_POST['foto']);

Faça
$foto = $_FILE['foto'];

Da uma olhada no Manual sobre Upload de imagens

(y)

ps.: esse cod (fora o upload) me é familiar heheheheheAté mais

#7 Sh1n0

Sh1n0

    Turista

  • Usuários
  • 58 posts
  • Sexo:Masculino
  • Localidade:Castanheiras, Rondonia

Posted 16/12/2009, 11:36

Sim! e seu script de cadastro, to tentando dar um novo visual a ele, quando eu termina eu vo postar ele la no seu post, mas vo tentar!

qualquer coisa eu volto aqui!

---------------------------------

É o seguinte, meu novo codigo e esse.
<?php

include "config.php";
include("./class.upload.php");


	//Upload da imagem!!
		if($_GET['acao']=="cadastra")
		{
		$upload = new upload();
		$upload->fazUpload();
		}

$nome = trim($_POST['nome']);
$sobrenome = trim($_POST['sobrenome']);
$email = trim($_POST['email']);
$usuario = trim($_POST['usuario']);
$foto = trim($novoNome);
$info = trim($_POST['info']);

/* Vamos checar algum erro nos campos, mas tenha em mente que existem formas bem mais eficientes de tratar os dados que são enviados ou n&atilde;o pelos campos do formulário */

if((!$nome) || (!$sobrenome) || (!$email) || (!$usuario)){

	echo "ERRO: Voc&ecirc; n&atilde;o enviou as seguintes informaç&otilde;es requeridas para o cadastro! <br /> <br />";

	if(!$nome){

		echo "Nome &eacute; um campo requerido. <br />";

	}

	if(!$sobrenome){

		echo "Sobrenome &eacute; um campo requerido. <br />";

	}

	if(!$email){

		echo "Email &eacute; um campo requerido.<br />";

	}

	if(!$usuario){

		echo "Nome de Usu&aacute;rio &eacute; um campo requerido. <br />";

	}


	echo "<br />Preencha os campos necess&aacute;rios abaixo: <br /><br />";

	include "formulario_cadastro.php"; 

}
else{

	/* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */

	$sql_email_check = mysql_query("SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'");
	$sql_usuario_check = mysql_query("SELECT COUNT(usuario_id) FROM usuarios WHERE usuario='{$usuario}'");

	$eReg = mysql_fetch_array($sql_email_check);
	$uReg = mysql_fetch_array($sql_usuario_check);

	$email_check = $eReg[0];
	$usuario_check = $uReg[0];
	
	//$email_check = mysql_num_rows($sql_email_check);
	//$usuario_check = mysql_num_rows($sql_usuario_check);

	if(($email_check > 0) || ($usuario_check > 0)){

		echo "<strong>ERRO </strong>- Por favor corrija os seguintes erros abaixo: <br /> <br />";

		if($email_check > 0){

		echo "Este email ( <strong>".$email."</strong> ) j&aacute; est&aacute; sendo utilizado.<br />Por favor utilize outra conta de email! <br />";

		unset($email);

		}

		if($usuario_check > 0){

			echo "Este nome de usu&aacute;rio ( <strong>".$usuario."</strong> ) j&aacute; est&aacute; sendo utilizado.<br />Por favor utilize outro nome de usu&aacute;rio!<br />";

			unset($usuario);

		}

		print "<br />";
		include "formulario_cadastro.php";

	}
	else{

		/* Se passarmos por esta verificação ilesos é hora de finalmente cadastrar
		 os dados Vamos utilizar uma função para gerar uma senha randômica */ 

		function makeRandomPassword(){

			$salt = "abchefghjkmnpqrstuvwxyz0123456789";
			srand((double)microtime()*1000000); 

			$i = 0;

			while($i <= 7){

				$num = rand() % 33;
				$tmp = substr($salt, $num, 1);
				$pass = $pass . $tmp;
				$i++;

			}

			return $pass;

		}

		$senha_randomica = makeRandomPassword();

		$senha = md5($senha_randomica);

		// Inserindo os dados no banco de dados

		$info = htmlspecialchars($info);

		$sql = mysql_query("INSERT INTO usuarios (nome, sobrenome, email, usuario, foto, senha, info, data_cadastro) 
							VALUES('{$nome}', '{$sobrenome}', '{$email}', '{$usuario}', '{$foto}', '{$senha}', '{$info}', now())") 
							or die( mysql_error() );

		if(!$sql){

			echo "Ocorreu algum erro ao criar sua conta, por favor entre em contato com o Webmaster.";
		}
		else {

			$usuario_id = mysql_insert_id();

			// Enviar um email ao usu&aacute;rio para confirmação e ativar o cadastro!

			$headers = "MIME-Version: 1.0\n";
			$headers .= "Content-type: text/html; charset=iso-8859-1\n";
			$headers .= "From: Teu Domínio - Webmaster<teuemail@teudominiodeemail.com>"; // TEU DOMÌNIO E TEU EMAIL 

			$subject = "Confirmação de cadastro - teusite.com";
			$mensagem = "Prezado <strong>$nome $sobrenome</strong>,
			
						<br />
			
						Obrigado pelo seu cadastro em nosso site, 
						<a href ='http://www.teusite.com'>www.teusite.com</a>!
						
						<br /><br />

						Para confirmar seu cadastro e ativar sua conta, podendo assim acessar áreas exclusivas, 
						por favor clique no link abaixo ou copie e cole o link na barra de endereço do seu navegador.
						
						<br /><br /> 

						<a href ='http://www.teusite.com/ativar.php?id=$usuario_id&code=$senha'>
						http://www.teusite.com/ativar.php?id=$usuario_id&code=$senha
						</a>

						<br /> <br />

						Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo, 
						efetuando o login com os dados abaixo:
						
						<br /> <br /> 

						<strong>Usuario</strong>: {$usuario}
						
						<br /> 
						
						<strong>Senha</strong>: {$senha_randomica}
						
						<br /><br /> 

						Obrigado!<br /> <br /> 

						Webmaster<br /> <br /> <br /> 


						Esta é uma mensagem automática, por favor não responda!";

			mail($email, $subject, $mensagem, $headers);

			echo "Foi enviado para seu email - ( ".$email." ) um pedido de confirma&ccedil;&atilde;o de cadastro, 
				por favor verifique e sigas as instru&ccedil;&otilde;es!";
				
		}
			
	}

}
?>
so que to com problema na hora de cadastrar a img no BD
alguem sabe onde tah o erro?

class.upload.php
<?php
/*********************************************************************
*@Author: Eduardo Stuart 
*@email:eduardo@eduardostuart.com
*@web: http://www.eduardostuart.com
*@Name: Classe sistema de upload
**********************************************************************/ 

class upload
{
 var $tipos = array("image/jpeg"  =>"JPG",
                "image/gif"   =>"GIF",
                "image/pjpeg" =>"JPEG",
                "image/x-png" =>"PNG");
                
 var $tamanhoMaximo = 650000;//bytes = 635kb
 
 var $destino = "./foto/"; 

 var $tamanho;
 var $arquivo;
 var $tipo;
 var $tmp;
 
 var $novoNome;
 
 function upload()
 {
  $this->arquivo = $_FILES['arquivo']['name'];
  $this->tamanho = $_FILES['arquivo']['size'];
  $this->tipo   = $_FILES['arquivo']['type'];
  $this->tmp     = $_FILES['arquivo']['tmp_name'];
 }#fecha funcao;
 

//Coloque a funcao de erro, apenas se alguem quiser modificar
//para mostrar algum alerta em javascript ou de qualquer jeito...fica mais facil de editar;)
 function erro($mensagem)
 {
  echo "<script>alert('".$mensagem."');</script>";

 }#fecha erro();
 
 function novoNome($mime)
 {
  $randomico = rand(0,800);
  $this->novoNome = substr(md5($this->arquivo.$randomico),0,5).".".$mime;

 }#fecha novoNome();
 
 function copia($tipo)
 {
  if($this->arquivo)
  {
   $this->novoNome($tipo);
   copy($this->tmp,$this->destino.$this->novoNome);
   echo "Upload efetuado com sucesso!";
  }
 }#fecha copia();
 
 function fazUpload()
 {
  foreach($this->tipos as $mime)
  {
   if(eregi($mime,trim($this->tipo)))
        {
         $cont++;
         if($this->tamanho >= $this->tamanhoMaximo)
           $this->erro("Tamanho excedido.<br>Máximo permitido: ".ceil($this->tamanhoMaximo/1024)."kb");
         else
           $this->copia($mime);
        }
  }
  if($cont==0)
   echo "Arquivo inválido!";
  
 }#fecha fazUpload();
 
}#fecha classe;
?>

Paulo Ricardo
Skype: sh1n0.styl3
Castanheiras, RO

#8 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 16/12/2009, 12:47

O campo de envio da imagem no teu formulário está como????

Está assim:

<input type="file" name="arquivo" .... />

?

Outra coisa que deves fazer é dar uma saída em $foto para ver se está imprimi algum valor

echo $foto;

Se tiver surgidno alguma mensagem de erro na tela,,, cole aí

(y)Até mais

#9 Sh1n0

Sh1n0

    Turista

  • Usuários
  • 58 posts
  • Sexo:Masculino
  • Localidade:Castanheiras, Rondonia

Posted 16/12/2009, 19:11

Bom, erro nenhum!! so que eu n sei qual e a $ para pegar o nome da img up para colocar no BD
<input name="arquivo" type="file" id="arquivo" maxlength="650000" />

Paulo Ricardo
Skype: sh1n0.styl3
Castanheiras, RO




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq