Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hunger

[Resolvido] Inserir novos campos em form

Recommended Posts

Fala pessoal!

 

Manjo pouquíssimo (leia-se quase nada) de PHP, mas o cliente pediu para que inserisse em um formulario do site dele a possibilidade de enviar anexo.

 

Procurei e só encontrei em PHP. Testei e funcionou numa boa, tudo certinho. Só que surgiu uma dúvida básica, que deve estar na cara, mas não enxergo porque não manjo:

 

Preciso incluir novos campos no form. Cheguei a fazer isso mas ele passou a não funcionar. Então acredito que devo mesmo mudar algo na parte da programação.

 

Segue abaixo o código original, intacto, que funciona:

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>formulario+ anexo</title>
<style type="text/css">
<!--
.style2 {
font-family: Arial, Helvetica, sans-serif;
font-size: x-small;
}
.style3 {font-size: xx-small}
-->
</style>
</head>

<body>
<form name="form1" method="post" enctype="multipart/form-data" action="<?= $_SERVER['PHP_SELF'];?>?act=enviar">
<p class="style2" style="word-spacing: 0; margin: 0">Nome</p>
<p class="style2" style="word-spacing: 0; margin: 0">
<input type="text" name="nome">
</p>
<p class="style2" style="word-spacing: 0; margin: 0">E-Mail</p>
<p class="style2" style="word-spacing: 0; margin: 0">
<input name="de" type="text" id="de">
</p>
<p class="style2" style="word-spacing: 0; margin: 0">Assunto</p>
<p class="style2" style="word-spacing: 0; margin: 0">
<input type="text" name="assunto">
</p>
<p class="style2" style="word-spacing: 0; margin: 0">Anexo</p>
<p class="style2" style="word-spacing: 0; margin: 0">
<input type="file" name="anexo">
O arquivo deverá ter no máximo 3Mb. </p>
<p class="style2" style="word-spacing: 0; margin: 0">Mensagem</p>
<p class="style2" style="word-spacing: 0; margin: 0">
 <textarea name="msg" cols="50" rows="10"></textarea>
</p>
<p class="style2" style="word-spacing: 0; margin: 0"></p>
<input type="hidden" value="hunger@lacerta.com.br" name="email">
<p class="style2" style="word-spacing: 0; margin: 0">
  <input type="submit" name="Submit" value="Enviar">
  <input name="reset" type="reset" id="reset" value="Limpar">
</p>
</form>


<?
if ($act == "enviar"){
$mime_list = array(   "html"=>"text/html",
					 "htm"=>"text/html",
		 "txt"=>"text/plain",
		 "rtf"=>"text/enriched",
		 "csv"=>"text/tab-separated-values",
		 "css"=>"text/css",
		 "gif"=>"image/gif",
	  "doc"=>"application/msword",
	  "jpeg"=>"image/jpeg",
	  "jpg"=>"image/jpeg",
	  "jpe"=>"image/jpeg",
	  "exe"=>"application/octet-stream",
	  "mid"=>"audio/midi",
	  "midi"=>"audio/midi",
	  "mov"=>"video/quicktime",
	  "movie"=>"video/x-sgi-movie",
	  "mp3"=>"audio/mpeg",
	  "mpeg"=>"video/mpeg",
	  "mpg"=>"video/mpeg",
	  "mpga"=>"video/mpeg",
	  "png"=>"image/png",
	  "pps"=>"application/mspowerpoint",
	  "ppt"=>"application/mspowerpoint",
	  "ppz"=>"application/mspowerpoint",
	  "qt"=>"video/quicktime",
	  "ra"=>"audio/x-realaudio",
	  "rgb"=>"image/x-rgb",
	  "tif"=>"image/tiff",
	  "tiff"=>"image/tiff",
	  "wav"=>"audio/x-wav",
	  "swf"=>"application/x-shockwave-flash",
	  "zip"=>"application/zip",
	  );


$ABORT = FALSE;

$boundary = "XYZ-" . date(dmyhms) . "-ZYX";

$message = "--$boundary\n";
$message .= "Content-Transfer-Encoding: 8bits\n";
$message .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n";
$message .= "Enviado em ". date("d/m/Y"). "<P>Confira os dados:<P>
		Nome: " .$_POST['nome']. "<BR>
		Email: " .$_POST['de']. "<BR>
		Mensagem:<BR>"
   .nl2br($_POST['msg']). "<P>";
$message .= "\n";

$attachments[1] = $anexo;

foreach ($attachments as $key => $full_path) {
if ($full_path !='') {
	 if (file_exists($full_path)){
		   if ($fp = fopen($full_path,"rb")) {
  if ((filesize($full_path)/1024) > "3000"){
				   echo "O arquivo que você tentou anexar, possui mais que 3MB. Por favor, tente um arquivo menor.";
				   exit;
}
				   $filename = array_pop(explode(chr(92),$full_path));
				   $contents = fread($fp,filesize($full_path));
				   $encoded = base64_encode($contents);
				   $encoded_split = chunk_split($encoded);
				   fclose($fp);
				   $message .= "--$boundary\n";
				   $message .= "Content-Type: $anexo_type\n";
				   $message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n";
				   $message .= "Content-Transfer-Encoding: base64\n\n";
				   $message .= "$encoded_split\n";
		   }
		   else {
		   echo "Impossível abrir o arquivo$key: $filename";
		   $ABORT = TRUE;
		   }
	 }
	 else {
	 echo "O arquivo$key não existe: $filename";
	 $ABORT = TRUE;
	 }

}
}

$message .= "--$boundary--\r\n";


$headers  = "MIME-Version: 1.0\r\n";
$headers .= "From: <".$_POST['de'].">\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\" charset=iso-8859-1\r\n";
$mensagem = mail($_POST['email'], $assunto, $message, $headers);

if ($mensagem) {
  header("Location:obrigado_cadastro.asp");
} else {
  print "O envio da mensagem falhou!";
}

}

?>
</body>
</html>

Estou fuçando aqui, mas quem puder dar um help, será de enorme ajuda! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]'s

 

Hunger.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para cada novo campo que você adicionar no formulario tipo

 

<input type="text" name="novocampo">

você adiciona lá no código de envio:

 

Mais Um: " .$_POST['novocampo']. "<BR>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maravilha Maicon!

 

Falei que era simples...rs.... agora já aprendi também.

 

fiz tudo e funionou Ok, o único problema que surgiu agora é que antes, o redirecionamento da página estava funcionando, e agora que adicionei os campos, parou.

 

O email é enviado corretamente, mas no navegador fica a mesma página, não redirecona.......será que isso tem lógica?!

 

Se quiser testar lá publicado: www.sakura.com.br/novosite/contato.php

 

Estou fuçando aqui...

 

Valew! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.