Erro ao tentar enviar arquivo anexado.

Enviada por Alan Araki 
Alan Araki
Erro ao tentar enviar arquivo anexado.
26 de August de 2013 às 01:30PM
Bom dia parceiros, tudo bem?
Estou com um problema!

Quando tento enviar um arquivo anexado no formulário de contato, ele apresenta o erro:

"Strict Standards: Only variables should be passed by reference in ..."

Sendo o erro que está constando é na linha: $extensao = strtolower(end(explode('.', $anexado)));

Espero que possam me ajudar.

Vou colar o código para visualizarem:

<!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>Trabalhe conosco</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div id="formulario">
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Trabalhe conosco</legend>

<?php
if("$_POST[nome]" >= '1'){
$nome = "$_POST[nome]";
}else{
$nome = '';
}if("$_POST[email]" >= '1'){
$email = "$_POST[email]";
}else{
$email = '';
}if("$_POST[assunto]" >= '1'){
$assunto = "$_POST[assunto]";
}else{
$assunto = '';
}if("$_POST[mensagem]" >= '1'){
$mensagem = "$_POST[mensagem]";
}else{
$mensagem = '';
}
?>

<?php
if (isset($_POST['enviar']) && $_POST['enviar'] == 'send') {

$nome = strip_tags(trim($_POST['nome']));
$email = strip_tags(trim($_POST['email']));
$assunto = strip_tags(trim($_POST['assunto']));
$mensagem = strip_tags(trim($_POST['mensagem']));

$anexado = $_FILES['arquivo']['name'];
$extensao = strtolower(end(explode('.', $anexado)));
$extensoes = array ('txt', 'jpg', 'png', 'docx');
$size = $_FILES['arquivo']['size'];
$maxsize = 1024 * 1024 * 5;

if(empty($anexado)){
echo "";
}elseif(array_search($extensao, $extensoes) === false){
$retorno = '<span>o tipo do arquivo é inválido, aceitamos somente txt, jpg, docx</span>';
}elseif($size >= $maxsize){
$retorno = '<span>arquivo so e permitido com menos de 2mb</span>';
}if (empty($nome)) {
$retorno = '<span class="no">Informe seu nome</span> ';
}elseif (empty($email)) {
$retorno = '<span class="no">Informe seu email</span>';
}elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$retorno = '<span class="no">Informe um e-mail valido</span>';
}elseif (empty($assunto)) {
$retorno = '<span class="no">Digite o assunto</span>';
}elseif (empty($mensagem)) {
$retorno = '<span class="no">Digite a mensagem</span>';
}if (empty($retorno)) {

//<input type="hidden" name="enviar" value="send" />

$date = date("d/m/Y h:i");

// ****** ATENÇÃO ********
// ABAIXO ESTÁ A CONFIGURAÇÃO DO SEU FORMULÁRIO.
// ****** ATENÇÃO ********

//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE

$nome_do_site="ALAN";
$email_para_onde_vai_a_mensagem = "EMAILCONFIDENCIAL";
$nome_de_quem_recebe_a_mensagem = "ALAN";
$exibir_apos_enviar='';

//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL

$cabecalho_da_mensagem_original="From: $name <$email>\n";
$assunto_da_mensagem_original="Trabalhe conosco";

// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)
// ******** OBS: SE FOR ADICIONAR NOVOS CAMPOS, ADICIONE OS CAMPOS NA VARIÁVEL ABAIXO *************

$configuracao_da_mensagem_original="
ENVIADO POR:\n
Nome: $nome\n
E-mail: $email\n
Assunto: $assunto\n
Mensagem: $mensagem\n\n

ENVIADO EM: $date";

//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA

// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO

// "Re: $assunto"

$assunto_da_mensagem_de_resposta = "Confirmação";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site <$email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\nEstaremos respondendo em breve...\nAtenciosamente,\n$nome_do_site\n\nEnviado em: $date";

// ****** IMPORTANTE ********
// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE
// ****** IMPORTANTE ********

//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO
//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME
//'assunto' NO FORMULARIO DE ENVIO

$assunto_digitado_pelo_usuario="s";

//ENVIO DA MENSAGEM ORIGINAL

$headers = "$cabecalho_da_mensagem_original";
if ($assunto_digitado_pelo_usuario=="s")
{
$assunto = "$assunto_da_mensagem_original";
};
$seuemail = "$email_para_onde_vai_a_mensagem";
$mensagem = "$configuracao_da_mensagem_original";
mail($seuemail,$assunto,$mensagem,$headers);

//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA

$headers = "$cabecalho_da_mensagem_de_resposta";
if ($assunto_digitado_pelo_usuario=="s")
{
$assunto = "$assunto_da_mensagem_de_resposta";
}
else
{
$assunto = "Re: $assunto";
};
$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);

/*echo "<script>window.location='$exibir_apos_enviar'</script>";*/
echo "<span class=\"yes\">Sua mensagem foi enviada com suscesso! Estaremos respondendo o mais breve possivel!</span>";
unset($nome, $email, $assunto, $mensagem);
} else {
echo "$retorno";
}
}
?>

<label>
<span>Nome</span>
<input type="text" name="nome" value="<?php echo $nome;?>" />
</label>

<label>
<span>E-mail</span>
<input type="text" name="email" value="<?php echo $email;?>" />
</label>

<label>
<span>Assunto</span>
<input type="text" name="assunto" value="<?php echo $assunto;?>" />
</label>

<label>
<span>Mensagem</span>
<textarea cols="40" rows="5" name="mensagem"><?php echo $mensagem;?></textarea>
</label>

<label>
<span>Anexar arquivo</span>
<input type="file" name="arquivo" size="16" />
</label>


<input type="hidden" name="enviar" value="send" />
<input type="submit" name="Enviar" class="send" />


</fieldset>
</form>
</div>


</body>
</html>
Alan Araki
Re: Erro ao tentar enviar arquivo anexado.
26 de August de 2013 às 07:39PM
Alguém? :/
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.