formulário(envio de dados) - mais esclarecimentos...

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

formulário(envio de dados) - mais esclarecimentos...

Mensagempor iceangel » Terça Mar 20, 2007 15:31

Olá a tds!
keria aki kolocar uma kestão sobre o envio de formulários. antes de iniciar este tópico, pesquisei no forum e encontrei alguns topicos relacionados kom a minha dúvida, ms infelizmente n fikei totalmente esclarecida...p.exemplo:

http://www.hardware.com.pt/forum/viewto ... rio#152649

tenho um site (criado em frontpage), onde colokei uma página para o utilizador tirar dúvidas - um formulário (com nome, telefone assunto, etc). a kestão é a mesma k tenho verificado em outros topicos: como enviar os dados inseridos no formulario directamente para um email?ou seja, komo s faz para k kuando s clica no botao Submit, n abra consecutivamente o outlook ou outra coisa do genero e envie directamente?

desculpem colocar um novo topico sobre este assunto, ms pelos outros k estive a ler, n fikei mt esclarecida...
Pelo k eu estive a perkisar é necessário criar um "pekeno" codigo em PHP...algumas partes como o action="malito:"nome@nome.pt", ainda percebi ms n estou mt dentro do assunto...

Agradecia uma "ajudazinha"...

ps:a página ainda n está alojada, ms irá ser hospedada na Telepac..

cumps :wink:
...a minha assinatura é grande demais para caber aqui...
iceangel
Aprendiz
Aprendiz
 
Mensagens: 41
Registado: Sexta Mar 02, 2007 14:06
Localização: ...daqui...dali...

Mensagempor capricorn » Terça Mar 20, 2007 16:11

Para isso é necessário que o servidor permita código phpou asp, é esse o caso?
capricorn
Membro de Prata
Membro de Prata
 
Mensagens: 383
Registado: Sexta Ago 20, 2004 13:03
Localização: Porto

Mensagempor SkylineGTR » Terça Mar 20, 2007 16:11

Penso que isto deve-te ajudar:

http://www.w3schools.com/php/php_mail.asp
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor iceangel » Terça Mar 20, 2007 16:36

capricorn Escreveu:Para isso é necessário que o servidor permita código phpou asp, é esse o caso?


n sei :? a telepac n disponibiliza essa informação, acho eu....
http://www.telepac.pt/prod.html?id=F0460

-->o tarifario a usar será o d 50MB...
...a minha assinatura é grande demais para caber aqui...
iceangel
Aprendiz
Aprendiz
 
Mensagens: 41
Registado: Sexta Mar 02, 2007 14:06
Localização: ...daqui...dali...

Mensagempor iceangel » Terça Mar 20, 2007 16:47

SkylineGTR Escreveu:Penso que isto deve-te ajudar:

http://www.w3schools.com/php/php_mail.asp


Obrigada, SkylineGTR. Ms tem lá uma parte k n percebo...li num livro k o action serve para "dizermos" para onde os dados são enviados--ex: malito:"lol@lol.pt". no site k indicast tem lá um exemplo k tem isto:

echo "<form method='post' action='mailform.php'>

percebo pouco disto ms, action='mailform.php', n está a 'redireccionar' para um ficheiro php de nome mailform.. :? desculpa a ignorancia, s for o caso..

cumps :wink:
...a minha assinatura é grande demais para caber aqui...
iceangel
Aprendiz
Aprendiz
 
Mensagens: 41
Registado: Sexta Mar 02, 2007 14:06
Localização: ...daqui...dali...

Mensagempor SkylineGTR » Quarta Mar 21, 2007 2:04

iceangel Escreveu:
SkylineGTR Escreveu:Penso que isto deve-te ajudar:

http://www.w3schools.com/php/php_mail.asp


Obrigada, SkylineGTR. Ms tem lá uma parte k n percebo...li num livro k o action serve para "dizermos" para onde os dados são enviados--ex: malito:"lol@lol.pt". no site k indicast tem lá um exemplo k tem isto:

echo "<form method='post' action='mailform.php'>

percebo pouco disto ms, action='mailform.php', n está a 'redireccionar' para um ficheiro php de nome mailform.. :? desculpa a ignorancia, s for o caso..

cumps :wink:


Percebeste +/- bem...
De facto o action serve para indicar para onde os dados são enviados, mas sim para uma nova página.

Tens de ter duas páginas, uma que contém o formulário e uma segunda onde os dados são recebidos, "tratados" e onde o email é enviado usando então a função php mail().

Se tiveres dúvidas relativas a como fazer isto diz o que pretendes que eu dou-te uma ajuda a nível de código.

Não tenho a certeza, mas penso que os servers Telepac têm PHP, mas convém confirmares...
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor iceangel » Quarta Mar 21, 2007 15:12

SkylineGTR Escreveu:Tens de ter duas páginas, uma que contém o formulário e uma segunda onde os dados são recebidos, "tratados" e onde o email é enviado usando então a função php mail().


Obrigada pela explicação SkylineGTR!Fikei a perceber melhor o funcionamento do envio de dados preenchidos em formulários.
E sim, claro que aceito uma ajudazinha;)!é k eu em código php ainda estou mt 'verde'...Portanto se m poderes ajudar, melhor!
Ora, o que eu pretendo é um formuláio simples, que aliás já está construído.

Imagem
(dentro do campo select tem as opcoes: telefone, telemóvel e fax)

E que quando, depois de preenchido, o utilizador clica-se no botão de submter não abri-se o outlook, ms envia-se normalment, percebs....
sei k antes do 'enviar' propriamente dito é necessário fazer uma avaliação prévia dos dados a enviar, em javascript, ms nisso inda m arranjo...
Bom, se poderes dar-m uma maozinha, fiko desde já agradecida :wink:

cumps :wink:
...a minha assinatura é grande demais para caber aqui...
iceangel
Aprendiz
Aprendiz
 
Mensagens: 41
Registado: Sexta Mar 02, 2007 14:06
Localização: ...daqui...dali...

Mensagempor SkylineGTR » Quarta Mar 21, 2007 15:47

Terás então de criar uma nova página e em action do teu formulário deverás meter o nome dessa página. O conteúdo será algo como isto (não sei se contém erros, é uma questão de testares):

Código: Seleccionar todos
<?php

// Email de destino (editar o que está entre "" para o email desejado
$to = "o_teu_email@email.com"

// Passar os dados dos formulários para variáveis
$name = $_POST["nome"];
$email = $_POST["email"];
$other = $_POST["outro"];
$type = $_POST["lista0"];
$subject = $_POST["assunto"];
$message = $_POST["duvida"];

// Construção da mensagem a enviar por email com todos os dados recebidos
$smessage = "Nome: ".$name."\nEmail: ".$email."\nOutro contacto: ".$other." - ".$type."\n\nMensagem: \n\n".$message."\r\n";

// Construção do header do email
$headers = "From: ".$email."\r\nReply-To: ".$email."\r\nReturn-Path: ".$email."\r\n";

// Envio do email
$mailsent = mail($to, $subject, $smessage, $headers);

         
if($mailsent) // Se o email for enviado mostra uma mensagem de sucesso   
{
   echo "A sua mensagem foi enviada com sucesso.<br>";
   echo "Obrigado.";

}
else // Caso contrário mostra uma mensagem de insucesso
{
   echo "Ocorreu um erro ao enviar a sua mensagem. Tente novamente!<br>";
}

?>



Não esquecer que isto é php e necessita de ser executado ao nível do servidor. Poderás fazê-lo usando um alojamento com suporte de php ou então fazê-lo localmente usando por exemplo o XAMPP (Apache + PHP, etc) ou algo do género.

Isso pode ser costumizado ao teu gosto, especialmente a parte das mensagens. Podes até adicionar uns botões.

Não te esqueças de meter no formulário method="post".

Se quiseres alguma validação ao nível do php também se arranja ;)

Espero ter ajudado :)
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor iceangel » Quarta Mar 21, 2007 16:02

SkylineGTR Escreveu:Não esquecer que isto é php e necessita de ser executado ao nível do servidor. Poderás fazê-lo usando um alojamento com suporte de php ou então fazê-lo localmente usando por exemplo o XAMPP (Apache + PHP, etc) ou algo do género.


Sim ajudas-t mt SkylineGTR, obrigada! Só k ainda n experimentei o código, pois s estou a perceber, para isto funcionar é necessário k a página já esteja alojada, ou k tenha o apache ou outro instalado né?n dá para,p.exemplo, eu preencher os campos e enviar para o meu mail para experimentar, pois n?

cumps :wink:
...a minha assinatura é grande demais para caber aqui...
iceangel
Aprendiz
Aprendiz
 
Mensagens: 41
Registado: Sexta Mar 02, 2007 14:06
Localização: ...daqui...dali...

Mensagempor SkylineGTR » Quarta Mar 21, 2007 18:08

iceangel Escreveu:
SkylineGTR Escreveu:Não esquecer que isto é php e necessita de ser executado ao nível do servidor. Poderás fazê-lo usando um alojamento com suporte de php ou então fazê-lo localmente usando por exemplo o XAMPP (Apache + PHP, etc) ou algo do género.


Sim ajudas-t mt SkylineGTR, obrigada! Só k ainda n experimentei o código, pois s estou a perceber, para isto funcionar é necessário k a página já esteja alojada, ou k tenha o apache ou outro instalado né?n dá para,p.exemplo, eu preencher os campos e enviar para o meu mail para experimentar, pois n?

cumps :wink:


Podes correr isto localmente (no teu PC), mas para isso precisas de um servidor com PHP. Isso é bastante simples de resolver, basta que para isso instales o XAMPP:

http://www.apachefriends.org/download.p ... taller.exe

Só tens de instalar isso, e depois activar o Apache através do XAMPP Control Panel.
O teu site deve ser colocado dentro da directoria onde instalares o XAMPP, mais precisamente dentro da directoria htdocs. Podes criar uma pasta tipo meusite e colocá-la dentro dessa directoria com os ficheiros do teu site lá dentro.
Depois para correr o site só tens de abrir o teu browser e escrever http://localhost/meusite/.

Qualquer dúvida diz.

PS: Se já fizeste este passos todos, estás a correr o site mas não está a enviar o email, provavelmente precisarás de editar o ficheiro php.ini do servidor.

Para isso vai a ..\Xampp\xampp\apache\bin e encontrarás um ficheiro php.ini. Abre e procura a linha que diz SMTP = localhost e substitui o localhost pelo teu endereço smtp. No meu caso que sou netcabo é smtp.netcabo.pt, tens de ver qual é o teu.
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor iceangel » Domingo Abr 01, 2007 17:50

olá!obrigada SkylineGTR pela ajuda e desculpa responder tao tarde. O site com o formulário ja esta alojado e pelo k m informei suporta php. Mas continuo com dificuldades em pô-lo a funcionar (o formulário) :? ...
Usei akele codigo k m enviast e ajustei com os meus dados. Guardei como form.php e a minha dificuldade agora é colocá-lo a funcionar...n sei s estou a fazer d maneira correcta, ms fiz o seguinte: depois de guardar como form.php, foi ao código do meu formulário e fiz isto:
Código: Seleccionar todos
<form method="POST" action="form.php">
   <input TYPE="hidden" NAME="VTI-GROUP" VALUE="0">
   <p>Nome <input type="text" name="nome" size="20"></p>
   <p>E-Mail <input type="text" name="email" size="20"></p>
   <p>Assunto <input type="text" name="assunto" size="20"></p>
   <p><textarea rows="9" name="duvida" cols="36"></textarea></p>
<input type="submit" name="Submit" value="Enviar">
<input type="reset" value="Repor" name="B2"></p>

</form>


Depois passo isto pó alojamento ms continua sem funcionar! :cry: ...n sei s terá alguma coisa haver com o facto de estar a usar o frontpage 2003 para passar os ficheiros da pagina para o alojamento...
anyway...somebody help me please!!!


cumps :wink:
...a minha assinatura é grande demais para caber aqui...
iceangel
Aprendiz
Aprendiz
 
Mensagens: 41
Registado: Sexta Mar 02, 2007 14:06
Localização: ...daqui...dali...

Mensagempor scroll » Sexta Mai 11, 2007 15:28

experimenta adicionar id e/ou name ao form tag.
ex:
Código: Seleccionar todos
<form id="form1" name="form1" method="post" action="form.php">


abraço
rg

ps - mas já devia ter funcionado...
Editado pela última vez por scroll em Sexta Mai 11, 2007 15:36, num total de 1 vez.
Imagem
Imagem
scroll
Aprendiz
Aprendiz
 
Mensagens: 50
Registado: Sexta Mai 11, 2007 9:55

Mensagempor scroll » Sexta Mai 11, 2007 15:34

Dica:

Não precisas de enviar para nenhum file de php, o próprio file que têm o form se for em PHP pode fazer tudo

