Não consigo localizar o erro!
Galera, estou fazendo um esquema de envio de mensagem + upload interno aqui da empresa... Mas ainda não mando muito bem no PHP.
O que acontece é o seguinte, o upload está funcionando e tudo mais... Mas quando testo um arquivo maior do que o permitido, ele está apresentando a mensagem de erro errada. (Você deve preencher todos os campos obrigatórios! (Mensagem/Nome/Email) )
Já verifiquei tudo aqui e não consigo achar onde está o erro, será que alguém me da uma luz?
Ps.: Aceito críticas/sugestões para o código. :)
Código index.php
<?php
$acao = $_GET['acao'];
if ($acao == 'enviar') {
$mensagem = $_POST['contact'];
$email = $_POST['email'];
$nome = $_POST['nome'];
$arquivo = $_FILES['arquivo']['name'];
$data = date("d/m/Y");
$erro = "";
# Verifica se todos os campos foram preenchidos
if ($mensagem == "" or $email == "" or $nome == "") {
$erro = 1;
}
# Se algum campo não foi preenchido, retorna msg de erro e para o script.
if ($erro == 1) {
echo '<div id="erro_msg">Você deve preencher todos os campos obrigatórios! (Mensagem/Nome/Email)</div>';
}
# Se todos os campos foram preenchidos e o não tem arquivo para upload, insere os dados no banco.
if ($erro == "" and $arquivo == "") { mysql_query("INSERT INTO ljvirtual_sugestoes (nome, sugestao, email, data, arquivo) VALUES ('$nome', '$mensagem', '$email', '$data', '$arquivo');") or die ($sql_erro = 1);
# Se os dados foram inseridos corretamente no banco, apresenta mensagem de sucesso
if ($sql_erro == "") { echo "<div_msg>Sua mensagem foi enviada com sucesso!<br /> Obrigado por colaborar conosco!<br />TiTeam";
}
}
# Se todos os campos foram preenchidos e tem arquivo para upload, carrega o upload.php e insere os dados no banco.
if ($erro == "" and $arquivo != "") {
include "upload.php";
mysql_query("INSERT INTO ljvirtual_sugestoes (nome, sugestao, email, data, arquivo) VALUES ('$nome', '$mensagem', '$email', '$data', '$arquivo');") or die ("Não foi possível enviar sua mensagem!");
}
}
?>
Código upload.php:
<?php
// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'uploads/';
// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 1024 1; // 20Mb
// Array com as extensões permitidas
$_UP['extensoes'] = array('jpg', 'png', 'gif', 'doc', 'docx', 'xls', 'xlsx', 'exe');
// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = true;
// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = '<div id="msg_erro">Não houve erro</div>';
$_UP['erros'][1] = '<div id="msg_erro">O arquivo no upload é maior do que o limite do PHP</div>';
$_UP['erros'][2] = '<div id="msg_erro">O arquivo ultrapassa o limite de tamanho especifiado no HTML</div>';
$_UP['erros'][3] = '<div id="msg_erro">O upload do arquivo foi feito parcialmente</div>';
$_UP['erros'][4] = '<div id="msg_erro">Não foi feito o upload do arquivo</div>';
// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['arquivo']['error'] != 0) {
die ($_UP['erros'][$_FILES['arquivo']['error']]);exit; // Para a execução do script
}
// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
// Faz a verificação da extensão do arquivo
$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
echo '<div id="msg_erro">Por favor, envie arquivos com as seguintes extensões:<br /> jpg, png, gif, doc, docx, xls, xlsx</div>';
}
// Faz a verificação do tamanho do arquivo
else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
echo '<div id="msg_erro">O arquivo excede o tamanho limite! (20mb)</div>';
}
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
else {
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
// Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
$nome_final = time().".".$extensao;
} else {
// Mantém o nome original do arquivo
$nome_final = $_FILES['arquivo']['name'];
}
// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
echo '<div id="msg_erro">Sua sugestão foi enviada com sucesso!<br /> Obrigado por colaborar conosco!<br /><font color="white"></b>TiTeam</b></font></div>';} else {
// Não foi possível fazer o upload, provavelmente a pasta está incorreta
echo '<div id="msg_erro">Não foi possível enviar sua mensagem, tente novamente.</div>';
}
}
?>
Obrigado desde já! Abraços!
Discussão (12)
Carregando comentários...