Guest User

Untitled

a guest
Nov 14th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.74 KB | None | 0 0
  1. Notice: Undefined index: frm_ok in E:Website[caminho do servidor]formgamer.php on line 2
  2.  
  3. Notice: Undefined index: Nome do Remetente in E:Website[caminho do servidor]formgamer.php on line 3
  4.  
  5. Notice: Undefined index: email in E:Website[caminho do servidor]formgamer.php on line 4
  6.  
  7. Notice: Undefined index: destino in E:WebsiteE:Website[caminho do servidor]formgamer.php on line 6
  8.  
  9. <?php
  10. $subm = $_POST['frm_ok']; // Váriavel que indica que o formulário foi submetido
  11. $name = $_POST['Nome do Remetente']; // Nome do remetente(Emissor)
  12. $mail = $_POST['email']; // Segue o endereço de email do remetente
  13. $__sj = "Formulário de Contato"; // Informe um assunto para a mensagem
  14. $__to = $_POST['destino']; // Defina o email do destinatário(Receptor), para mais de um separe-os com vírgula
  15. // Verifico se o formulário foi submetido
  16. if(isset($subm)):
  17. // Descomente a linha abaixo, se você quiser analisar as variáveis que estão sendo passadas pelo formulário via post
  18. //echo "<pre>",print_r($_POST),"</pre>";
  19. // Filtro algumas váriaveis passadas
  20. $find = "/(content-type|bcc:|cc:)/i";
  21. if(preg_match($find, $name) || preg_match($find, $mail))
  22. exit("<h3>Sem meta/header inclusões, por favor.</h3>");
  23. // Valido o email do remetente, usando expressão regular
  24. $regex = "^([[:alnum:]]+)([-._]([[:alnum:]]+))*[@]([[:alnum:]]+)([-._]([[:alnum:]]+))*[.]([[:alnum:]]){2}([[:alnum:]])?$";
  25. if(isset($mail) && !ereg($regex, $mail))
  26. $erro = 1;
  27. // Mensagem formatada, enviada no corpo do email
  28. $html = "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  29. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-BR" lang="pt-BR">
  30. <head>
  31. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  32. <style>
  33. body {background:#FFFFFF;}
  34. a, a:link {color:#5b6105; text-decoration:none;}
  35. #tab {margin:0; padding:0px; width:500px; border:1px solid #8F8E96; padding:10px;}
  36. #tab tr {background:#F6F6F6; }
  37. #tab td {color:#000000; font: normal 11px arial, helvetica, sans-serif; border:dashed 1px #DDD; padding:30px;}
  38. </style>
  39. </head>
  40. <body>
  41. <br />
  42. <table border='0' cellspacing='10' cellpadding='0' id='tab' align='center'>
  43. <tr>
  44. <td>
  45. <b>Nome:</b> {$name}<br />
  46. <b>Email:</b> {$mail}<br />
  47. <b>Telefone:</b> {$_POST['telefone']}<br /><br />
  48. <b>Mensagem:</b> {$_POST['mensagem']}<br />
  49. </td>
  50. </tr>
  51. </table>
  52. <br />
  53. </body>
  54. </html>
  55. ";
  56. // Resolvo a diferença de quebra de linhas, entre o Linux e o Windows
  57. $snap = (PHP_OS == "Linux")?"n":((PHP_OS == "WINNT")?"rn":exit());
  58. // Verifico se o formulário postado, possui arquivos anexos
  59. $file = (isset($_FILES["arquivo"]) && in_array("0",$_FILES["arquivo"]["error"]))?$_FILES["arquivo"]:FALSE;
  60. // Executo a condição seguinte, se identificar um ou mais anexos junto a mensagem
  61. if($file){
  62. // É removido da matriz os anexos falsos
  63. for($x=0; $x<count($_FILES["arquivo"]["name"]); $x++):
  64. if(empty($file['name'][$x])){
  65. unset($file['name'][$x]);
  66. unset($file['size'][$x]);
  67. unset($file['type'][$x]);
  68. unset($file['tmp_name'][$x]);
  69. unset($file['error'][$x]);
  70. }else{
  71. $attach[] = array(
  72. $file['name'][$x],
  73. $file['size'][$x],
  74. $file['type'][$x],
  75. $file['tmp_name'][$x]
  76. );
  77. }
  78. endfor;
  79. $boundary = "==Multipart_Boundary_x".md5(time())."x";
  80. $body = stripslashes($html);
  81. // Criamos os cabeçalhos MIME utilizados para separar as partes da mensagem MIME
  82. $html = "--".$boundary.$snap;
  83. $html.= "Content-Transfer-Encoding: 8bits".$snap;
  84. $html.= "Content-Type: text/html; charset="ISO-8859-1"".$snap.$snap;
  85. $html.= $body.$snap;
  86. $html.= "--".$boundary.$snap;
  87. for($i=0; $i<sizeof($attach); $i++):
  88. if(is_uploaded_file($attach[$i][3])){
  89. $Name = $attach[$i][0];
  90. $Size = $attach[$i][1];
  91. $Type = $attach[$i][2];
  92. $Temp = $attach[$i][3];
  93. if((strlen($Name)>1) && ($Size>0)){
  94. $fopen = fopen($Temp,"rb"); // Fazemos a leitura do arquivo a ser anexado em leitura binária(rb)
  95. $fread = fread($fopen, filesize($Temp));
  96. $cript = base64_encode($fread); // Codificamos o arquivo de dados com Base64
  97. $close = fclose($fopen);
  98. $chunk = chunk_split($cript); // Convertemos a saída de base64_encode(), conforme semântica RFC 2045
  99. $html.= "Content-Disposition: attachment; filename="{$Name}"".$snap;
  100. $html.= "Content-Type: {$Type}; name="{$Name}"".$snap;
  101. $html.= "Content-Transfer-Encoding: base64".$snap.$snap;
  102. $html.= $chunk.$snap;
  103. if(sizeof($attach) == $i+1) $html.= "--".$boundary."--".$snap;
  104. else $html.= "--".$boundary.$snap;
  105. }
  106. }
  107. endfor;
  108. // Adiciono os cabeçalhos de um arquivo anexado
  109. $head = "MIME-Version: 1.0".$snap;
  110. $head.= "From: {$mail}".$snap;
  111. $head.= "Content-type: multipart/mixed; boundary="{$boundary}"".$snap;
  112. $head.= $boundary.$snap;
  113. }
  114. // Caso contrário, enviamos uma mensagem html, sem anexos
  115. else{
  116. $head = "MIME-Version: 1.0".$snap;
  117. $head.= "From: {$mail}".$snap;
  118. $head.= "Content-type: text/html; charset="ISO-8859-1"".$snap;
  119. }
  120. endif;
  121. ?>
  122. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  123. <html xmlns="http://www.w3.org/1999/xhtml">
  124. <head>
  125. <title>Multi-Anexos</title>
  126. <link href="_css/typo.css" rel="stylesheet" type="text/css" />
  127. </head>
  128. <body>
  129. <div id="div">
  130. <h1>Orcamentos - Provas - Outros Contatos</h1>
  131. <?
  132. // Se o formulário for enviado sem a presença do email do remetente, é exibido uma mensagem de retorno
  133. if(isset($erro) && $erro==1):
  134. ?>
  135. <div style='padding:10px;'>
  136. <a href='javascript:history.back(1)'>Clique aqui para retornar e informe um <b>email válido</b>!</a>
  137. </div>
  138. <?
  139. // Faço o envio da mensagem, se o formulário for submetido e passar no teste anterior
  140. elseif(isset($subm)):
  141. ?>
  142. <div style='padding:10px;'>
  143. <?
  144. $msg1 = "<h2><b>Sua mensagem foi enviada com sucesso!</b></h2>";
  145. $msg2 = "<h2><b style='color:#e23b30;'>Sua mensagem não pôde ser enviada.</b><br /><br />Por favor tente novamente mais tarde.</h2>";
  146. $conf = @mail($__to, $__sj, $html, $head);
  147. echo ($conf)?$msg1:$msg2;
  148. ?>
  149. <br />
  150. <a href='javascript:history.back(1)'>Clique aqui para retornar!</a>
  151. </div>
  152. <?
  153. // Exibe o formulário para preenchimento
  154. else:
  155. ?>
  156. <p>Preencha o formulario abaixo para enviar sua mensagem.<br />Necessario preencher todos os campos.</p>
  157. <form id="frm" action="<?=basename(__FILE__)?>" method="post" enctype="multipart/form-data">
  158. <input type="hidden" name="frm_ok" />
  159. <fieldset>
  160. <legend>Formulario de Contato</legend>
  161. <p>
  162. <label for="nome">Nome:</label>
  163. <input id="nome" name="nome" onKeyDown="if(event.keyCode==13) event.keyCode=9;" />
  164. </p>
  165. <p>
  166. <label for="email">E-Mail:</label>
  167. <input id="email" name="email" onKeyDown="if(event.keyCode==13) event.keyCode=9;" />
  168. </p>
  169. <p>
  170. <label for="telefone">Telefone:</label>
  171. <input id="telefone" name="telefone" onKeyDown="if(event.keyCode==13) event.keyCode=9;" />
  172. </p>
  173. <p><label for="para">Para:</label>
  174. <select name="destino" class="texto">
  175. <option value="danielgomesrj@gmail.com" selected>Selecione um Setor</option>
  176. <option value="danielgomesrj@gmail.com">Provas</option>
  177. <option value="danielgomesrj@gmail.com">Orçamento</option>
  178. <option value="danielgomesrj@gmail.com">Administração do Site</option>
  179. </select>
  180. <p>
  181. <label for="mensagem">Anexo #1:</label>
  182. <input type="file" name="arquivo[]" size="50" class="file" />
  183. </p>
  184. <p>
  185. <label for="mensagem">Anexo #2:</label>
  186. <input type="file" name="arquivo[]" size="50" class="file" />
  187. </p>
  188. <p>
  189. <label for="mensagem">Anexo #3:</label>
  190. <input type="file" name="arquivo[]" size="50" class="file" />
  191. </p>
  192. <p>
  193. <label for="mensagem">Mensagem:</label>
  194. <textarea id="mensagem" name="mensagem" class="text"></textarea>
  195. </p>
  196. <p style="text-align:right; padding-right:10px;">
  197. <input type="submit" value="ENVIAR" class="send" />
  198. </p>
  199. </fieldset>
  200. </form>
  201. <?
  202. endif;
  203. ?>
  204. </div>
  205. </body>
  206. </html>
  207.  
  208. if (isset($_POST["frm_ok"])) {
  209. $subm = $_POST['frm_ok'];
  210. }
Add Comment
Please, Sign In to add comment