Código: Seleccionar todos
<?php
$aviso='';
$srtemail = strlen ($_POST['email']);
$srtnome = strlen ($_POST['nome']);

if ($_POST['Submit']=='Enviar' && $srtemail >= 10 && $srtnome >= 5)
{
   // Email de destino (editar o que está entre "" para o email desejado
   $to = 'teu_email@dominio.com';
   
   // Passar os dados dos formulários para variáveis
   $name = $_POST['nome'];
   $email = $_POST['email'];
   $subject = $_POST['assunto'];
   $message = $_POST['duvida'];
   
   // Construção da mensagem a enviar por email com todos os dados recebidos
   $smessage = "Nome: ".$name."\nEmail: ".$email."\nOutro contacto: ".$other." - ".$type."\n\nMensagem: \n\n".$message."\r\n";
   
   // Construção do header do email
   $headers = "From: ".$email."\r\nReply-To: ".$email."\r\nReturn-Path: ".$email."\r\n";
   
   // Envio do email
   $mailsent = mail($to, $subject, $smessage, $headers);
         
   if($mailsent) // Se o email for enviado mostra uma mensagem de sucesso   
   {
      $aviso=$_POST['nome'].", a sua mensagem foi enviada com sucesso.<br>";
      $aviso.="Obrigado.";
   }
   else // Caso contrário mostra uma mensagem de insucesso
   {
      $aviso="Ocorreu um erro ao enviar a sua mensagem. Tente novamente!<br>";
   }

}
else if($_POST['Submit']=='Enviar' && !$srtemail && !$srtnome)
{
   $aviso="Dados incompletos! <br>";
}
else // Caso contrário mostra uma mensagem de insucesso
{
   $aviso="Por favor preencha os dados abaixo <br>";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Envio de Email via Browser</title>
<style type="text/css">
<!--
.style1 {
   font-family: Verdana, Arial, Helvetica, sans-serif;
   font-size: 9px;
   font-weight: bold;
}
.style2 {
   font-family: Verdana, Arial, Helvetica, sans-serif;
   font-size: 9px;
}
.style3 {color: #FF0000}
body {
   background-color: #CCCCCC;
   margin-left: 20px;
   margin-top: 20px;
}
-->
</style>
</head>

<body>
<form action="" method="POST" enctype="multipart/form-data" name="form1" id="form1">
<?php if($aviso) { ?>
<p class="style2 style3"><?php echo $aviso; ?></p>
<? } ?>
<table width="350" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="25">&nbsp;</td>
    <td height="25">&nbsp;</td>
  </tr>
  <tr>
    <td width="75" height="25"><div align="left"><span class="style1">Nome</span></div></td>
    <td width="275" height="25"><div align="left">
      <input name="nome" type="text" class="style2" size="48" />
    </div></td>
  </tr>
  <tr>
    <td height="25"><div align="left"><span class="style1">E-Mail</span>&nbsp;</div></td>
    <td height="25"><div align="left">
      <input name="email" type="text" class="style2" size="48" />
    </div></td>
  </tr>
  <tr>
    <td height="25"><div align="left"><span class="style1">Assunto</span></div></td>
    <td height="25"><div align="left">
      <input name="assunto" type="text" class="style2" size="48" />
    </div></td>
  </tr>
  <tr style="line-height: 3px;">
    <td colspan="2" valign="top">&nbsp;</td>
    </tr>
  <tr>
    <td valign="top"><div align="left"><span class="style1">Ficheiro</span></div></td>
    <td><div align="left">
      <textarea name="duvida" cols="45" rows="9" class="style2"></textarea>
    </div></td>
  </tr>
  <tr>
    <td height="25"><div align="left"><span class="style1">Ficheiro</span></div></td>
    <td><div align="left">
      <input name="file" type="file" class="style2" size="30" />
    </div></td>
  </tr>
  <tr>
    <td height="25">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="25">&nbsp;</td>
    <td>
    
       <div align="left">
         <input name="Submit" type="submit" class="style2" value="Enviar">
         &nbsp;
         <input name="B2" type="reset" class="style2" value="Repor">   
      </div></td>
  </tr> 
</table>
</form>

</body>
</html>



Fica aqui o exemplo...

Abraço
Rui Gomes
Imagem
Imagem
scroll
Aprendiz
Aprendiz
 
Mensagens: 50
Registado: Sexta Mai 11, 2007 9:55


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes

cron