Ir para conteúdo

Envio.php Confirmando a Doação direto pro seu e-mail.


Posts Recomendados

Opa galera do XTibia, eu mais uma vez trazendo um bom e útil tutorial.
Esse tutorial é pra quem tem a necessidade de uma pagina que confirme uma doação feita e automaticamente essa confirmação seja direcionada ao e-mail do administrador!
Bom galera é um php simples, não tenho muito conhecimento com php, o que estou postando agora foi o resultado de algumas pesquisas e pouquinho de dor de cabeça mais saiu do jeito que eu queria.
OBS: A imagem anexada chega no seu e-mail como um arquivo sem formato mais pode abrir com o Paint ou o Visualizador de imagem que abre normal!
Lembrando que é obrigatório e necessário que toda parte de apache, php e send-mail estejam funcionando corretamente no seu servidor, como eu utilizo Linux apenas instalei apache2, php5 e sendmail.
Comandos que eu utilizei no Linux:
apt-get install apache2
apt-get install php5
apt-get install sendmail
killall -9 apache2
/etc/init.d/apache2 start
Outra coisa, dificilmente esse sistema funcione no seu computador, localhost, é necessário um configuração adequada, eu utilizo um servidor dedicado não tive dor de cabeça em relação a isso.
Vamos ao que interessa...
Crie dois arquivos .php chamados, confirmar.php e enviar.php, adicione os dois na pasta htdocs ou quem usa linux pasta www, quem utiliza o Novo Gesior ACC joga o confirmar.php na pasta pages e o enviar.php na pagina htdocs ou www.
Dentro do arquivo confirmar.php você adiciona os seguintes code:
CONFIRMAR.PHP SEM ANEXO:

  1. <form name="contactform" method="post" action="enviar.php">
  2. <table width="450px">
  3. <tr>
  4. <td valign="top">
  5. <label for="character">Character Name:</label>
  6. </td>
  7. <td valign="top">
  8. <input type="text" name="character" maxlength="50" size="30">
  9. </td>
  10. </tr>
  11. <tr>
  12. <td valign="top">
  13. <label for="valordoado">Valor Doado:</label>
  14. </td>
  15. <td valign="top">
  16. <input type="text" name="valordoado" maxlength="50" size="30">
  17. </td>
  18. </tr>
  19. <tr>
  20. <td valign="top">
  21. <label for="forma">Forma de Doa&ccedil;&atilde;o:</label>
  22. </td>
  23. <td valign="top">
  24. <select name="forma">
  25. <option>Selecione...</option>
  26. <option>Pagseguro</option>
  27. <option>Paypal</option>
  28. <option>Moip</option>
  29. <option>Banco do Brasil</option>
  30. <option>Caixa Enconomica</option>
  31. <option>Bradesco</option>
  32. <option>Itau</option>
  33. </select>
  34. </td>
  35. </tr>
  36. <tr>
  37. <td valign="top">
  38. <label for="email">Email:</label>
  39. </td>
  40. <td valign="top">
  41. <input type="text" name="email" maxlength="80" size="30">
  42. </td>
  43. </tr>
  44. <tr>
  45. <td valign="top">
  46. <label for="data">Data da Doa&ccedil;&atilde;o:</label>
  47. </td>
  48. <td valign="top">
  49. <input type="text" name="data" maxlength="30" size="30">
  50. </td>
  51. </tr>
  52. <tr>
  53. <td valign="top">
  54. <label for="observacoes">Observa&ccedil;&otilde;es:</label>
  55. </td>
  56. <td valign="top">
  57. <textarea name="observacoes" maxlength="1000" cols="25" rows="6"></textarea>
  58. </td>
  59. </tr>
  60. <tr>
  61. <td colspan="2" style="text-align:center">
  62. <input type="submit" value="Submit">
  63. </td>
  64. </tr>
  65. </table>
  66. </form>

