Ir para conteúdo
Fórum Script Brasil

PiXwell

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que PiXwell postou

  1. PiXwell

    PHPMailer e Locaweb

    Bom dia, Tenho um site hospedado na Locaweb (Hospedagem Linux), e estou enviando um formulário de e-Mail via Ajax ... o envio está ocorrendo corretamente, o problema está na quantidade de mensagens. Ao invés de enviar apenas uma mensagem, está disparando 5 mensagens iguais, vejam a imagem "caixa de entrada" anexada à esse tópico. Script PHP: <?php require 'mailer/PHPMailerAutoload.php'; $mail_restaurante = new PHPMailer; $mail_cliente = new PHPMailer; // Campos do formulario $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS); $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_SPECIAL_CHARS); $dataReserva = filter_input(INPUT_POST, 'data-reserva', FILTER_SANITIZE_SPECIAL_CHARS); $horaReserva = filter_input(INPUT_POST, 'hora-reserva', FILTER_SANITIZE_SPECIAL_CHARS); $qtdPessoas = filter_input(INPUT_POST, 'qtd-pessoas', FILTER_SANITIZE_SPECIAL_CHARS); //==================================================== //Informacoes dos e-Mails **************************// //==================================================== $infoEmail['email'] = 'email@email.com.br'; $infoEmail['senha'] = 'secreto'; $infoEmail['assunto_restaurante'] = "Solicita&ccedil;&atilde;o de reserva para {$nome}"; $infoEmail['mensagem_restaurante'] = " <p>{$nome} com o e-mail {$email}, deseja efetuar uma reserva para o dia {$dataReserva}, hor&aacute;rio {$horaReserva} para {$qtdPessoas}.</p> <p> <b>Nome:</b> {$nome} <br> <b>e-Mail:</b> {$email} <br> <b>Data:</b> {$dataReserva} <br> <b>Hor&aacute;rio:</b> {$horaReserva} <br> <b>N&ordm; de pessoas:</b> {$qtdPessoas}<br> </p> "; $infoEmail['assunto_cliente'] = 'Restaurante :: Seu pedido foi recebido, aguarde nossa confirma&ccedil;&atilde;o'; $infoEmail['mensagem_cliente'] = " <p>Restaurante Romamia :: Seu pedido foi recebido, aguarde nossa confirma&ccedil;&atilde;o</p> <h3>Dados do seu pedido de reserva:</h3> <p> <b>Nome:</b> {$nome} <br> <b>e-Mail:</b> {$email} <br> <b>Data:</b> {$dataReserva} <br> <b>Hor&aacute;rio:</b> {$horaReserva} <br> <b>N&ordm; de pessoas:</b> {$qtdPessoas}<br> </p> "; //Regex formato da data $rgxFormatoData = '/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/[12][0-9]{3}$/'; preg_match($rgxFormatoData, $dataReserva, $matches); //Data atual $hoje = new DateTime( 'now', new DateTimeZone( 'America/Sao_Paulo')); $hojeMais2Dias = new DateTime(' +2 day'); //Campos preenchidos if(empty($nome) or empty($email) or empty($dataReserva) or empty($horaReserva) or empty($qtdPessoas)){ echo '<p style="color: red">Por favor, preencha todos os campos</p>'; } //A data combina com o formato permitido? 00/00/0000 elseif($matches){ //O dia escolhido obedece a regra de +2 dias? if($dataReserva < $hojeMais2Dias->format('d/m/Y')){ echo '<p style="color: red">Escolha uma data a partir de ' . $hojeMais2Dias->format('d/m/Y') . '</p>'; } //Enviar mensagem else { //======================================================== //Mensagem para o restaurante **************************// //======================================================== $mail->SMTPDebug = 2; $mail_restaurante->isSMTP(); // Set mailer to use SMTP $mail_restaurante->Host = 'email-ssl.com.br'; // Specify main and backup SMTP servers $mail_restaurante->SMTPAuth = true; // Enable SMTP authentication $mail_restaurante->Username = $infoEmail['email']; // SMTP username $mail_restaurante->Password = $infoEmail['senha']; // SMTP password $mail_restaurante->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail_restaurante->Port = 587; // TCP port to connect to $mail_restaurante->isHTML(true); // Set email format to HTML $mail_restaurante->setFrom($infoEmail['email']); $mail_restaurante->addAddress($infoEmail['email'], 'Restaurante'); // Add a recipient $mail_restaurante->Subject = $infoEmail['assunto_restaurante']; //Here is the subject $mail_restaurante->Body = $infoEmail['mensagem_restaurante'];//This is the HTML message if(!$mail_restaurante->send()) { echo 'Erro ao enviar e-amil para - Mailer Error: ' . $mail_cliente->ErrorInfo; } else { //==================================================== //Mensagem para o cliente **************************// //==================================================== $mail->SMTPDebug = 2; $mail_cliente->isSMTP(); // Set mailer to use SMTP $mail_cliente->Host = 'email-ssl.com.br'; // Specify main and backup SMTP servers $mail_cliente->SMTPAuth = true; // Enable SMTP authentication $mail_cliente->Username = $infoEmail['email']; // SMTP username $mail_cliente->Password = $infoEmail['senha']; // SMTP password $mail_cliente->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail_cliente->Port = 587; // TCP port to connect to $mail_cliente->isHTML(true); // Set email format to HTML $mail_cliente->setFrom($infoEmail['email']); $mail_cliente->addAddress($email, $nome); // Add a recipient $mail_cliente->Subject = $infoEmail['assunto_cliente']; //Here is the subject $mail_cliente->Body = $infoEmail['mensagem_cliente'];//This is the HTML message if(!$mail_cliente->send()) { echo 'Erro ao enviar e-amil para ' . $email . ' - Mailer Error: ' . $mail_cliente->ErrorInfo; } else { echo '<p style="color: green">Mensagem enviada com sucesso!</p>'; $mail_cliente->ClearAllRecipients(); }//else cliente $mail_restaurante->ClearAllRecipients(); }//else restaurante }//else validacao }//elseif matches Script JQuery: (function ($) { var form_reservas = $('#reservas'); var tema = '/wp-content/themes/restaurante/'; var script_reservas = tema + 'reservas/reservasRestaurante.php'; var status = $('#status-envio'); function retorno(data){ status.hide().html(data).fadeIn(); } //Ao clicar em Submit form_reservas.submit(function(event){ event.preventDefault(); var campos = form_reservas.serializeArray(); //Percorrendo os campos $.map(campos, function(campo){ // ====== Minha enorme validação :P } else { $.ajax({ type: "POST", url: script_reservas, data: campos, beforeSend: function(){ status.hide().html('<p style="color: #337AB7"><img src="'+ tema +'images/loading_icon.svg"> Enviando ...</p>').fadeIn(); }, error: retorno, success: retorno, complete: function(){form_reservas.get(0).reset();} }); } }); }); })(jQuery);
  2. Boa tarde, Sou iniciante e tenho uma dúvida sobre como gerar um <select> com uma opção selecionada. Tenho um método que faz uma consulta no banco de dados, traz todos o itens da tabela montando o <select>, isso no formulário de registro de itens. Ex.: public function selectTipoVeiculo() { $sql = "SELECT * FROM tipoveiculo"; $query = self::consSql($sql); //Gerando conteúdo do combo select while ($tipoVei = self::list($query)) { echo "\t<option value=\"".$tipoVei['tipoVeiculo_id']."\">".$tipoVei['tipoVeiculo_nome']."</option>\n"; } } Depois só chamo no form.: <select> <?php $form->selectTipoVeiculo() ?> </select> ok, mas e quando quero editar um item? Tenho que fazer a consulta pelo ID (óbvio) e trazer todos as informações armazenadas, o modelo de formulário é o mesmo, porém, como faço para que o <select> acima fique com a opção (dentre as que foram trazidas da tabela) marcada com a propriedade HTML select="selected"? Ex.: <select name="tipoVei" id="tipoVei"> <option value="1" selected="selected">Carro</option> <option value="2">Moto</option> <option value="3">Utilitário</option> <option value="4">Caminhão</option> </select> Terei que alterar meu método? se sim, onde? Terei que criar outro método comparando os dados do primeiro método com esse segundo que irei criar?
×
×
  • Criar Novo...