Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Em "Indique A Um Amigo"


Pingitore

Pergunta

Olá, é meu primeiro post. Não sou programador/desenvolvedor nem nada do tipo, portanto meu conhecimento é bem limitado nestes aspectos.

Seguindo diversos modelos na web, inclusive alguns aqui no forum, fiz uma pagina com o objetivo de indicar o site.

Segui todas as instruções e a resposta é de que a mensagem foi enviada, contudo nunca chega. A hospedagem aceita php e também comando mail, visto que tenho outros dois formularios que estão funcionando perfeitamente. Não sei o que esta errado. Gostaria que alguém desse uma olhada. Grato.

formulario:

<form action="enviar.php" method="post" name="indique"
id="indique" onsubmit="return validar();">
<p align="left"><font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">Nome: </font><br>
<input type="text" size="30" name="nome"
class="campo" id="nome"> <br>

<font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">E-Mail: </font><br>
<input type="text" size="30" name="email"
class="campo" id="email"> <br>
<font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">Nome do amigo: </font><br>
<font size="2"
face="Geneva, Arial, Helvetica, sans-serif"><input
type="text" size="30" name="amigo" class="campo"
id="amigo"> <br>
</font><font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">E-mail do amigo:
</font><br>
<font size="2"
face="Geneva, Arial, Helvetica, sans-serif"><input
type="text" size="30" name="email do amigo" class="campo"
id="emailamigo"> <br>

</p>
<p align="left"><input type="submit" name="submit"
value="Indicar" class="campo"> <input type="reset"
name="reset" value="Limpar" class="campo"> </p>
</form>
enviar.php:
<?php
if (getenv("REQUEST_METHOD") == "POST")

{
$nome = $_POST['nome'];
$email = $_POST['email'];
$para = $_POST['amigo'];
$destino = $_POST['emailamigo'];

$site = "www.styllusfashion.com";

$assunto = "$nome te recomendou um site... ";
$msg = "Olá $para. \n $nome_de lhe convida a visitar o site $site\n\n $mensagem";

mail('$destino','$assunto','$msg','From:$nome< $email>')

?>

&lt;script>

alert('Seu email foi enviado com sucesso!');

</script>

&lt;script>

window.location.href='http://site.com'

</script>

<?php

exit;

}

?>
Estes são outros que estão on line e funcionam perfeitamente. Estou colocando para uma comparação do que esta certo e porque o outro acima não esta enviando: formulário de contato
<form action="contato.php" method="post" name="form1"
id="form1" onsubmit="return validar();">

<p align="left"><font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">Nome: </font><br>
<input type="text" size="30" name="nome"
class="campo" id="nome"> <br>
<font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">E-Mail: </font><br>
<input type="text" size="30" name="email"
class="campo" id="email"> <br>
<font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">Assunto: </font><br>
<font size="2"
face="Geneva, Arial, Helvetica, sans-serif"><input
type="text" size="30" name="assunto" class="campo"
id="assunto"> <br>

</font><font color="#333333" size="2"
face="Geneva, Arial, Helvetica, sans-serif">Mensagem:
</font><br>
<textarea name="mensagem" rows="8" cols="23"
class="campo" id="mensagem"></textarea> </p>
<p align="left"><input type="submit" name="submit"
value="Enviar" class="campo"> <input type="reset"
name="reset" value="Limpar" class="campo"> </p>
</form>
contato.php:
<?php

if (getenv("REQUEST_METHOD") == "POST")

{

$nome = $_POST['nome'];

$fone = $_POST['fone'];

$email = $_POST['email'];

$assunto = $_POST['assunto'];

$mensagem = $_POST['mensagem'];


//Inicio do Email para o Cliente

$MailRecipiente = "MAIL@MAIL.com";

$MailAssunto = "Fale Conosco";

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: $email\r\n";



$msg = "<html><body>

<br><br>
<br>Formulario de Contato no Site!:

<br>
<br>Nome : <b>$nome</b>
<br>Telefone : <b>$fone</b>
<br>Email : <b>$email</b>
<br>Assunto : <b>$assunto</b>
<br>

<br>Mensagem : <br>$mensagem
<br></body></html>";


$MandaEmail=mail($MailRecipiente,$MailAssunto,$msg,$headers);


?>

&lt;script>

alert('Seu email foi enviado com sucesso!');

</script>

&lt;script>

window.location.href='http://SITE.com'

</script>



<?php

exit;

}

