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

Busca + Formmail!


Marcio Medina

Pergunta

Olá pessoal,

Minha dúvida é a seguinte: eu montei um sistema de cadastro, alteracão, exclusão e busca no bd...eu queria o seguinte; quando a pessoa digita no text field o nome do cadastrado e clica em buscar, ele chama a página busca.php, onde aparece o resultado da busca. Eu queria que a pessoa tivesse como mandar o resultado da busca por e-mail. Tipo assim: ele digita zé mané...ai a página busca o cadastro zé mané. Até aí eu consigo fazer. Mas como eu faria para mandar o cadastro desse zé mané para uma pessoa da minha escolha? Penso que a page deveria ter isso: nome de quem quer enviar, endereco do destinatário e o botão enviar. Desta forma, esse cadastro seria enviado por e-mail para a pessoa que eu especifiquei no campo e-mail. Será que alguém me dá uma luz?

Valewww...

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Olá Error,

Sei o que você esta falando e tenho vários scripts de formmail, mas eu não estou conseguindo raciocinar direito. Como vou colocar o resultado de uma busca dentro de um formmail? Isso que não estou entendendo. Fazer os scripts em htm e php para criar os mecanismos eu até que sei, mas não entendo isso: como meu formmail vai pegar o resultado e enviá-lo?

Também gostaria de saber o que eu devo colocar no meu form para enviar a msg para onde eu quiser. Um exemplo Form method=post action=http>//......cgi e etc...no input hidden tem esta outra dúvida:ao invés de eu colocar um e-mail de destino ou especificar sua coluna no bd, eu gostaria que o proprio visitante escolhesse para onde quer mandar. Eu imaginei que para isso deveria ter um textfield, mas o que eu coloco no lugar do recipient ou do form action que fará ele buscar o texto do text field ao invés de ter um endereco pré estabelecido (como é normal)?

Me dê uma forca ai...entaum resumindo: eu já montei uma pagina de cadastro, uma para alterar o cadastro, uma para excluir e uma para consultar chamada busca.php. Nesta página busca eu gostaria de colocar um form que enviasse esse resultado para um e-mail especificado pelo visitante. É isso aí...será que pode me ajudar?

Valewww...

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, cara, desculpa cortar o seu barato mas eu acho muito estranho que você tenha montado um sistema todo de banco de dados e busca e não saiba fazer uma coisa tão simples.

Essa história de pegar script pronto e ir "montando" o seu nunca é o melhor caminho.

Mas vamos ao seu problema. Primeiro quero saber algumas coisas:

1ª: você sabe criar um formulário em HTML e programá-lo para enviar dados para uma página PHP que irá monstrar esses dados na tela e inserir no banco de dados?

2ª: você domina esse esquema dos formulários e enviar variáveis?

Link para o comentário
Compartilhar em outros sites

  • 0

Por incrível que pareca é isso aí...eu não fiz curso das linguagens, fui aprendendo lendo tutoriais e etc...por isso não tenho um conhecimento estão aprofundado, mas quebro um galho legal...fazer um form html sim...eu só tomo pau na hora de definir para quem vai o form preenchido. Eu consigo deixar os destinatarios pelo hidden recipient do html...os outros campos como: e-mail de quem ta enviando, assunto, mensagem, sexo, empresa e etc eu sei fazer...no php consigo montar, como você disse, baseado em alguns scripts que eu pego e tento entender...na maioria das vezes da certo...eu entendi o esquema de encio, de atualizacão, de exclusão e de busca...deu para entender sim, mas não sei como criar um form DENTRO DA PAGINA DE RESULTADO DA BUSCA que envie este resultado para quem eu quiser...é isso aí...vivendo e aprendendo...talvez você possa me passar algo e eu aproveite, assim como aprendi o que sei até hj...concordo com você...é estranho eu saber umas coisas e outras não, mas não fiz curso e aprendo na raca...se puder me ajudar serei muito grato....valewww...

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, então você está travado, mesmo tendo aprendendo o que for, se você não conseguir montar um form e souber enviar as variáveis direitinho não vai conseguir fazer quase nada em PHP.

Então eu vou, sim, ser chato e não vou te passar a coisa pronta, vou te explicar pra você entender essa parte do início, que é bem simples, mas todo mundo tem que aprender. Não dá pra querer correr sem saber engatinhar, não acha?

Como você deve saber, ou imaginar, PHP é uma quase-linguagem [porque ela não é compilada] SERVER-SIDE, ou seja, ela roda no servidor, diferente de JavaScript, por exemplo, que é CLIENT-SIDE, ou seja, roda no browser do cabra que abrir a página.

Por isso PHP não apresenta variações de resultado conforme o browser ou sistema onde ele é acessado. O que interfere nisso é o servidor onde o script está hospedado.