CONFIRMAR.PHP COM ANEXO:

  1. <html>
  2. <head>
  3. <script language="javascript" type="text/javascript">
  4. function checa_formulario(email){
  5. if (email.nome.value == ""){
  6. alert("Por Favor não deixe o seu nome em branco!!!");
  7. email.nome.focus();
  8. return (false);
  9. }
  10. if (email.email_from.value == ""){
  11. alert("Por Favor não deixe o seu email em branco!!!");
  12. email.email_from.focus();
  13. return (false);
  14. }
  15. if (email.email.value == ""){
  16. alert("não deixe o email destinatario em branco!!!");
  17. email.email.focus();
  18. return (false);
  19. }
  20. if (email.assunto.value == ""){
  21. alert("não deixe o assunto em branco!!!");
  22. email.assunto.focus();
  23. return (false);
  24. }
  25. }
  26. </script>
  27. <title>Enviando texto</title>
  28. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  29. <style type="text/css">
  30. </style>
  31. </head>
  32. <body onLoad="document.email.nome.focus();">
  33. <form onSubmit="return checa_formulario(this)" action="enviar.php" method="post" enctype="multipart/form-data" name="email">
  34. <h1 align="center" class="style1">Confirmar doa&ccedil;&atilde;o!</h1>
  35. <table width="32%" border="0" align="center">
  36. <tr>
  37. <td valign="top">
  38. <label for="character">Character Name:</label>
  39. </td>
  40. <td valign="top">
  41. <input type="text" name="character" maxlength="50" size="30">
  42. </td>
  43. </tr>
  44. <tr>
  45. <td valign="top">
  46. <label for="valordoado">Valor Doado:</label>
  47. </td>
  48. <td valign="top">
  49. <input type="text" name="valordoado" maxlength="50" size="30">
  50. </td>
  51. </tr>
  52. <tr>
  53. <td valign="top">
  54. <label for="forma">Forma de Doação:</label>
  55. </td>
  56. <td valign="top">
  57. <select name="forma">
  58. <option>Selecione...</option>
  59. <option>Pagseguro</option>
  60. <option>Paypal</option>
  61. <option>Moip</option>
  62. <option>Banco do Brasil</option>
  63. <option>Caixa Enconomica</option>
  64. <option>Bradesco</option>
  65. <option>Itau</option>
  66. </select>
  67. </td>
  68. </tr>
  69. <tr>
  70. <td valign="top">
  71. <label for="anexo">Anexo:</label>
  72. </td>
  73. <td valign="top">
  74. <input type="file" name="arquivo" id="arquivo" />
  75. </td>
  76. </tr>
  77. <tr>
  78. <td valign="top">
  79. <label for="email">Email:</label>
  80. </td>
  81. <td valign="top">
  82. <input type="text" name="email" maxlength="80" size="30">
  83. </td>
  84. </tr>
  85. <tr>
  86. <td valign="top">
  87. <label for="data">Data da Doação:</label>
  88. </td>
  89. <td valign="top">
  90. <input type="text" name="data" maxlength="30" size="30">
  91. </td>
  92. </tr>
  93. <tr>
  94. <td valign="top">
  95. <label for="observacoes">Observações:</label>
  96. </td>
  97. <td valign="top">
  98. <textarea name="observacoes" maxlength="1000" cols="25" rows="6"></textarea>
  99. </td>
  100. </tr>
  101. <tr>
  102. <td colspan="2" style="text-align:center">
  103. <input type="submit" value="Submit">
  104. </td>
  105. </tr>
  106. </table>
  107. </form>
  108. </body>
  109. </html>

