Natanael Beckman 223 Postado Março 13, 2014 Share Postado Março 13, 2014 (editado) 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: <form name="contactform" method="post" action="enviar.php"> <table width="450px"> <tr> <td valign="top"> <label for="character">Character Name:</label> </td> <td valign="top"> <input type="text" name="character" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="valordoado">Valor Doado:</label> </td> <td valign="top"> <input type="text" name="valordoado" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="forma">Forma de Doação:</label> </td> <td valign="top"> <select name="forma"> <option>Selecione...</option> <option>Pagseguro</option> <option>Paypal</option> <option>Moip</option> <option>Banco do Brasil</option> <option>Caixa Enconomica</option> <option>Bradesco</option> <option>Itau</option> </select> </td> </tr> <tr> <td valign="top"> <label for="email">Email:</label> </td> <td valign="top"> <input type="text" name="email" maxlength="80" size="30"> </td> </tr> <tr> <td valign="top"> <label for="data">Data da Doação:</label> </td> <td valign="top"> <input type="text" name="data" maxlength="30" size="30"> </td> </tr> <tr> <td valign="top"> <label for="observacoes">Observações:</label> </td> <td valign="top"> <textarea name="observacoes" maxlength="1000" cols="25" rows="6"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:center"> <input type="submit" value="Submit"> </td> </tr> </table> </form> CONFIRMAR.PHP COM ANEXO: <html> <head> <script language="javascript" type="text/javascript"> function checa_formulario(email){ if (email.nome.value == ""){ alert("Por Favor não deixe o seu nome em branco!!!"); email.nome.focus(); return (false); } if (email.email_from.value == ""){ alert("Por Favor não deixe o seu email em branco!!!"); email.email_from.focus(); return (false); } if (email.email.value == ""){ alert("não deixe o email destinatario em branco!!!"); email.email.focus(); return (false); } if (email.assunto.value == ""){ alert("não deixe o assunto em branco!!!"); email.assunto.focus(); return (false); } } </script> <title>Enviando texto</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> </style> </head> <body onLoad="document.email.nome.focus();"> <form onSubmit="return checa_formulario(this)" action="enviar.php" method="post" enctype="multipart/form-data" name="email"> <h1 align="center" class="style1">Confirmar doação!</h1> <table width="32%" border="0" align="center"> <tr> <td valign="top"> <label for="character">Character Name:</label> </td> <td valign="top"> <input type="text" name="character" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="valordoado">Valor Doado:</label> </td> <td valign="top"> <input type="text" name="valordoado" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="forma">Forma de Doação:</label> </td> <td valign="top"> <select name="forma"> <option>Selecione...</option> <option>Pagseguro</option> <option>Paypal</option> <option>Moip</option> <option>Banco do Brasil</option> <option>Caixa Enconomica</option> <option>Bradesco</option> <option>Itau</option> </select> </td> </tr> <tr> <td valign="top"> <label for="anexo">Anexo:</label> </td> <td valign="top"> <input type="file" name="arquivo" id="arquivo" /> </td> </tr> <tr> <td valign="top"> <label for="email">Email:</label> </td> <td valign="top"> <input type="text" name="email" maxlength="80" size="30"> </td> </tr> <tr> <td valign="top"> <label for="data">Data da Doação:</label> </td> <td valign="top"> <input type="text" name="data" maxlength="30" size="30"> </td> </tr> <tr> <td valign="top"> <label for="observacoes">Observações:</label> </td> <td valign="top"> <textarea name="observacoes" maxlength="1000" cols="25" rows="6"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:center"> <input type="submit" value="Submit"> </td> </tr> </table> </form> </body> </html> Dentro do arquivo enviar.php você adiciona os seguintes code: ENVIAR.PHP SEM ANEXO: <?php if(isset($_POST['email'])) { $email_to = "natanbeckman@live.com"; // Seu e-mail $email_subject = "Você recebeu um e-mail com detalhes de uma doação. YourServer!"; function died($error) { echo "Lamentamos muito, mas houve erro (s) encontrados com a forma que você enviou. "; echo "Esses erros aparecem abaixo.<br /><br />"; echo $error."<br /><br />"; echo "Por favor, volte e corrija esses erros.<br /><br />"; die(); } if(!isset($_POST['character']) || !isset($_POST['valordoado']) || !isset($_POST['forma']) || !isset($_POST['email']) || !isset($_POST['data']) || !isset($_POST['observacoes'])) { died('Lamentamos, mas não parece ser um problema com a forma que você enviou.'); } $character = $_POST['character']; $valordoado = $_POST['valordoado']; $forma = $_POST['forma']; $email_from = $_POST['email']; $data = $_POST['data']; $observacoes = $_POST['observacoes']; $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'O endereço de email que você digitou não parece ser válido.<br />'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$character)) { $error_message .= 'O character name que você digitou não parece ser válido.<br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "=======Detalhes da Doação!=======\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "Character Name: ".clean_string($character)."\n"; $email_message .= "Valor Doado: ".clean_string($valordoado)."\n"; $email_message .= "Forma de Doação: ".clean_string($forma)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Data: ".clean_string($data)."\n"; $email_message .= "Observações: ".clean_string($observacoes)."\n"; $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); $status = @mail($email_to, $email_subject, $email_message, $headers); if($status) { echo "<script> alert('Confimação de doação enviada com sucesso!'); </script>"; } else { echo "<script> alert('Falha no envio!'); </script>"; } echo "<script> window.location.href = 'http://localhost'; </script>" ; // Site do seu server } ?> ENVIAR.PHP COM ANEXO: <? $character = $_POST["character"]; $valordoado = $_POST["valordoado"]; $forma = $_POST["forma"]; $email = $_POST["email"]; $data = $_POST["data"]; $observacoes = $_POST["observacoes"]; $mensagem = " Character: $character<br> Valor Doado: $valordoado<br> Forma de Doação: $forma<br> Data da Doação: $data<br> E-mail: $email<br> Observações: $observacoes<br>"; $Para = "natanbeckman@live.com"; $Assunto = "Confirmação de doação do Server!"; $tiposPermitidos= array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png'); $tamanhoPermitido = 4194304; //4mb $arqName = $_FILES['arquivo']['name']; $arqType = $_FILES['arquivo']['type']; $arqSize = $_FILES['arquivo']['size']; $arqTemp = $_FILES['arquivo']['tmp_name']; $arqError = $_FILES['arquivo']['error']; if($arqError == 0){ if (array_search($arqType, $tiposPermitidos) === false) { echo 'O tipo de arquivo enviado é inválido!'; }else if ($arqSize > $tamanhoPermitido) { echo 'O tamanho do arquivo enviado é maior que o limite!'; } else { $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); $boundary = "XYZ-" . date("dmYis") . "-ZYX"; $Corpo = "--$boundary\n"; $Corpo .= "Content-Transfer-Encoding: 8bits\n"; $Corpo .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; //plain $Corpo .= "$mensagem\n"; $Corpo .= "--$boundary\n"; $Corpo .= "Content-Type: ".$arqName["type"]."\n"; $Corpo .= "Content-Disposition: attachment; filename=\"".$arqName["name"]."\"\n"; $Corpo .= "Content-Transfer-Encoding: base64\n\n"; $Corpo .= "$Anexo\n"; $Corpo .= "--$boundary--\r\n"; $Headers = "MIME-Version: 1.0\n"; $Headers .= "From: \"$Nome\" <$email>\r\n"; $Headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n"; $Headers .= "$boundary\n"; mail($Para,$Assunto,$Corpo,$Headers); echo"<script> alert('Mensagem enviada com sucesso!'); </script>";} } else { echo"<script> alert('não foi possível enviar sua mensagem.'); </script>"; } echo "<script> window.location.href = 'http://localhost'; </script>"; // Site do seu server ?> 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: COM ANEXO: COMO CHEGA NO E-MAIL: Creditos: Natanael Beckman Editado Março 29, 2014 por GM Bekman Link para o comentário Compartilhar em outros sites More sharing options...
kleitonalan321 6 Postado Março 13, 2014 Share Postado Março 13, 2014 vlw por postar isso aqui, vai ajuda bastante gente. Link para o comentário Compartilhar em outros sites More sharing options...
Faelzdanil 102 Postado Março 13, 2014 Share Postado Março 13, 2014 Tudo que queria, s2 Link para o comentário Compartilhar em outros sites More sharing options...
Jakson Souza 95 Postado Março 14, 2014 Share Postado Março 14, 2014 muito bom! Link para o comentário Compartilhar em outros sites More sharing options...
vital900 570 Postado Março 19, 2014 Share Postado Março 19, 2014 Aprovado e Movido! Link para o comentário Compartilhar em outros sites More sharing options...
mkbrabsolute 134 Postado Março 20, 2014 Share Postado Março 20, 2014 Linda meu querido! http://luminera-war.com/index.php?subtopic=confirmacao Link para o comentário Compartilhar em outros sites More sharing options...
Junior001 362 Postado Março 20, 2014 Share Postado Março 20, 2014 Realmente muito bom amigo parabéns Link para o comentário Compartilhar em outros sites More sharing options...
Natanael Beckman 223 Postado Março 22, 2014 Autor Share Postado Março 22, 2014 Obrigado galera!Ficou show mkbrabsolute. Link para o comentário Compartilhar em outros sites More sharing options...
kk44 0 Postado Abril 18, 2014 Share Postado Abril 18, 2014 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 More sharing options...
fksobral 0 Postado Julho 18, 2015 Share Postado Julho 18, 2015 natanael, vi que na explicação diz ser linux, funciona em windowns tbm ? quem souber, me informa tbm por gentileza. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados