Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Envio de formulário

05-08-2016 11:07

Olá !
Um doido de um cliente pediu o seguinte:
A cada preenchimento dos dados no formulário vai pra e-mails diferentes, ou seja o primeiro usuário a preencher o form vai pro e-mail "1", o segundo a preencher vai pro e-mail "2", o terceiro vai pro e-mail "3" e após o último volta a ser enviado para o primeiro.

Alguém pode me ajudar nessa questão ?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

05-08-2016 11:47

Tenta esse script Exibir-itens-em-sequencia-a-cada-atuali ... _9800.html
Você só vai precisar trabalhar a função mail nele.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Re: Envio de formulário

08-08-2016 11:39

Como colocaria a função mail nesse script?
Poderia me ajudar nessa questão?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

08-08-2016 14:36

É bem simples. Basta você definir os e-mails no array como o exemplo a seguir. E usar a função mail pegando o valor correspondente que deixei em destaque no comentário.

<?php // INICIANDO A SESSION session_start(); // ARRAY DOS VALORES $itens = Array(); // ITENS EXIBIDOS $itens[] = "um@email.com"; $itens[] = "dois@email.com"; $itens[] = "tres@email.com"; $itens[] = "quatro@email.com"; $itens[] = "cinco@email.com"; // QUANTIDADE DE ITENS $quantos = count($itens); // SE A SESSION NÃO EXISTIR if(!isset($_SESSION['sequencia'])) { $_SESSION['sequencia'] = 0; $_SESSION['sequencia']++; echo "mail.. ".$itens[0]." "; // COLOQUE A FUNÇÃO MAIL ABAIXO // função mail usando $itens[0] como email } else { // SE A SESSION JÁ EXISTE echo "mail.. ".@$itens[$_SESSION['sequencia']]." "; // COLOQUE A FUNÇÃO MAIL ABAIXO // função mail usando $itens[$_SESSION['sequencia']] como email $_SESSION['sequencia']++; // QUANDO O NÚMERO DE ITENS CHEGAR AO LIMITE REINICIA OS VALORES if($_SESSION['sequencia'] >= $quantos) { unset($_SESSION['sequencia']); } } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Re: Envio de formulário

08-08-2016 16:10

Desculpe não entendi, poderia colocar a função mail por favor ?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

08-08-2016 16:19

A função mail você pode pegar nesse link Enviar-mensagem-de-e-mail-com-negrito-i ... _9478.html

Testa o script e adapta conforme precisa. Se der algum erro posta aqui que dou uma dica.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Re: Envio de formulário

09-08-2016 11:06

Colquei da seguinte forma, mas não está enviando:

<?php // INICIANDO A SESSION session_start(); // ARRAY DOS VALORES $itens = Array(); // ITENS EXIBIDOS $itens[] = "um@email.com"; $itens[] = "dois@email.com"; $itens[] = "tres@email.com"; $itens[] = "quatro@email.com"; $itens[] = "cinco@email.com"; // QUANTIDADE DE ITENS $quantos = count($itens); // SE A SESSION NÃO EXISTIR if(!isset($_SESSION['sequencia'])) { $_SESSION['sequencia'] = 0; $_SESSION['sequencia']++; echo "mail.. ".$itens[0]." "; // COLOQUE A FUNÇÃO MAIL ABAIXO // função mail usando $itens[0] como email if(isset($_POST['envia'])) { // CONFIGURE ABAIXO if(empty($_POST['nome']) || empty($_POST['email']) || empty($_POST['mensagem'])) { echo "Todos os campos são obrigatórios"; } else { $emailpara = ".$itens[0]."; // VOCÊ / QUEM RECEBE O EMAIL $nome_postador = $_POST['nome']; // NOME DO POSTADOR $email_postador = $_POST['email']; // E-MAIL DO POSTADOR $assunto = "teste"; // ASSUNTO DO EMAIL $mensagem = $_POST['mensagem']; // MENSAGEM DO EMAIL // CONFIGURE ACIMA $headers = "MIME-Version: 1.0\n"; $headers.= "Content-type: text/html; charset=iso-8859-1\n"; $headers.= "From: ".$nome_postador." <".$email_postador.">"; if(mail($emailpara, $assunto, $mensagem, $headers)) { echo "e-mail enviado com sucesso"; } else { echo "erro ao enviar e-mail"; } } } } else { // SE A SESSION JÁ EXISTE echo "mail.. ".@$itens[$_SESSION['sequencia']]." "; // COLOQUE A FUNÇÃO MAIL ABAIXO // função mail usando $itens[$_SESSION['sequencia']] como email if(isset($_POST['envia'])) { // CONFIGURE ABAIXO if(empty($_POST['nome']) || empty($_POST['email']) || empty($_POST['mensagem'])) { echo "Todos os campos são obrigatórios"; } else { $emailpara = ".$itens[0]."; // VOCÊ / QUEM RECEBE O EMAIL $nome_postador = $_POST['nome']; // NOME DO POSTADOR $email_postador = $_POST['email']; // E-MAIL DO POSTADOR $assunto = "teste"; // ASSUNTO DO EMAIL $mensagem = $_POST['mensagem']; // MENSAGEM DO EMAIL // CONFIGURE ACIMA $headers = "MIME-Version: 1.0\n"; $headers.= "Content-type: text/html; charset=iso-8859-1\n"; $headers.= "From: ".$nome_postador." <".$email_postador.">"; if(mail($emailpara, $assunto, $mensagem, $headers)) { echo "e-mail enviado com sucesso"; } else { echo "erro ao enviar e-mail"; } } } $_SESSION['sequencia']++; // QUANDO O NÚMERO DE ITENS CHEGAR AO LIMITE REINICIA OS VALORES if($_SESSION['sequencia'] >= $quantos) { unset($_SESSION['sequencia']); } } //começa// ?> <form action="funcao-mail.php" method="post"> <table> <tr> <td>Nome</td> <td><input type="text" name="nome" placeholder="Seu nome" required value="" /></td> </tr> <tr> <td>E-mail</td> <td><input type="email" name="email" placeholder="Seu e-mail" required value="" /></td> </tr> <tr> <td>Mensagem</td> <td><textarea name="mensagem" cols="19" rows="5" placeholder="sua mensagem" required></textarea></td> </tr> <tr> <td colspan="2"><input type="submit" name="envia" value="Enviar" /></td> </tr> </table> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

