Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Hugu

Formulário de contacto

Recommended Posts

Hugu

Boas!

Tenho um formulario no meu website e queria pôr ele a funcionar mas n sei como faze-lo! Estou a pensar em algo em java script, e queria o seguinte:

1)queria que ao escrever o formulario, certos campos do formulario sejam de preenchimento obrigatorio (campo "nome" e campo "email")

2)queria que precionarmos no botao send a script criasse um ficheiro de texto numa pasta p.ex.:"mensagens" que está alojada no servidor, com um nome 001.txt, 002.txt,....,999.txt, escrevesse no txt o nome na primeira linha, o email na 3ª linha, o assunto na 5ª linha e o texto apartir da 7ª linha..

Como faço isso em javascript?

O codigo html do formulario tenho-o assim feito:

<FORM>
<table border="0" width="100%">
<tr>   <td align=right><font size=3>Nome:</font></td> <td><INPUT TYPE="text" NAME="Nome:" SIZE="40" MAXLENGTH="40"></td> <td align=left>(Campo obrigatório)</td> </tr>
<br>
<tr>   <td align=right><font size=3>E-Mail:</font></td> <td><INPUT TYPE="text" NAME="E-Mail:" SIZE="40" MAXLENGTH="40"></td> <td align=left>(Campo obrigatório)</td> </tr>
<br>
<tr>   <td align=right><font size=3>Assunto:</font></td> <td><INPUT TYPE="text" NAME="Assunto:" SIZE="40" MAXLENGTH="40"></td> <td> </td> </tr>
</table>
<br>
<TEXTAREA NAME="comentario" COLS="60" ROWS="10" MAXLENGTH="8">
</TEXTAREA>
<br>
<INPUT TYPE="checkbox" NAME="Browser" VALUE="Netscape"> Reenviar para o meu e-mail<br><br>
<a href="mailto:comercialg7@gmail.com"> <INPUT TYPE="submit" VALUE="Enviar"> </a> 
<INPUT TYPE="reset" VALUE="Limpar Tudo">
</table>
</FORM>

cujo o resultado é este:

screenshotdm.png

obrigado!

Share this post


Link to post
Share on other sites
Knitter

JavaScript != Java :)

Esta é a secção de Java e não de Javascript, que (in)felizmente são duas linguagens bastante diferentes. Um moderador que mova isto para o local certo.

Quanto à pergunta, primeiro, Javascript corre no browser, não no servidor, e no browser o Javascript não pode criar ficheiros, nem de texto nem de outro formato qualquer. Não correndo no servidor, também não é possível criar ficheiros no servidor com Javascript.

O que terás obrigatoriamente de fazer é usar uma linguagem que execute no servidor, sendo que PHP é capaz de ser um boa opção, embora qualquer outra linguagem que tenhas acesso possa servir, e tratar o pedido que o browser faz.

Na acção do formulário colocas o endereço do script que vai processar o pedido, e nesse script guardas os dados.

Share this post


Link to post
Share on other sites
Hugu

O que terás obrigatoriamente de fazer é usar uma linguagem que execute no servidor, sendo que PHP é capaz de ser um boa opção, embora qualquer outra linguagem que tenhas acesso possa servir, e tratar o pedido que o browser faz.

Na acção do formulário colocas o endereço do script que vai processar o pedido, e nesse script guardas os dados.

😳

E em php como faria a coisa?

Share this post


Link to post
Share on other sites
Knitter

Que conhecimentos de programação tens?

O melhor seria mesmo pegares num manual de PHP, mas assim por alto:

  • Os dados de um formulário com method POST estão disponíveis nos scripts PHP através da variável $_POST, portanto aceder ao dados com, por exemplo, $_POST['Nome'], etc.
  • Usar o método file_put_contents ou os métodos fopen, fwrite e fclose para escrever os dados para o ficheiro. Utilizar os que forem mais úteis ou estiverem disponíveis na versão de PHP utilizada

Se procurares por tutoriais para formulários em PHP encontras centenas de resultados, todos eles te darão uma abordagem rápida de como usar PHP para processar dados de um formulário HTML.

Share this post


Link to post
Share on other sites
Hugu

Nao sei muito.. ando a ler uns tutoriais, mas é complicado encaixar tudo numa semana!..

Arranjei um exemplo dum forum de contacto, mas n consigo pô-lo a funcionar e n sei porque!  :bye2:

Alguém me pode ver onde está a gafe no codigo php?

É assim, tenho 2 ficheiros o form.html e o formulario.php e n consigo ver onde ha erro no codigo php..

<html>
<head>
<title>Formulário – MX Studio</title>
</head>
<body>
<form action="formulario.php" method="post" name="form_mxstudio" id="form_mxstudio" onsubmit="return validar();">
<table width="35%" border="1" cellpadding="2" cellspacing="2" bordercolor="#666666">
<tr>
<td colspan="2" bordercolor="#FFFFFF" bgcolor="#0099CC"><h3 class="style1">Formulário MX Studio </h3></td>
</tr>
<tr>
<td width="25%" align="right" bordercolor="#FFFFFF" bgcolor="#DFF4FF"><span class="style14">Seu nome:</span></td>
<td bordercolor="#FFFFFF"><input name="nome" type="text" id="nome" size="33"></td>
</tr>
<tr>
<td align="right" bordercolor="#FFFFFF" bgcolor="#DFF4FF"><span class="style14">Seu email:</span></td>
<td bordercolor="#FFFFFF"><input name="email" type="text" id="email" size="33"></td>
</tr>
<tr>
<td align="right" bordercolor="#FFFFFF" bgcolor="#DFF4FF" class="style14">Assunto:</td>
<td bordercolor="#FFFFFF"><input name="assunto" type="text" id="assunto" size="33" /></td>
</tr>
<tr>
<td align="right" bordercolor="#FFFFFF" bgcolor="#DFF4FF"><span class="style14">Mensagem:</span></td>
<td bordercolor="#FFFFFF"><textarea name="mensagem" cols="30" rows="5" id="mensagem"></textarea></td>
</tr>
<tr>
<td bordercolor="#FFFFFF"> </td>
<td align="right" bordercolor="#FFFFFF"><input name="enviar" type="submit" id="enviar" value="enviar"></td>
</tr>
</table>
</form>
</body>
</html>

<?php  print '<pre>'; print_r($_POST); print '</pre>'; ?>


<?php

$mensagem .= 'Nome: '.$_POST['nome'].' ';
$mensagem .= 'Email: '.$_POST['email'].' ';
$mensagem .= 'Mensagem:'. $_POST['mensagem'];

mail('seuemail@email.com, 'Formulário de Orçamento do site, $mensagem);


echo 'Enviado com Sucesso!';
echo 'Em breve entraremos em contato.';
?>



<script language=javascript>
   function validar() {
      var valido = false;
  
      with(document.form_mxstudio) {
             if (nome.value.length == 0){
                  valido = false;
                  nome.focus();
                  alert ('Campo nome obrigatório.');
     
              }else if(email.value.length == 0) {
                 valido = false;
                 email.focus();
                 alert ('Campo email obrigatório.');
    
               }else if(assunto.value.length == 0) {
                  valido = false;
                  assunto.focus();
                  alert ('Campo assunto obrigatório.');
    
              }else if(mensagem.value.length == 0) {
                 valido = false;
                 mensagem.focus();
                 alert ('Campo mensagem obrigatório.');
    
             }else {
                valido = true;
                submit();
             }
        return valido;
       } 
  }
</script>

Share this post


Link to post
Share on other sites
Hugu

Alguém me pode dizer se o codigo php tem alguma gafe ou se lhe falta alguma coisa?

É que n consigo pôr o dito cujo a funcionar!..  😲

Obrigado!

Share this post


Link to post
Share on other sites
scorch

Aqui não fechas as aspas.

mail('seuemail@email.com, 'Formulário de Orçamento do site', $mensagem);


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.