Sendo SERVER-SIDE, toda a informação tem que ser processada pelo servidor e então enviada para o usuário. Então sempre que você quiser que o PHP faça alguma coisa nova, qualquer coisa que seja, você vai ter que enviar dados ao servidor. Isso pode ser feito de 2 formas:

Usado em formulários com method='get' e no envio de informação por query string [popular URL]. Quando o formulário tem o método GET, ele vai passar a informação toda por query string. Isso permite que o usuário veja toda a informação que está sendo passada e reflete em algumas limitações de quantidade de informação que pode ser enviada. Não é recomendado pra passar informações sigilosas ou coisas do gênero.

Ex: http://seusite.com.br/pagina.php?variavel=valor

Usado somente em formulários com method='post', a informação enviada via POST é passada "por debaixo dos panos", sem que o usuário tenha acesso direto à ela como ocorre com a query string.

Ex: <form name='formulario' method='post' atcion='pagina.php'>

Toda vez que você envia uma variável via GET, ela estará disponível no PHP como $_GET['variavel]; no caso do POST, $_POST['variavel'].

Teste esses exemplos:

<?php

echo "Você enviou ";

echo $_POST['campo1];

echo " via POST.<br \>";

?>

<form method='post' action='exemplo1.php'>

Digite alguma coisa:

<input type='text' name='campo1'>

<input type='submit' value='enviar'>

</form>

<?php

echo "Você enviou ";

echo $_GET['variavel'];

echo " via GET.<br \>";

?>

<a href='exemplo_get.php?variavel=GETinfo'>exemplo_get.php?variavel=GETinfo</a>
<form method='get' action='exemplo1.php'>

Digite alguma coisa:

<input type='text' name='campo1'>

<input type='submit' value='enviar'>

</form>

Execute esses exemplos e veja o que acontece. Veja se você entende como as coisas funcionam no envio de informação... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

ok...já entendi e consegui fazer o form enviar para quem eu quiser...já esta funcionando o esquema de variáveis e tudo mais...eu ateh coloquei o form na page de resultados...ai eu digito um nome na pagina busca e clico em buscar...o resultado sai na page resultado.php e o form já esta na page tb, funcionando tudo certinho...agora só falta o resultado da busca ser enviado atraves deste form...é para um sistema que funciona da seguinte forma: todos os funcionarios cadastram os produtos de uma papelaria...e existe outra papelaria que não deve ter acesso ao bd...entaum uma pessoa autorizada acessa a page de busca do bd, obtem o resultado e envia via mail para a filial, pois a filial não pode ter acesso ao bd...o esqueminha que eu fiz é o seguinte: na page resultado o cara tem que copiar o resultado e colar na text area...digitar o destinatario, assunto, e o e-mail dele (quem esta enviando)...isso já esta funcionando, porém eu keria saber como faco para enviar este resultado sem ter que copiar e colar na text area...é isso ai, mas valewww por todas as explicacões...to mesmo a fim de aprender...se você puder, continue me ajudando...valeu

Link para o comentário
Compartilhar em outros sites

  • 0

$db = mysql_connect ("mysql.meudominio.com.br", "meulogin", "minhasenha");

mysql_select_db("meulogin",$db);

Sabe o que essa parte em vermelho faz, né?

Bom, agore crie uma tabela de testes com os seguintes campos:

• id AUTO_INCREMENT NOTNULL PRIMARY KEY

• nome VARCHAR(30)

• sobrenome VARCAHAR(30)

• idade INT(2)

Onde os números dentro dos parênteses são os tamanhos [em caracteres] que cada campo deve ter.

Depois disso, caso você saiba, posta um esqueminha em PHP pra mostrar todos os valores da tabela... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Sei sim o que significa mysql_select_db("meulogin",$db);...o nome do meu bd...é isso?

Bom, agora o code da tabela que você pediu para criar:

<?php

$db = mysql_connect ("mysql.meudominio.com.br", "meu_login", "minha_senha");

mysql_select_db("meu_login",$db);

$result = mysql_query("select id, nome, sobrenome, idade from tabela", $db);

echo "id - nome - sobrenome - idade<br>";

while($row = mysql_fetch_array($result)) {

echo $row["id"], " ", $row["nome"]," " $row["sobrenome"]," "$row["idade"], "<BR>";

}

mysql_free_result($result);

mysql_close ($db);

?>

E depois???

Link para o comentário
Compartilhar em outros sites

  • 0

eu não quero atrapalhar a aula do Error mas só quero dar uma dica caso você não saiba

se pode usar assim:

$result = mysql_query("select * from tabela");

o asterisco ( * ) pega todos os campos da tabela como se fosse um coringa ,o menos que você não queira selecionar algum campo ai sim você digita os campos que quer

ate mais desculpa ai Error wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

eu não quero atrapalhar a aula do Error mas só quero dar uma dica caso você não saiba

Sem problema, não está atrapalhando! A dica foi muito bem vinda! biggrin.gif

Marcio, o sistema que você fez parece funcionar perfeitamente.

Você entendeu todas as etapas, entede de onde vem os campos e quais variáveis estão recebendo quais valores?

Se você entendeu como isso funciona está a menos de 1 passo de conseguir montar o que você quer... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

<?php

//pegar dados do form

$nome      = $_POST["nome"];

$email      = $_POST["email"];

$mensagem  = $_POST["mensagem"];

$assunto    = $_POST["assunto"];

$email_from = $_POST["email_from"];

//formatacão da msg

$mensagem  = wordwrap( $mensagem, 50, "<br>", 1);

//validar os e-mails

if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){

echo"<center>Digite corretamente o e-mail</center>";

echo "<center><a href=\"javascript:history.go(-1)\">Voltar</center></a>";

exit;

}

if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email_from)){

echo "<center>Digite corretamente o e-mail</center>";

echo "<center><a href=\"javascript:history.go(-1)\"><center>Voltar</center></a>";

exit;

}