09-08-2016 15:28

Fiz uma forma mais simplificada.

Cria um arquivo chamado email.php e coloca o seguinte:

<?php // INICIANDO A SESSION session_start(); function Email() { // ARRAY DOS VALORES $itens = Array(); // ITENS EXIBIDOS $itens[] = "um@email.com"; $itens[] = "dois@email.com"; $itens[] = "tres@email.com"; $itens[] = "quatro@email.com"; $itens[] = "cinco@email.com"; // QUANTIDADE DE ITENS $quantos = count($itens); // SE A SESSION NÃO EXISTIR if(!isset($_SESSION['sequencia'])) { $_SESSION['sequencia'] = 0; $_SESSION['sequencia']++; echo $itens[0]; // COLOQUE A FUNÇÃO MAIL ABAIXO // função mail usando $itens[0] como email } else { // SE A SESSION JÁ EXISTE echo @$itens[$_SESSION['sequencia']]; // COLOQUE A FUNÇÃO MAIL ABAIXO // função mail usando $itens[$_SESSION['sequencia']] como email $_SESSION['sequencia']++; // QUANDO O NÚMERO DE ITENS CHEGAR AO LIMITE REINICIA OS VALORES if($_SESSION['sequencia'] >= $quantos) { unset($_SESSION['sequencia']); } } } ?>

Chama ele no topo do seu documento do envio de e-mail:

<?php include("email.php"); ?>

Sua linha que define o e-mail que recebe os dados coloca assim:

$emailpara = Email(); // VOCÊ / QUEM RECEBE O EMAIL

0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

10-08-2016 06:19

Essa randomização vai ser por parte do usuário correto? Porque acho que você vai precisar de uma solução que salve os e-mails em um txt.
Porque com SESSION a randomização fica para cada usuário independente.

Veja se esse post ajuda Exibir-uma-linha-do-arquivo-de-texto-na ... _9930.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Re: Envio de formulário

10-08-2016 13:19

Vi o exemplo que me passou, nesse caso usando a variável $arquivo do outro exemplo, também o email não chega
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

10-08-2016 13:44

Funciona se você colocar o e-mail manualmente?
O servidor tem suporte ao PHP e a função mail()?
Aparece o erro "erro ao enviar e-mail"?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Re: Envio de formulário

10-08-2016 14:56

Não exibe nenhum erro no envio, mas o e-mail não chega nem no span
veja o doc:


