Ir para conteúdo
Fórum Script Brasil
  • 0

Erro de sintaxe no formulário de contato


Dark_Fox3000

Pergunta

Pra num abrir outro tópico vou pega o embalo no do colega. Bom tenho um formulario de contato que funciona quase 100%, mas quando tento colocar pra o mesmo enviar arquivo anexo ele retorna erro.

Segue os codigos:

cadastro.html

<?xml version="1.0" encoding="iso-8859-1"?><!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=iso-8859-1" />
<title>Cadastro RD3 Show</title>
<style type="text/css">
<!--
body {
    background-image: url(fundo.png);
    background-repeat: no-repeat;
}
-->
</style>
&lt;script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body onload="MM_validateForm('nome','','R','endereco','','R','referencia','','R','bairro','','R','cidade','','R','estado2','','R','prefixo','','RisNum','telefone','','RisNum','celular2','','RisNum','email','','RisEmail','login','','R','senha','','R');return document.MM_returnValue">
<table width="990" height="499" border="0">
  <tr> 
    <th width="165" height="495" scope="col"> </th>
    <th width="537" valign="bottom" scope="col"> 
      <form action="enviar.php" method="post" enctype="multipart/form-data" name="formcontato" id="formcontato">
        <div align="left"> 
          <p> Nome: 
            <label> 
            <input name="nome" type="text" id="nome" size="50">
            </label>
          </p>
          <p>
            <label>Idade:
            <input name="idade" type="text" id="idade" />
            </label>
          </p>
          <p> 
            <label>Endereço: 
            <input name="endereco" type="text" id="endereco" size="46">
            </label>
          </p>
          <p> 
            <label></label>
          Bairro: 
            <label> 
            <input name="bairro" type="text" id="bairro" size="40" />
            </label>
          </p>
          <p>Cidade: 
            <label> 
            <input name="cidade" type="text" id="cidade" size="40" />
            Estado: 
            <input name="estado" type="text" id="estado2" size="1" maxlength="2" />
            </label>
            <label></label>
          </p>
          <p>DDD: 
            <label> 
            <input name="prefixo" type="text" id="prefixo" size="1" maxlength="2" />
            Telefone: 
            <input name="telefone" type="text" id="telefone" />
            </label>
          </p>
          <p>Email: 
            <label> 
            <input name="email" type="text" id="email" size="50" />
            </label>
          </p>
          <p> 
            <label>Assunto: 
            <input name="titulo" type="text" id="titulo" size="40" />
            </label>
          </p>
          <p>Mensagem: 
            <label> 
            <textarea name="texto" cols="50" id="texto"></textarea>
            </label>
            <label> </label>
            <label> </label>
          </p>
          <p>
            <label>Anexo:
            <input name="arquivo" type="file" id="arquivo" lang="pt" />
            </label>
          </p>
          <table width="100%" border="0" align="center">
            <tr> 
              <td align="center"><input name="Submit" type="submit" id="Submit2" value="ENVIAR" /> 
                <input name="Reset" type="reset" id="Reset" value="LIMPAR" /></td>
            </tr>
          </table>
          <p>
            <label></label>
          </p>
        </div>
      </form>
  </tr>
</table>
</body>
</html>
enviar.php
<html>
<head>
<title>Cadastro PONTOINET</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
    background-image: url(../../../Site RD3/formulario/fundo.png);
    background-repeat: no-repeat;
}
-->
</style></head>

<body>
<?

//Pega o valor do campo nome do formulário: 
$assunto = $_POST[titulo];
//Pega o valor do campo email do formulário: 
$email = $_POST[email]; 
//Coloque o e-mail que receberá os dados: 
$seuemail = "edmiranda3@yahoo.com.br"; 
//Pega o valor do campo mensagem, e usa a função n12br() para aceitar comandos html: 
$mensagem = nl2br($_POST[texto]);
$nome = $_POST[nome];
$idade = $_POST[idade];
$endereco = $_POST[endereco];
$bairro = $_POST[bairro];
$cidade = $_POST[cidade];
$estado = $_POST[estado];
$prefixo = $_POST[prefixo];
$telefone = $_POST[telefone];

$corpo = "$nome
$endereco
$idade
$bairro
$cidade
$estado
$prefixo
$telefone
$email
$texto";

$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;

if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){

$fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");
$anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"])); 
$anexo = base64_encode($anexo);

fclose($fp);

$anexo = chunk_split($anexo);

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers .= "From: $email \r\n"; 

//Enviar os dados do formulário para seu e-mail
$enviar = mail($seuemail, $assunto, $mensagem, $corpo); 

//Verifica se o e-mail foi entregue com sucesso 
if($enviar) {
echo "Email enviado com sucesso";
}else{
echo "Não foi possível enviar.";
} 

?>
</body>
</html>

A mensagem de erro: Parse error: syntax error, unexpected $end in /home/rd3club/public_html/form/enviar.php on line 73

essa linha é essa: 73 </html>

Sem a parte do $arquivo o formulario funciona normal.... alguém pode dizer onde esta o erro, grato a todos desde já. B)

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

você abriu um bloco de códigos e não fechou

if (file_exists($arquivo["tmp_name"]) and !empty($arquivo)) { // --- ABRE BLOCO 1 - você NÃO TINHA FECHADO
    $fp = fopen($_FILES["arquivo"]["tmp_name"], "rb");
    $anexo = fread($fp, filesize($_FILES["arquivo"]["tmp_name"]));
    $anexo = base64_encode($anexo);

    fclose($fp);

    $anexo = chunk_split($anexo);

    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: $email \r\n"; 
    // Enviar os dados do formulário para seu e-mail
    $enviar = mail($seuemail, $assunto, $mensagem, $corpo); 
    // Verifica se o e-mail foi entregue com sucesso
    if ($enviar) { // ABRE BLOCO 2
        echo "Email enviado com sucesso";
    } else {
        echo "Não foi possível enviar.";
    } // FECHA BLOCO 2
} // FECHA BLOCO 1

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Pelo que vi:

1. você não anexou o arquivo a mensagem

a varriavel $anexo tem que "entrar" na varriavel $mensagem

2. A codificação da sua mensagem deve ser de multipart's, a ser incluido no cabeçalho

$corpo .= "Content-type: multipart/mixed; boundary=\"$idt\"\r\n";

3. você tem que declarar o anexo na msg

$mensagem .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";

Tem um exemplo de envio de formulário com anexo aqui

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...