Há pouco tempo estou aprendendo a trabalhar com php e estou montando um sistema de cadastro, meu sistema cadastra beleza mas agora preciso colocar um campo "foto" nele tambem. Achei um script ensinando a fazer upload de imagem e tentei adaptar ele pro meu sistema de cadastro mas mas nao consegui. O problema é o seguinte, memo com a funçao de upload o sistema funciona mas soh nao cadastra a foto, no tutorial que segui esplica que devo criar um campo no mysql chamado "foto varchar not null" onde ficara armazenado a foto: segue o script:
Neste script abaixo eu verifico a imagem e depois fasso o upload...
//verificando arquivo imagem if (!empty($foto["name"])) { // Largura máxima em pixels $largura = 150; // Altura máxima em pixels $altura = 180; // Tamanho máximo do arquivo em bytes $tamanho = 1000; // Verifica se o arquivo é uma imagem if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){ $error[1] = "Isso não é uma imagem."; } // Pega as dimensões da imagem $dimensoes = getimagesize($foto["tmp_name"]); // Verifica se a largura da imagem é maior que a largura permitida if($dimensoes[0] > $largura) { $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels"; } // Verifica se a altura da imagem é maior que a altura permitida if($dimensoes[1] > $altura) { $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels"; } // Verifica se o tamanho da imagem é maior que o tamanho permitido if($foto["size"] > $tamanho) { $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes"; } // 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 = "fotos/" . $nome_imagem; // Faz o upload da imagem para seu respectivo caminho move_uploaded_file($foto["tmp_name"], $caminho_imagem); } // Se houver mensagens de erro, exibe-as if (count($error) != 0) { foreach ($error as $erro) { echo $erro . "<br />"; } } }
Aqui eu armazeno os dados juntamente com a foto:
$sql = mysql_query("INSERT INTO usuarios (nome, sobrenome, email, repete_email, senha, repete_senha, data_cadastro, foto) VALUES('{$nome}', '{$sobrenome}', '{$email}', '{$repete_email}', '{$senha}', '{$repete_senha}', now(), '{$foto}')") or die( mysql_error() );
quando rodo o sistema nao da nenhum erro e armazena os dados tranquilo mas nao armazena a foto, se alguem puder me ajudar com este script ficaria muito grato. flw
abaixo esta o codigo responsavel pelo cadastro no db, e a parte vermelha eh onde acho que esta algo errado, sera que alguem poderia verificar pra mim e explicar o que eu fiz de errado? Desde ja agradeço.
<?php include "config.php"; include "functions.php"; $nome = trim($_POST['nome']); $sobrenome = trim($_POST['sobrenome']); $email = trim($_POST['email']); $repete_email = trim($_POST['repete_email']); $senha = trim($_POST['senha']); $repete_senha = trim($_POST['repete_senha']); $foto = trim($_POST['foto']); /* 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ão pelos campos do formulário */ [color="#FF0000"]if ((!$nome) || (!$sobrenome) || (!$email) || (!$repete_email) || (!$senha) || (!$repete_senha)){ echo "ERRO: Você não enviou as seguintes informações requeridas para o cadastro! <br /> <br />"; if (!$nome){ echo "Nome é um campo requerido. <br />"; } if (!$sobrenome){ echo "Sobrenome é um campo requerido. <br />"; } if (!$email){ echo "Email é um campo requerido.<br />"; } if (!$repete_email){ echo "Confirma Email é um campo requerido.<br />"; } if (!$senha){ echo "Senha é um campo requerido. <br />"; } if (!$repete_senha){ echo "Confirma Senha é um campo requerido. <br />"; } echo "<br />Preencha os campos necessários abaixo: <br /><br />"; include "formulario_cadastro.php"; }else //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //verificando arquivo imagem if (!empty($foto["name"])) { // Largura máxima em pixels $largura = 150; // Altura máxima em pixels $altura = 180; // Tamanho máximo do arquivo em bytes $tamanho = 1000; // Verifica se o arquivo é uma imagem if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){ $error[1] = "Isso não é uma imagem."; } // Pega as dimensões da imagem $dimensoes = getimagesize($foto["tmp_name"]); // Verifica se a largura da imagem é maior que a largura permitida if($dimensoes[0] > $largura) { $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels"; } // Verifica se a altura da imagem é maior que a altura permitida if($dimensoes[1] > $altura) { $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels"; } // Verifica se o tamanho da imagem é maior que o tamanho permitido if($foto["size"] > $tamanho) { $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes"; } // 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 = "fotos/" . $nome_imagem; // Faz o upload da imagem para seu respectivo caminho move_uploaded_file($foto["tmp_name"], $caminho_imagem); } // Se houver mensagens de erro, exibe-as if (count($error) != 0) { foreach ($error as $erro) { echo $erro . "<br />"; } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($senha!=$repete_senha){ echo "Senha nao confere¹"; } if ($email!=$repete_email){ echo "Email nao confere¹"; echo "<br><br>$email<br><br>$repete_email";}[/color] 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 email='{$senha}'"); $eReg = mysql_fetch_array($sql_email_check); $uReg = mysql_fetch_array($sql_usuario_check); $email_check = $eReg[0]; $usuario_check = $uReg[0]; 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á está sendo utilizado.<br />Por favor utilize outra conta de email! <br />"; unset($email); } if ($usuario_check > 0){ echo "Este e-mail ( <strong>".$email."</strong> ) já está sendo utilizado.<br/>Por favor utilize outro e-mail<br />"; unset($email); } echo "<br />"; include "formulario_cadastro.php"; } else { $email = strtolower(trim($_POST['email'])); $char = "@"; $pos = strpos($email, $char); if ($pos === false){ echo "<strong>ERRO:</strong><br />"; echo "O endereço de email [ <strong><em>".$email."</em></strong> ] que está tentando utilizar não é válido.<br />"; echo "Por favor, utilize um email válido.<br /><br />"; include "formulario_cadastro.php"; }else{ $v_mail = verifica_email($email); if ($v_mail){ $senha = md5($senha); /*somente trocar $senha_randomica pelo nome de um campo para criar uma senha*/ $repete_senha = md5($repete_senha); // Inserindo os dados no banco de dados $info = htmlspecialchars($info); $sql = mysql_query("INSERT INTO usuarios (nome, sobrenome, email, repete_email, senha, repete_senha, data_cadastro, foto) VALUES('{$nome}', '{$sobrenome}', '{$email}', '{$repete_email}', '{$senha}', '{$repete_senha}', now(), '{$foto}')") or die( mysql_error() ); if (!$sql){ echo "Ocorreu algum erro ao criar sua conta, por favor entre em contato com o Webmaster."; } echo "Cadastro efetuado com sucesso!"; }else{ echo "<strong>ERRO:</strong><br />"; echo "O endereço de email [ <strong><em>".$email."</em></strong> ] que está tentando utilizar não é válido.<br />"; echo "Por favor, utilize um email válido.<br /><br />"; include "formulario_cadastro.php"; } } } } ?>