$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;

if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){

$fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");

$anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"]));         

$anexo = base64_encode($anexo);

fclose($fp);

$anexo = chunk_split($anexo);

$boundary = "XYZ-" . date("dmYis") . "-ZYX";

    $mens = "--$boundary\n";

    $mens .= "Content-Transfer-Encoding: 8bits\n";

    $mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; //plain

    $mens .= "$mensagem\n";

    $mens .= "--$boundary\n";

$mens .= "Content-Type: ".$arquivo["type"]."\n";

$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";

$mens .= "Content-Transfer-Encoding: base64\n\n";

$mens .= "$anexo\n";

$mens .= "--$boundary--\r\n";

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

$headers .= "From: \"$nome\" <$email_from>\r\n";

$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";

$headers .= "$boundary\n";

//enviar e-mail com anexo   

mail($email,$assunto,$mens,$headers);

echo"Email enviado com Sucesso!";

}

//caso não tenha anexo

else{

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

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

$headers .= "From: \"$nome\" <$email_from>\r\n";

//envia o email sem anexo

mail($email,$assunto,$mensagem, $headers);

echo"Email enviado com Sucesso!";

}

 

?>

E agora???? huh.gif

ps: sempre que postar um código, coloque dentro de

ou
 
Link para o comentário
Compartilhar em outros sites

  • 0

Aqui você tem as variáveis que serão usadas no envio do e-mail

$nome      = $_POST["nome"];

$email      = $_POST["email"];

$mensagem  = $_POST["mensagem"];

$assunto    = $_POST["assunto"];

$email_from = $_POST["email_from"];

É só pegar as variáveis que vem do banco de dados, como você mostrou que sabe fazer, e organizar tudo dentro dessas variáveis que vão ser enviadas no e-mail...

Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi...veja só se você entendeu:

Eu criei uma page que possui 4 tabelas html sendo elas:

Adicionar usuario;

Alterar usuario;

Excluir usuário;

Buscar usuário.

quando você coloca um valor na tabela Buscar usuário e clica em "buscar", ele chama a page busca.php, onde esta page exibe o resulatdo da busca. Entaum, nesta page eu coloquei um form conforme aquele que eu passei o code que possui os seguintes campos:

Nome: (de quem esta enviando)

E-=mail: (de quem esta enviando)

E-mail: (para quem será enviado)

Assunto: (assunto da msg)

Mensagem: (neste campo eu queria que o resultado da busca fosse inserido).

Entaum resumindo, eu tenho uma page de resultado com um form para enviar este resultado a quem eu quiser, só não sei como colocar este resultado dentro do campo mensagem sem ter que copiar e colar...é isso aí...

Link para o comentário
Compartilhar em outros sites

  • 0

Se eu entendi é só você fazer isso:

exemplo:

$nome      = $_POST["nome"];

$email      = $_POST["email"];

$assunto    = $_POST["assunto"];

$email_from = $_POST["email_from"];

$busca = $_POST["busca"];

$re = mysql_query("Select * from tabela where campo = '$busca'");

while($l = mysql_fetch_array($re)){

$mensagem = $l["mensagem"];

}

mail($email,$assunto,$mensagem, $headers);

é +- isso ?

Link para o comentário
Compartilhar em outros sites

  • 0

Olha só como funciona pessoal...tem as imgs ai...

user posted image

e depois que clica em buscar:

user posted image

no campo mensagem, gostaria que aparecesse o resultado da busca, ou nem precisaria existir este campo, simplesmente a busca deveria ser enviada para outra pessoa...será que ficou melhor?

Ae Fabyo, não rolou o que você passou...mas valeu...

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...