• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Formulário de contacto em php

maar3amt

Administrator
Team GForum
Entrou
Set 19, 2006
Mensagens
7,803
Gostos Recebidos
28
Aqui fica um formulário de contacto em php.


<html>
<head>
<title>Sua empresa.pt</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<center>
<br><br>
<?php

/*
Script de contacto desenvolvido por Márcio Rodrigues Gforum Digital - Fórum das Tecnologias Digitais!!!
*/

if ($_POST['enviar'] == TRUE) {
$smail = "seu email";
$nome = stripslashes(strip_tags($_POST['nome']));
$email = stripslashes(strip_tags($_POST['email']));
$assunto = stripslashes(strip_tags($_POST['assunto']));
$msg = stripslashes(strip_tags($_POST['msg']));
$ip = $_SERVER['REMOTE_ADDR'];
$formatacao = "De: $name ($ip)\nEmail: $email\n\n$msg";

if(empty($nome) || empty($email) || empty($assunto) || empty($msg)) {
echo "<h2>O email nao foi enviado</h2><p>Por favor preencha todos os campos</p>";
}
elseif(mail($smail, $assunto, $formatacao, "De: $nome <$email>")) {
echo "<h2>O email foi enviado!</h2><p>Iremos tentar responder em um prazo máximo de 24 horas após recepção.</p>"; }
else {
echo "<h2>O email nao foi enviado</h2><p>Por favor tente de novo...Se o erro continuar podera ser erro no servidor.</p>";
}
}
else { ?> <center>
<body bgcolor="#202020" text="#C58A12">
<table width="500" align="center">
<td align="left" width="100%">
<h2><i><b>Form de contacto</i></b></h2>
</td>
</table>
<form method="post" action="">
<table width="500" align="center">
<tr>
<td width="20%" align="left" valign="middle">
<label for="nome"><b>Seu Nome</b></label>
</td>
<td width="80%" align="left">
<input id="nome" name="nome" type="text" size="30" maxlength="40" />
</td>
</tr>
<tr>
<td width="20%" align="left" valign="middle">
<label for="email"><b>Seu Email</b></label>
</td>
<td width="80%" align="left">
<input id="email" name="email" type="text" size="30" maxlength="40" />
</td>
</tr>
<tr>
<td width="20%" align="left" valign="middle">
<label for="assunto">Assunto</label>
</td>
<td width="80%" align="left">
<input id="assunto" name="assunto" type="text" size="30" maxlength="40" value="" />
</td>
</tr>
<tr>
<td width="20%" align="left" valign="middle">
<label for="msg"><b>Mensagem</b></label>
</td>
<td width="80%" align="left">
<textarea id="msg" name="msg" cols="50" rows="6"></textarea>
</td>
</tr>
</table>
<table width="500" align="center">
<td align="center" width="100%">
<input id="enviar" type="submit" name="enviar" value="Enviar" />
</td>
</table>

</form>
</body>
</html>
<?php } ?>
Precisa de editar a variable $smail = "seu email"; e onde está o valor seu email coloque o email onde pretende receber os dados do formulário.

Este formulário já captura o ip da pessoa que o enviou.


Cumps maar3amt
 

arpineu

Novo
Membro Inactivo
Entrou
Mar 26, 2009
Mensagens
1
Gostos Recebidos
0
Muito Obrigado por este código!
Só tenho um pequeno problema cada vez que tento enviar uma mensagem através deste form diz-me o seguinte:
-"405 Method Not Allowed
The HTTP verb used to access this page is not allowed."
Achas que me podes ajudar?
Obrigado!!!
 

maar3amt

Administrator
Team GForum
Entrou
Set 19, 2006
Mensagens
7,803
Gostos Recebidos
28
Esse problema pode estar a dever-se ao seu actual fornecedor de serviços não estar a aceitar o methodo "POST".

Experimente utilizar o "ob_start();" no inicio e o "ob_flush();" no fim do código.

Pode resolver a situação utilizando o methodo "GET" mas para isso o código acima necessita ser alterado.

PS. Se actualmente tem um serviço pago reclame junto do seu fornecedor de serviços.
 

Kangoroo

GF Ouro
Entrou
Set 24, 2006
Mensagens
952
Gostos Recebidos
0
Boas,

Pode ser que:

Estejas a tentar submeter os dados para uma pagina considerada estactica pelo servidor, por ex. .html

Criaste o script num ficheiro .html e nao num .php.

Ou entao estas a tentar executar o script num servidor IIS.
 

Hackerato

GF Bronze
Membro Inactivo
Entrou
Mai 3, 2008
Mensagens
2
Gostos Recebidos
0
nao ha nenhuma maneira de enviar o formelario para outroo ficheiro php?
 

Kangoroo

GF Ouro
Entrou
Set 24, 2006
Mensagens
952
Gostos Recebidos
0
nao ha nenhuma maneira de enviar o formelario para outroo ficheiro php?

Obviamente q sim, no formulario usa-se:

Código:
action="outro_ficheiro.php"

independentemente de se usar o metodo POST ou GET, no outro_ficheiro.php usa-se o as variaveis de sistema:

Código:
$variavel = $_REQUEST['nome_do_campo'];

para adquirir os dados submetidos.
 

Hackerato

GF Bronze
Membro Inactivo
Entrou
Mai 3, 2008
Mensagens
2
Gostos Recebidos
0
isso do action="outro_ficheiro.php" eu ja calculava mas mesmo assim ainda nao percebi como fasso o outro ficheiro o que vai receber a informaçao
 

Kangoroo

GF Ouro
Entrou
Set 24, 2006
Mensagens
952
Gostos Recebidos
0
isso do action="outro_ficheiro.php" eu ja calculava mas mesmo assim ainda nao percebi como fasso o outro ficheiro o que vai receber a informaçao

faz-se precisamente com: "$_REQUEST['nome_do_campo'];"


por exemplo, partindo do principio q estas a submeter um formulario com os campos: nome e idade.

no formulario tens por exemplo:
Código:
<input type="text" size="20" name="nome" id="nome">
<input type="text" size="5" name="idade" id="idade">

no ficheiro que para o qual o form vai ser submetido a informaçao é lida da seguinte forma:

Código:
<?
$nome = $_REQUEST['nome']; //a variavel $nome guarda o conteudo q foi submetido no campo nome

$idade = $_REQUEST['idade']; //a variavel $idade guarda o conteudo q foi submetido no campo idade
?>

depois podes fazer o q quiseres com as duas variaveis, como por exemplo, apresenta-las no ecra:

Código:
<?
echo 'O seu nome é: '.$nome.'<br>A sua idade é: '.$idade;
?>

é simples.
 
Topo