?>
e o de cadastro:
&lt;script language="Javascript">
function validaForm(){
//validar nome
d = document.cadastro;
if (d.nome.value == ""){
alert("O campo " + d.nome.name + " deve ser preenchido!");
d.nome.focus();
return false;
}
//validar rua
if (d.rua.value == ""){
alert("O campo " + d.rua.name + " deve ser preenchido!");
d.rua.focus();
return false;
}
//validar número
if (d.número.value == ""){
alert("O campo " + d.número.name + " deve ser preenchido!");
d.número.focus();
return false;
}
//validar número(verificacao se contem apenas numeros)
if (isNaN(d.número.value)){
alert("O campo " + d.número.name + " deve conter apenas números!");
d.número.focus();
return false;
}
//validar bairro
if (d.bairro.value == ""){
alert("O campo " + d.bairro.name + " deve ser preenchido!");
d.bairro.focus();
return false;
}
//validar cidade
if (d.cidade.value == ""){
alert("O campo " + d.cidade.name + " deve ser preenchido!");
d.cidade.focus();
return false;
}
//validar Estado
if (d.estado.value == ""){
alert("O campo " + d.estado.name + " deve ser preenchido!");
d.estado.focus();
return false;
}
//validar CEP
if (d.cep.value == ""){
alert("O campo " + d.cep.name + " deve ser preenchido!");
d.cep.focus();
return false;
}
//validar CEP(verificacao se contem apenas numeros)
if (isNaN(d.cep.value)){
alert("O campo " + d.cep.name + " deve conter apenas numeros!");
d.cep.focus();
return false;
}
//validar email
if (d.email.value == ""){
alert("O campo " + d.email.name + " deve ser preenchido!");
d.email.focus();
return false;
}
//validar email(verificao de endereco eletronico)
parte1 = d.email.value.indexOf("@");
parte2 = d.email.value.indexOf(".");
parte3 = d.email.value.length;
if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
alert("O campo " + d.email.name + " deve ser conter um endereco eletronico!");
d.email.focus();
return false;
}
//validar telefone
if (d.telefone.value == ""){
alert("O campo " + d.telefone.name + " deve ser preenchido!");
d.telefone.focus();
return false;
}
//validar telefone(verificacao se contem apenas numeros)
if (isNaN(d.telefone.value)){
alert("O campo " + d.telefone.name + " deve conter apenas numeros!");
d.telefone.focus();
return false;
}
//validar celular
if (d.celular.value == ""){
alert("O campo " + d.celular.name + " deve ser preenchido!");
d.celular.focus();
return false;
}
//validar celular(verificacao se contem apenas numeros)
if (isNaN(d.celular.value)){
alert("O campo " + d.celular.name + " deve conter apenas numeros!");
d.celular.focus();
return false;
}
//validar data de nascimento
erro=0;
hoje = new Date();
anoAtual = hoje.getFullYear();
barras = d.nascimento.value.split("/");
if (barras.length == 3){
dia = barras[0];
mes = barras[1];
ano = barras[2];
resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= 1900));
if (!resultado) {
alert("Formato de data invalido!");
d.nascimento.focus();
return false;
}
} else {
alert("Formato de data invalido!");
d.nascimento.focus();
return false;
}
//validar sexo
if (!d.sexo[0].checked && !d.sexo[1].checked) {
alert("Escolha o sexo!")
return false;
}
return true;
}
</script>
<form name="cadastro" action="vip.php" method="post" onsubmit="return validaForm()">


<p><font
color="#000000" size="2">Nome:<br><input name="nome" type="text"><br></br>


Endereço<br>
Rua:<br><input name="rua" type="text"><br>


Número:<br><input name="número" type="text"><br>

Bairro:<br><input name="bairro" type="text"><br>


Cidade:<br><input name="cidade" type="text"><br>

Estado:<br><input name="estado" type="text"><br>

CEP:<br><input name="cep" type="text"><br>

E-mail:<br><input name="email" type="text"><br>(xxx@xx.xx)<br>

Telefone:<br><input name="telefone" type="text"><br>