Dentro do arquivo enviar.php você adiciona os seguintes code:
ENVIAR.PHP SEM ANEXO:

  1. <?php
  2. if(isset($_POST['email'])) {
  3. $email_to = "natanbeckman@live.com"; // Seu e-mail
  4. $email_subject = "Você recebeu um e-mail com detalhes de uma doação. YourServer!";
  5. function died($error) {
  6. echo "Lamentamos muito, mas houve erro (s) encontrados com a forma que você enviou. ";
  7. echo "Esses erros aparecem abaixo.<br /><br />";
  8. echo $error."<br /><br />";
  9. echo "Por favor, volte e corrija esses erros.<br /><br />";
  10. die();
  11. }
  12. if(!isset($_POST['character']) ||
  13. !isset($_POST['valordoado']) ||
  14. !isset($_POST['forma']) ||
  15. !isset($_POST['email']) ||
  16. !isset($_POST['data']) ||
  17. !isset($_POST['observacoes']))
  18. {
  19. died('Lamentamos, mas não parece ser um problema com a forma que você enviou.');
  20. }
  21. $character = $_POST['character'];
  22. $valordoado = $_POST['valordoado'];
  23. $forma = $_POST['forma'];
  24. $email_from = $_POST['email'];
  25. $data = $_POST['data'];
  26. $observacoes = $_POST['observacoes'];
  27. $error_message = "";
  28. $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  29. if(!preg_match($email_exp,$email_from)) {
  30. $error_message .= 'O endereço de email que você digitou não parece ser válido.<br />';
  31. }
  32. $string_exp = "/^[A-Za-z .'-]+$/";
  33. if(!preg_match($string_exp,$character)) {
  34. $error_message .= 'O character name que você digitou não parece ser válido.<br />';
  35. }
  36. if(strlen($error_message) > 0) {
  37. died($error_message);
  38. }
  39. $email_message = "=======Detalhes da Doação!=======\n\n";
  40. function clean_string($string) {
  41. $bad = array("content-type","bcc:","to:","cc:","href");
  42. return str_replace($bad,"",$string);
  43. }
  44. $email_message .= "Character Name: ".clean_string($character)."\n";
  45. $email_message .= "Valor Doado: ".clean_string($valordoado)."\n";
  46. $email_message .= "Forma de Doação: ".clean_string($forma)."\n";
  47. $email_message .= "Email: ".clean_string($email_from)."\n";
  48. $email_message .= "Data: ".clean_string($data)."\n";
  49. $email_message .= "Observações: ".clean_string($observacoes)."\n";
  50. $headers = 'From: '.$email_from."\r\n".
  51. 'Reply-To: '.$email_from."\r\n" .
  52. 'X-Mailer: PHP/' . phpversion();
  53. $status = @mail($email_to, $email_subject, $email_message, $headers);
  54. if($status) {
  55. echo "<script> alert('Confimação de doação enviada com sucesso!'); </script>";
  56. }
  57. else
  58. {
  59. echo "<script> alert('Falha no envio!'); </script>";
  60. }
  61. echo "<script> window.location.href = 'http://localhost'; </script>" ; // Site do seu server
  62. }
  63. ?>

ENVIAR.PHP COM ANEXO:

  1. <?
  2. $character = $_POST["character"];
  3. $valordoado = $_POST["valordoado"];
  4. $forma = $_POST["forma"];
  5. $email = $_POST["email"];
  6. $data = $_POST["data"];
  7. $observacoes = $_POST["observacoes"];
  8. $mensagem = "
  9. Character: $character<br>
  10. Valor Doado: $valordoado<br>
  11. Forma de Doação: $forma<br>
  12. Data da Doação: $data<br>
  13. E-mail: $email<br>
  14. Observações: $observacoes<br>";
  15. $Para = "natanbeckman@live.com";
  16. $Assunto = "Confirmação de doação do Server!";
  17. $tiposPermitidos= array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png');
  18. $tamanhoPermitido = 4194304; //4mb
  19. $arqName = $_FILES['arquivo']['name'];
  20. $arqType = $_FILES['arquivo']['type'];
  21. $arqSize = $_FILES['arquivo']['size'];
  22. $arqTemp = $_FILES['arquivo']['tmp_name'];
  23. $arqError = $_FILES['arquivo']['error'];
  24. if($arqError == 0){
  25. if (array_search($arqType, $tiposPermitidos) === false) {
  26. echo 'O tipo de arquivo enviado é inválido!';
  27. }else if ($arqSize > $tamanhoPermitido) {
  28. echo 'O tamanho do arquivo enviado é maior que o limite!';
  29. } else {
  30. $fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");
  31. $Anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"]));
  32. $Anexo = base64_encode($Anexo);
  33. fclose($fp);
  34. $Anexo = chunk_split($Anexo);
  35. $boundary = "XYZ-" . date("dmYis") . "-ZYX";
  36. $Corpo = "--$boundary\n";
  37. $Corpo .= "Content-Transfer-Encoding: 8bits\n";
  38. $Corpo .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; //plain
  39. $Corpo .= "$mensagem\n";
  40. $Corpo .= "--$boundary\n";
  41. $Corpo .= "Content-Type: ".$arqName["type"]."\n";
  42. $Corpo .= "Content-Disposition: attachment; filename=\"".$arqName["name"]."\"\n";
  43. $Corpo .= "Content-Transfer-Encoding: base64\n\n";
  44. $Corpo .= "$Anexo\n";
  45. $Corpo .= "--$boundary--\r\n";
  46. $Headers = "MIME-Version: 1.0\n";
  47. $Headers .= "From: \"$Nome\" <$email>\r\n";
  48. $Headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
  49. $Headers .= "$boundary\n";
  50. mail($Para,$Assunto,$Corpo,$Headers);
  51. echo"<script> alert('Mensagem enviada com sucesso!'); </script>";}
  52. } else {
  53. echo"<script> alert('não foi possível enviar sua mensagem.'); </script>";
  54. }
  55. echo "<script> window.location.href = 'http://localhost'; </script>"; // Site do seu server
  56. ?>

O que deve ser alterado:
Enviar.php
Linhas, 3 e 60
       03.  $email_to = "natanbeckman@live.com"; // Seu e-mail
       60.   echo "<script> window.location.href = 'http://localhost'; </script>" ; // Site do seu server
Confirmar.php
Caso você utilize a opção Login: então altere na linha. 3
       03.      <label for="character">Character Name:</label>
Em index.php adicione:
case "confirmar";
        $subtopic = "confirmar";
        $topic = "Confirmar";
        include("confirmar.php");
break;

Em layout.php adicione abaixo de:

                                <a href='?subtopic=shopsystem&action=show_history'>
                                        <div id='submenu_show_history' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'>
                                                <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
                                                <div id='ActiveSubmenuItemIcon_show_history' class='ActiveSubmenuItemIcon'style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div>
                                                <div class='SubmenuitemLabel'>History</div>
                                                <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
                                        </div>
                                </a>
Adicione:
                                <a href='?subtopic=confirmar'>
                                        <div id='submenu_confirmar' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'>
                                        <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
                                                <div id='ActiveSubmenuItemIcon_confirmar' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div>
                                                <div class='SubmenuitemLabel'>Confirmar</div>
                                                <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
                                        </div>
                                </a>
Dessa forma somente que tiver com ACC logada vai ter acesso a pagina.
E pronto galera terminamos, espero que todos façam atentamente pra sair tudo perfeito, espero ter ajudado.
Qualquer pessoa pode fazer copia deste tutorial desde que mencione os devidos créditos.
Vejam algumas imagens como ficou o meu:
SEM ANEXO:
3t78.jpg
COM ANEXO:
x5gx.jpg
COMO CHEGA NO E-MAIL:
yb1u.jpg
5y9r.png
Creditos:
Natanael Beckman
Editado por GM Bekman
Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

me ajuda pf

 

botei no site do meu ot

 

e na hora de ir na pag de confirmacao

 

so ta escrito confirmar e mais nada, so o titulo da pag e a pag ta em branco

Link para o comentário
Compartilhar em outros sites

  • 1 year later...
×
×
  • Criar Novo...