<?php require_once('phpmailer/PHPMailerAutoload.php'); include("arquivo.php"); require("funcoes.php"); $emailContato = "$arquivo"; //$comcopia = 'outroemail@outroemail'; ?> </head> <body> <form action="" method="post" > <?php if(isset($_POST['submit'])){ if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; // Se for Windows else die("Este script nao esta preparado para funcionar com o sistema operacional de seu servidor"); $nome = $_POST['nome']; $nomeTratado = tratar_letras($_POST['nome']); $empresa = $_POST['empresa']; $telefone = $_POST['telefone']; $email = $_POST['email']; $como_conheceu = $_POST['como_conheceu']; $mensagem = $_POST['mensagem']; $assunto = "Contato via site"; $date = date("d/m/Y H:i:s"); //função para pegar a data de envio do e-mail $ip = $_SERVER['REMOTE_ADDR']; //função para pegar o ip do usuário $navegador = $_SERVER['HTTP_USER_AGENT']; //função para pegar o navegador do visitante $verifica_email ="^[a-z A-Z 0-9 _ - .]+[@]+[a-z A-Z 0-9 _ - .]+[.]+[a-z A-Z 0-9 _ - .]^"; $msgGrava = "Nome: $nome | Empresa: $empresa | Telefone: $telefone | Email: $email | Como nos conheceu?: $como_conheceu \r\n\r\n"; $msgGrava.= "Mensagem: \r\n"; $msgGrava.= "$mensagem \r\n\r\n"; $msgGrava.= "Data: $date | Ip: $ip \r\n"; $msgGrava.= "========================================================================================================= \r\n\r\n"; $erros = ""; if(empty($_POST['nome'])) { $erros .= 'Insira seu NOME<br />'; } elseif(empty($_POST['telefone'])) { $erros .= 'Insira seu TELEFONE<br />'; } elseif(empty($_POST['email'])) { $erros .= 'Insira um EMAIL<br />'; } elseif (!preg_match($verifica_email,$email)) { $erros .= 'Insira um EMAIL válido<br />'; } elseif(empty($_POST['como_conheceu'])) { $erros .= 'Selecione uma das opções COMO NOS CONHECEU?<br />'; } elseif(empty($_POST['mensagem'])) { $erros .= 'Escreva sua MENSAGEM</div><br />'; } if(empty($erros)){ /*-------------- Grava TXT */ grava_txt_email($msgGrava); $dominio = str_replace('www.', '', $dominio); $mail = new PHPMailer(); $mail->IsSMTP(); // envia por SMTP $mail->Host = $dominio; // SMTP servers $mail->SMTPAuth = true; // Caso o servidor SMTP precise de autenticação $mail->Username = $emailRemetente; // SMTP username $mail->Password = $senhaEmail; // SMTP password $mail->IsHTML(true); $mail->From = $emailRemetente; $mail->FromName = $nomeTratado; $mail->Sender = $emailRemetente; $mail->AddAddress($emailContato); //$mail->AddCC ('xxxxx@dominio.com'); //$mail->AddBCC('xxxxx@dominio.com'); $mail->AddReplyTo($email, $nomeTratado); $mail->Subject = $assunto; $mail->Body .= "<h2>Contato via site $nomeSite</h2> <div style=\"font: 12px calibri, arial, tahoma;\"> <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td valign=\"top\" style=\"width: 160px;\"> <strong> Nome:<br /> Empresa:<br /> Telefone:<br /> Email:<br /> Como nos conheceu?:<br /> Mensagem:<br /> </strong> </td> <td valign=\"top\"> $nome<br /> $empresa<br /> $telefone<br /> $email<br /> $como_conheceu<br /> </td> </tr> </table> $mensagem<br /> </div> <font color='#666666' size='1'><br /><br />Email enviado em: $date - IP: $ip <br /> (Enviado via SMTP)</font><br />"; $send = $mail->Send(); if($send) { echo 'Email Enviado com Sucesso...<br />'; echo '<meta HTTP-EQUIV="Refresh" CONTENT="6;URL='.$url.'">' ; } if(!$send) { // mensagem que vai para o destinatario $msg=" <h2>Contato via site $nomeSite</h2> <div style=\"font: 12px calibri, arial, tahoma;\"> <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td valign=\"top\" style=\"width: 160px;\"> <strong> Nome:<br /> Empresa:<br /> Telefone:<br /> Email:<br /> Como nos conheceu?:<br /> Mensagem:<br /> </strong> </td> <td valign=\"top\"> $nome<br /> $empresa<br /> $telefone<br /> $email<br /> $como_conheceu<br /> </td> </tr> </table> $mensagem<br /><br /> </div> <font color='#666666' size='1'><br /><br />Email enviado em: $date - IP: $ip <br /> (Enviado deslogado)</font><br />"; /* Montando o cabeçalho da mensagem */ $headers = "MIME-Version: 1.1".$quebra_linha; $headers .= "Content-type: text/html; charset=utf-8".$quebra_linha; // Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada. $headers .= "From: \"$nomeSite\" <$emailRemetente>".$quebra_linha; $headers .= "Return-Path: \"$nomeSite\" <$emailRemetente>".$quebra_linha; // Esses dois "if's" abaixo são porque o Postfix obriga que se um cabeçalho for especificado, deverá haver um valor. // Se não houver um valor, o item não deverá ser especificado. if(strlen($comcopia) > 0) $headers .= "Cc: ".$comcopia.$quebra_linha; if(strlen($comcopiaoculta) > 0) $headers .= "Bcc: ".$comcopiaoculta.$quebra_linha; $headers .= "Reply-To: \"$nomeTratado\" <$email>".$quebra_linha; // Note que o e-mail do remetente será usado no campo Reply-To (Responder Para) /* Enviando a mensagem */ $mail = mail($emailContato, $assunto, $msg, $headers, "-r". $emailContato); // verifica se email foi enviado com sucesso if($mail==TRUE) { echo 'Email Enviado com Sucesso!'; echo '<meta HTTP-EQUIV="Refresh" CONTENT="6;URL='.$url.'">' ; } else { echo 'Email Falhou!</div>'; } } } else { echo $erros; } } ?> <input placeholder="Nome*" onKeyUp="UcWords(this)" name="nome" value="nome" type="text" size="35" required /><br /> <input placeholder="Empresa" value="empresa" name="empresa" id="empresa" type="text" size="30" onKeyUp="UcWords(this)" /><br /> <input placeholder="Telefone* (##)#########" name="telefone" value="telefone" type="text" size="30" maxlength="13" onKeyUp="return autoTab(this, 13, event);" onKeyPress="formatar(this, '(##)#########');return numbersonly(this, event)" required /><br /> <input placeholder="Email*" onKeyUp="minusculas(this)" name="email" value="email" type="text" size="35" required /><br /> <label>Como nos conheceu? <span class="alerta">*</span></label><br/> <select name="como_conheceu" required > <option value="">-- Selecione --</option> <option value="Busca do Google">Busca do Google</option> <option value="Outros Buscadores">Outros Buscadores</option> <option value="Links patrocinados">Links patrocinados</option> <option value="Facebook" onClick="esconde()">Facebook</option> <option value="Twitter" onClick="esconde()">Twitter</option> <option value="Google+" onClick="esconde()">Google+</option> <option value="Indicação de um amigo" onClick="esconde()">Indicação de um amigo</option> <option value="Outros" onClick="esconde()">Outros</option> </select> <br /> <textarea placeholder="Mensagem*" name="mensagem" cols="37" rows="10" required></textarea><br /> <label style="color: #fff;">.</label><input type="submit" name="submit" value="Enviar mensagem"/><br /><br /> </form> </main> </body> </html>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