Celular:<br><input name="celular" type="text"><br>

Data de nascimento:<br><input name="nascimento" type="text"><br> (dd/mm/yyyy)<br>

Sexo:<br><input name="sexo" type="radio" value="masculino" id="sexo">
Masculino
<input name="sexo" type="radio" value="feminino" id="sexo[1]">
Feminino<br>



<div align="left">
<input type="submit" name="submit" value="Cadastrar"
class="campo"> <input type="reset" name="reset"
value="Limpar" class="campo">

</div>

</form>

vip.php:
<?php

if (getenv("REQUEST_METHOD") == "POST")

{

$nome = $_POST['nome'];

$rua = $_POST['rua'];

$número = $_POST['número'];

$bairro = $_POST['bairro'];

$cidade = $_POST['cidade'];

$estado = $_POST['estado'];

$cep = $_POST['cep'];

$email = $_POST['email'];

$telefone = $_POST['telefone'];

$celular = $_POST['celular'];

$nascimento = $_POST['nascimento'];

$sexo = $_POST['sexo'];


$MailRecipiente = "MAIL@MAIL.com";

$MailAssunto = "Cadastro VIP";

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: $email\r\n";



$msg = "<html><body>

<br><br>
<br>Cadastro vip:

<br>
<br>Nome : <b>$nome</b>
<br>Rua : <b>$rua</b>
<br>Número : <b>$número</b>
<br>Bairro : <b>$bairro</b>
<br>Cidade : <b>$cidade</b>
<br>Estado : <b>$estado</b>
<br>CEP : <b>$cep</b>
<br>E-mail : <b>$email</b>
<br>Telefone : <b>$telefone</b>
<br>Celular : <b>$celular</b>
<br>Aniversário: <b>$nascimento</b>
<br>Sexo : <b>$sexo</b>
<br>

<br></body></html>";


$MandaEmail=mail($MailRecipiente,$MailAssunto,$msg,$headers);


?>

&lt;script>

alert('Seu cadastro foi realizado com sucesso!');

</script>

&lt;script>

window.location.href='index.htm'

</script>



<?php

exit;

}

?>

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

Bom, se exibe a mensagem de que foi enviado, então está tudo OK. O que pode acontecer é algum problema na hospedagem, tente entrar em contato e verificar se ocorre isso lá.

Um bom exemplo disse, é a Locaweb que a quase um mês vem sofrendo instabilidades nos e-mail enviados via site por PHP.

Link para o comentário
Compartilhar em outros sites

  • 0
Bom, se exibe a mensagem de que foi enviado, então está tudo OK. O que pode acontecer é algum problema na hospedagem, tente entrar em contato e verificar se ocorre isso lá.

Um bom exemplo disse, é a Locaweb que a quase um mês vem sofrendo instabilidades nos e-mail enviados via site por PHP.

Obrigado pela resposta, mas de acordo com eles, esta tudo ok. O que é bem estranho, visto que os dois últimos formulários funcionam corretamente, só o primeiro que não chega nem com sedex10.

Link para o comentário
Compartilhar em outros sites

  • 0

com esse seu codigo, acho q ele vai mostar a mensagem de sucesso, mesmo q o envio não funcione.

olhando o seu codigo, acho q você podia tentar tirar algumas aspas pra ver se resolve:

mail($destino,$assunto,$msg,'From:$nome< $email>')
e depois pra testar se o email foi enviado mesmo, você devia fazer assim:
if (mail($destino,$assunto,$msg,'From:$nome< $email>'))
{

?>

&lt;script>

alert('Seu email foi enviado com sucesso!');

</script>

&lt;script>

window.location.href='http://site.com'

</script>

<?php

exit;
}
}

?>[/code] EDITADO: a e olhe aqui:
[code]<input
type="text" size="30" name="email do amigo" class="campo"
id="emailamigo"> <br>

q nome é esse "email do amigo"?? o $_POST[] do php pega pelo name e não pelo id. você ta postando com o nome "email do amigo", mas ta tentando pegar pelo $_POST['emailamigo'], ai ele não encontra mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0

Formulario:

<form action="enviar.php" method="post" name="indique"
        id="indique" onsubmit="return validar();">
            <p align="left"><font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">Nome: </font><br>
            <input type="text" size="30" name="nome"
            class="campo" id="nome"> <br>
            <font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">E-Mail: </font><br>
            <input type="text" size="30" name="email"
            class="campo" id="email"> <br>
            <font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">Nome do amigo: </font><br>
            <font size="2"
            face="Geneva, Arial, Helvetica, sans-serif"><input
            type="text" size="30" name="amigo" class="campo"
            id="amigo"> <br>
            </font><font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">E-mail do amigo:
            </font><br>
<font size="2"
            face="Geneva, Arial, Helvetica, sans-serif"><input
            type="text" size="30" name="emaildoamigo" class="campo"
            id="emaildoamigo"> <br>
             </p>
            <p align="left"><input type="submit" name="submit"
            value="Indicar" class="campo"> <input type="reset"
            name="reset" value="Limpar" class="campo"> </p>
        </form>

Enviar.php:

<?php
if (getenv("REQUEST_METHOD") == "POST") 

{
$nome = $_POST["nome"];
$email = $_POST["email"];
$para = $_POST["amigo"];
$destino = $_POST["emailamigo"];

$site = "www.styllusfashion.com";

$assunto = "$nome te recomendou um site... ";
$msg = "Olá $para. \n $nome lhe convida a visitar o site $site";

mail($destino,$assunto,$msg,'From:$nome<$email>')

?>

<script>

alert('Seu email foi enviado com sucesso!');

</script>

<script> 

window.location.href='http://www.styllusfashion.com' 

</script>

<?php

exit;

}

?>

Se eu manter o segundo"}" vem a resposta:

Parse error: syntax error, unexpected '}' in /home/styllusf/public_html/enviar.php on line 36

EDITADO

errei. não adicionei o if. Vou consertar e retorno a resposta.

Editado por *FIT*
Adicionar a tag [code]! *FIT*
Link para o comentário
Compartilhar em outros sites

  • 0

e lá vamos nós...

formulario

<form action="enviar.php" method="post" name="indique"
        id="indique" onsubmit="return validar();">
            <p align="left"><font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">Nome: </font><br>
            <input type="text" size="30" name="nome"
            class="campo" id="nome"> <br>
            <font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">E-Mail: </font><br>
            <input type="text" size="30" name="email"
            class="campo" id="email"> <br>
            <font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">Nome do amigo: </font><br>
            <font size="2"
            face="Geneva, Arial, Helvetica, sans-serif"><input
            type="text" size="30" name="amigo" class="campo"
            id="amigo"> <br>
            </font><font color="#333333" size="2"
            face="Geneva, Arial, Helvetica, sans-serif">E-mail do amigo:
            </font><br>
<font size="2"
            face="Geneva, Arial, Helvetica, sans-serif"><input
            type="text" size="30" name="emaildoamigo" class="campo"
            id="emaildoamigo"> <br>
             </p>
            <p align="left"><input type="submit" name="submit"
            value="Indicar" class="campo"> <input type="reset"
            name="reset" value="Limpar" class="campo"> </p>
        </form>
enviar.php
<?php
if (getenv("REQUEST_METHOD") == "POST") 

{
$nome = $_POST["nome"];
$email = $_POST["email"];
$para = $_POST["amigo"];
$destino = $_POST["emaildoamigo"];

$site = "www.styllusfashion.com";

$assunto = "$nome te recomendou um site... ";
$msg = "Olá $para. \n $nome lhe convida a visitar o site $site";

if (mail($destino,$assunto,$msg,'From:$nome< $email>'))
{

?>

&lt;script>

alert('Seu email foi enviado com sucesso!');

</script>

&lt;script>

window.location.href='http://www.styllusfashion.com'

</script>

<?php

exit;
}
}

?>

Acho que fiz todas as alterações que você me indicou.

Continua dando a resposta de e-mail enviado, mas não chega.

Editado por Pingitore
Link para o comentário
Compartilhar em outros sites

  • 0

então agora, repito a mensagem do fit:

Bom, se exibe a mensagem de que foi enviado, então está tudo OK. O que pode acontecer é algum problema na hospedagem, tente entrar em contato e verificar se ocorre isso lá.

Um bom exemplo disse, é a Locaweb que a quase um mês vem sofrendo instabilidades nos e-mail enviados via site por PHP.

tem certeza q os emails não tão indo pra caixa de spam não??

teria como você passar o link da onde esta o seu formulario pra gente testar aqui??

Link para o comentário
Compartilhar em outros sites

  • 0

realmente não esta chegando. faca o seguinte, só pra testar, tente trocar isso:

if (mail($destino,$assunto,$msg,'From: $nome <$email>'))
{

?>

&lt;script>

alert('Seu email foi enviado com sucesso!');

</script>

&lt;script>

window.location.href='http://www.styllusfashion.com'

</script>

<?php

exit;
}
}
?>[/code] por:
[code]if (mail($destino,$assunto,$msg,'From:$nome< $email>'))
{
    echo("Destino: " . $destino . "<br />" .
        "Assunto: " . $assunto . "<br />" .
        "Mensagem: " . $msg . "<br />" .
        "Nome: " . $nome . "<br />" .
        "Email: " . $email . "<br />");
}
}
?>

ai tente enviar e veja os dados q vao aparecer na tela se estao certos.

Link para o comentário
Compartilhar em outros sites

  • 0

muito estranho. o email do form de contato esta chegando mesmo??

olha, então tenta adicionar os mesmo headers q estavam no form de contato:

$nome = $_POST["nome"];
$email = $_POST["email"];
$para = $_POST["amigo"];
$destino = $_POST["emaildoamigo"];

$site = "www.styllusfashion.com";

$assunto = "$nome te recomendou um site... ";
$msg = "Olá $para. <br />\n $nome lhe convida a visitar o site $site";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $nome <$email>\r\n";

if (mail($destino,$assunto,$msg,$headers))
{[/code]

vai ver q o seu servidor precisa q você especifique a versao do MIME, tenta ai.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0
Realmente inexplicavel.

realmente. se conseguir descobrir, avise ai, q tb quero saber.

olha, mas como ultimo teste, você podia tentar mudar a mensagem q esta sendo enviada. não sei, como você ta adicionando um link no meio do texto, talvez o servidor barre por considerar como spam, seila. tenta escrever qualquer coisa no lugar pra ver se vai, por exemplo:

if (mail($destino,$assunto,"kuroi",$headers))
ou então, ponha um codigo html qualquer:
if (mail($destino,$assunto,"<html><body><p>kuroi</p></body></html>",$headers))

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Recebi a resposta do suporte e eles afirmam estar tudo ok. E realmente está, visto que os outros formulários chegam normalmente.

Pensando em tudo que foi explanado, fiz a seguinte alteração no mail:

Antes

if (mail("$destino","$assunto","$msg","From:$nome<$email>"))
Agora
$MandaEmail=mail($destino,$assunto,$msg,"From:$nome<$email>")

Mandei um teste, só que desta vez, utilizando o e-mail cadastrado no servidor.

Chegou!!!

Indaguei o servidor do porque finalmente chegou no e-mail deles. A resposta:

-Muitos formulários usam SMTP não autenticado. Um exemplo disso é a função mail() do PHP. Ela envia todo e-mail através do endereço \"nobody@\", com headers incompletos. Além de causar riscos de segurança, mensagens deste tipo de formulário são barrados por muitos provedores nacionais e internacionais de e-mail. Recomendamos fortemente implementar uma classe SMTP, permitindo a autenticação SMTP correta e a criação de headers completos.

Refiz o teste enviando pra contas do ig, bol, gmail, hotmail, MSN, yahoo e não chegam.

Conclusão:

Com a alteração do mail, passou a enviar, mas somente para o e-mail do servidor, pois toda proteção antispam esta off. Nos outros servidores não chega pois provavelmente são barrados.

Link para o comentário
Compartilhar em outros sites

  • 0

é verdade, eu utilizo um servidor q tb não permite o uso da funcao mail(). acho q ta ficando cada vez mais comum, mas acho mais certo mesmo bloquearem o envio sem autenticacao.

no meu servidor, eles recomendam o uso do PHPMailer. você tem baixar o codigo dele e adicionar no seu servidor e adiciona-lo como include. aqui tem um tutorial, de uma olhada: http://blog.thiagobelem.net/php/enviar-e-m...do-o-phpmailer/

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...