Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Samuel Nascimento

Formulário de Contato PHP

Recommended Posts

Boa tarde pessoal.

 

Sou iniciante no PHP e recentemente peguei um projeto onde precisava enviar um e-mail com as informações de um formulário HTML e envia-las para um e-mail. Fiz o código, porém não consegui identificar onde está o erro. Poderiam me ajuda?

 

 

------código PHP---------

<?php
$para = "meu_email@hotmail.com";


$nome = $_REQUEST['nome'];
$email = $_REQUEST['email'];
$fone = $_REQUEST['fone'];
$assunto = $_REQUEST['assunto'];
$mensagem = $_REQUEST['mensagem'];


$corpo = "<strong>Mensagem de Contato</strong><br><br>";
$corpo .= "<strong>Nome:</strong> $nome";
$corpo .= "<br><strong>Email:</strong> $email";
$corpo .= "<br><strong>Telefone:</strong> $fone";
$corpo .= "<br><strong>Assunto:</strong> $assunto";
$corpo .= "<br><strong>Mensagem:</strong> $mensagem";


$header = "Content-Type: text/html; charset= utf8\n";
$header .= "From: $email Reply-to: $email\n";


@mail($para,$assunto,$corpo,$header);


header("location:fale-conosco.html?msg=enviado");
?>
--------------------------------------------------------------------------
antes da tag <html>
<?php
$msg=0;
@$msg= $_REQUEST['msg'];
?>
depois da tag <body>
<?php if($msg==enviado): ?>
<h1>Mensagem enviada, agradecemos o contato</h1>
<?php else: ?>
depois da tag </body>
<?php endif; ?>
Formulário
<form id="form" name="frm" method="get" action="msg_contato_2.php">
<h2>Contato</h2><br>


<div class="linhaForm">
<label for="nome">*Nome:</label><span class="erro_1">Insira seu nome completo no campo abaixo:</span>
<input type="text" class="input" id="nome" name="nome" placeholder="Nome completo" required/> 
</div>


<div class="linhaForm">
<label for="email">*E-mail:</label><span class="erro_2">E-mail inválido</span>
<input type="text" class="input" id="email" name="email"  placeholder="E-mail" required/> 
</div>


<div class="linhaForm">
<label for="fone">*Telefone:</label>
<input type="text" class="input" id="fone" name="fone"  placeholder="DDD + telefone" maxlength="15"/> 
</div>


<div class="linhaForm">
<label for="assunto" >*Assunto</label> 
<select name="assunto" id="assunto">
<option value="selecione um assunto">selecione um assunto:</option>
<option value="Orçamento">Orçamento</option>
<option value="Fornecedores">Fornecedores</option>
<option value="Dúvidas">Dúvidas</option>
<option value="Sugestões">Sugestões</option>
</select> 
<span class="erro_3">Erro!</span>
</div>


<div class="linhaForm">
<label for="mensagem">Mensagem:</label>
<textarea  id="mensagem" name="mensagem"></textarea>
</div>


<p><strong>Como ficou sabendo do nosso site?</strong></p>
<div class="linhaForm"> 
<input type="checkbox" class="chkbx">Google</input>
<input type="checkbox" class="chkbx">Redes Sociais</input>
<input type="checkbox" class="chkbx">Amigo(s)</input>
</div>
<div class="linhaForm"> 
<input type="checkbox" class="chkbx">Revistas ou mídias especializadas</input>
<input type="checkbox" class="chkbx">Outros</input>
</div>
</br> 


<div class="linhaForm">
<input type="reset" class="btn2" id="btn" name="btn" value="Limpar" /> 
<input type="submit" class="btn1" id="btn" name="btn" value="Enviar"/>
</div></br>
<p style="color:#993333"><b>* Campos obrigatórios</b></p>


</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa assim e posta qual erro acontece:

<?php
if(isset($_GET["btn"])){
    $para = "meu_email@hotmail.com";
    $nome = $_REQUEST['nome'];
    $email = $_REQUEST['email'];
    $fone = $_REQUEST['fone'];
    $assunto = $_REQUEST['assunto'];
    $mensagem = $_REQUEST['mensagem'];
    $corpo = "<strong>Mensagem de Contato</strong><br><br>";
    $corpo .= "<strong>Nome:</strong> $nome";
    $corpo .= "<br><strong>Email:</strong> $email";
    $corpo .= "<br><strong>Telefone:</strong> $fone";
    $corpo .= "<br><strong>Assunto:</strong> $assunto";
    $corpo .= "<br><strong>Mensagem:</strong> $mensagem";
    $header = "Content-Type: text/html; charset= utf8\n";
    $header .= "From: $email Reply-to: $email\n";
    @mail($para,$assunto,$corpo,$header);
    header("location:fale-conosco.html?msg=enviado");
}
?>
<html lang="pt-br">
<body>
<div id="CONTEUDO">
    <?php if (isset($_GET['msg'])){ if($_GET['msg']==enviado){ ?><h1>Mensagem enviada, agradecemos o contato</h1><?php    }    }else{    ?>
    <form id="form" name="frm" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <h2>Contato</h2><br>
        <div class="linhaForm">
            <label for="nome">*Nome:</label><span class="erro_1">Insira seu nome completo no campo abaixo:</span>
            <input type="text" class="input" id="nome" name="nome" placeholder="Nome completo" required/>
        </div>
        <div class="linhaForm">
            <label for="email">*E-mail:</label>
            <input type="email" class="input" id="email" name="email"  placeholder="E-mail" required/>
        </div>
        <div class="linhaForm">
            <label for="fone">*Telefone:</label>
            <input type="text" class="input" id="fone" name="fone"  placeholder="DDD + telefone" maxlength="15"/>
        </div>
        <div class="linhaForm">
            <label for="assunto" >*Assunto</label>
            <select name="assunto" id="assunto">
                <option value="selecione um assunto">selecione um assunto:</option>
                <option value="Orçamento">Orçamento</option>
                <option value="Fornecedores">Fornecedores</option>
                <option value="Dúvidas">Dúvidas</option>
                <option value="Sugestões">Sugestões</option>
            </select>
            <span class="erro_3">Erro!</span>
        </div>
        <div class="linhaForm">
            <label for="mensagem">Mensagem:</label>
            <textarea  id="mensagem" name="mensagem"></textarea>
        </div>
        <p><strong>Como ficou sabendo do nosso site?</strong></p>
        <div class="linhaForm">
            <input type="checkbox" class="chkbx">Google</input>
            <input type="checkbox" class="chkbx">Redes Sociais</input>
            <input type="checkbox" class="chkbx">Amigo(s)</input>
        </div>
        <div class="linhaForm">
            <input type="checkbox" class="chkbx">Revistas ou mídias especializadas</input>
            <input type="checkbox" class="chkbx">Outros</input>
        </div>
        </br>
        <div class="linhaForm">
        <input type="reset" class="btn2" id="btn" name="btn" value="Limpar" />
        <input type="submit" class="btn1" id="btn" name="btn" value="Enviar"/>
        </div></br>
        <p style="color:#993333"><b>* Campos obrigatórios</b></p>
    </form>
<?php } ?>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andre executei no localhost e o erro foi o seguinte:

 

Acesso Proibido!

Você não tem permissão para acessar o objeto requisitado. Ele pode estar protegido contra leitura ou não ser legível pelo servidor.

Se você acredita ter encontrado um problema no servidor, por favor entre em contato com o webmaster.

Error 403 localhost
Apache/2.4.7 (Win32) PHP/5.5.8


Na barra de endereços ficou assim:
http://localhost/projects/qdf/%3C?nome=Samuel+do+Nascimento+de+Alencar&email=samuel_nascimento%40hotmail.com&fone=%2812%29+35566-6767&assunto=Or%C3%A7amento&mensagem=asdas&btn=Enviar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta separar como tava antes então, o codigo de php em um arquivo e o do html em outro arquivo, só nao esquece de editar o action="primeiro_arquivo.php" no formulario html.

 

 

primeiro arquivo

<?php
if(isset($_GET["btn"])){
    $para = "meu_email@hotmail.com";
    $nome = $_REQUEST['nome'];
    $email = $_REQUEST['email'];
    $fone = $_REQUEST['fone'];
    $assunto = $_REQUEST['assunto'];
    $mensagem = $_REQUEST['mensagem'];
    $corpo = "<strong>Mensagem de Contato</strong><br><br>";
    $corpo .= "<strong>Nome:</strong> $nome";
    $corpo .= "<br><strong>Email:</strong> $email";
    $corpo .= "<br><strong>Telefone:</strong> $fone";
    $corpo .= "<br><strong>Assunto:</strong> $assunto";
    $corpo .= "<br><strong>Mensagem:</strong> $mensagem";
    $header = "Content-Type: text/html; charset= utf8\n";
    $header .= "From: $email Reply-to: $email\n";
    @mail($para,$assunto,$corpo,$header);
    header("location:fale-conosco.html?msg=enviado");
}
?>

segundo arquivo

<html lang="pt-br">
<body>
<div id="CONTEUDO">
    <?php if (isset($_GET['msg'])){ if($_GET['msg']==enviado){ ?><h1>Mensagem enviada, agradecemos o contato</h1><?php    }    }else{    ?>
    <form id="form" name="frm" method="get" action="primeiro_arquivo.php">
        <h2>Contato</h2><br>
        <div class="linhaForm">
            <label for="nome">*Nome:</label><span class="erro_1">Insira seu nome completo no campo abaixo:</span>
            <input type="text" class="input" id="nome" name="nome" placeholder="Nome completo" required/>
        </div>
        <div class="linhaForm">
            <label for="email">*E-mail:</label>
            <input type="email" class="input" id="email" name="email"  placeholder="E-mail" required/>
        </div>
        <div class="linhaForm">
            <label for="fone">*Telefone:</label>
            <input type="text" class="input" id="fone" name="fone"  placeholder="DDD + telefone" maxlength="15"/>
        </div>
        <div class="linhaForm">
            <label for="assunto" >*Assunto</label>
            <select name="assunto" id="assunto">
                <option value="selecione um assunto">selecione um assunto:</option>
                <option value="Orçamento">Orçamento</option>
                <option value="Fornecedores">Fornecedores</option>
                <option value="Dúvidas">Dúvidas</option>
                <option value="Sugestões">Sugestões</option>
            </select>
            <span class="erro_3">Erro!</span>
        </div>
        <div class="linhaForm">
            <label for="mensagem">Mensagem:</label>
            <textarea  id="mensagem" name="mensagem"></textarea>
        </div>
        <p><strong>Como ficou sabendo do nosso site?</strong></p>
        <div class="linhaForm">
            <input type="checkbox" class="chkbx">Google</input>
            <input type="checkbox" class="chkbx">Redes Sociais</input>
            <input type="checkbox" class="chkbx">Amigo(s)</input>
        </div>
        <div class="linhaForm">
            <input type="checkbox" class="chkbx">Revistas ou mídias especializadas</input>
            <input type="checkbox" class="chkbx">Outros</input>
        </div>
        </br>
        <div class="linhaForm">
        <input type="reset" class="btn2" id="btn" name="btn" value="Limpar" />
        <input type="submit" class="btn1" id="btn" name="btn" value="Enviar"/>
        </div></br>
        <p style="color:#993333"><b>* Campos obrigatórios</b></p>
    </form>
<?php } ?>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo funciona normalmente, exceto que a mensagem não é enviada para o email. Não será algum problema no servidor? Hospedo o site em um servidor gratuito: hostinger.

Detalhe: No localhost o erro é - Warning: mail(): Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\EasyPHP\data\localweb\projects\qdf\msg_contato_2.php on line 24

Mensagem enviada com sucesso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que hospedar e testar no servidor, não localmente!

tenta assim:

<?php
if(isset($_GET["btn"])){
    $para = "meu_email@hotmail.com";
    $nome = $_GET['nome'];
    $email = $_GET['email'];
    $fone = $_GET['fone'];
    $assunto = $_REQUEST['assunto'];
    $mensagem = $_REQUEST['mensagem'];
    $corpo = "<strong>Mensagem de Contato</strong><br><br>";
    $corpo .= "<strong>Nome:</strong> $nome";
    $corpo .= "<br><strong>Email:</strong> $email";
    $corpo .= "<br><strong>Telefone:</strong> $fone";
    $corpo .= "<br><strong>Assunto:</strong> $assunto";
    $corpo .= "<br><strong>Mensagem:</strong> $mensagem";
    $header = "Content-Type: text/html; charset= utf8\n";
    $header .= "From: $email Reply-to: $email\n";
    $envia = mail($para,$assunto,$corpo,$header);

    if($envia){
    echo "<script>alert('Enviado com sucesso!')</script>";
}else{ echo "<script>alert('erro ao enviar')</script>"; }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.