10-08-2016 15:04

Você usa SMTP. Uma vez eu usava SMTP também e fiquei sem receber um monte de e-mails. Tem que verificar se é isso.

Você tem que ver também que o padrão da função mail são 4 parâmetros. O seu tem 5.

$mail = mail($emailContato, $assunto, $msg, $headers, "-r". $emailContato);

https://secure.php.net/manual/en/function.mail.php

Mas eu suponho que seja problema da classe com SMTP. Porque também já tive esse problema.
Testa um script de e-mail sem SMTP e verifica se envia normal.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Re: Envio de formulário

10-08-2016 16:10

Escrevendo o e-mail diretamente, envia, mas no gmail, outlook e os demais não chega.
Sobre o smtp, verifiquei e está correto pelo que pesquisei.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

10-08-2016 16:21

No seu código o e-mail do destinatário está assim:

$emailContato = "$arquivo";

Baseado que $arquivo retorne o e-mail de quem vai receber os dados do formulário deveria estar dessa forma:

$emailContato = $arquivo;

Ai para certificar dá um echo e verifica o valor de $arquivo

$emailContato = $arquivo; echo $emailContato; exit; // bloqueia o restante do código para o teste

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

Re: Envio de formulário

11-08-2016 14:41

coloquei como disse:
$emailContato = $arquivo;
echo $emailContato;
imprimiu certo o e-mail mas com a palvra arrey na linha do email
ex:
meuemail@.com.br array

descomentando o codigo dá o seguinte erro:
Warning: mail() expects parameter 1 to be string, array given in /home/storage/6/58/a2/asterplas2/public_html/form/01/contato.php on line 180
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Envio de formulário

11-08-2016 16:12

Teria que ver nos arquivos que são chamado onde é criado o $arquivo para ver o porque do array.

Já que você está tentando enviar e-mails de forma sequência, testa o link que indique onde o script PHP faz a sequência dos e-mails do arquivos txt.

Dando certo só trocar o $arquivo pela chamada da função do exemplo do link.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado