1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Upload de ficheiro com formulário de contacto

Discussão em 'Web Development' iniciada por RPortela, 28 de Abril de 2007. (Respostas: 10; Visualizações: 1598)

  1. RPortela

    RPortela Power Member

    Boas,

    Alguem me sabe explicar de como posso fazer um formulário de contactos e que permita upload de ficheiros, que depois seria redirecionado para um e-mail ??

    Ou seja, o que quero, é que o cliente tenha a possibilidade de fazer o upload de um ou mais ficheiros (fotos) e que preencha um formulário, e que todos esses dados fossem enviados para um e-mail (incluindo as fotos).

    PS: Não percebo nada de ASP e de PHP apenas sei o básico:'(

    Cumps.
     
  2. Oi, olha, o meu conselho, já que dizes que não percebes nada de php e MySql
    era utilizares um daqueles sites que te faz os formulários automaticamente...

    exemplo: freedback.com

    que vem já com essas opções todas (num clique)
     
  3. chantas

    chantas Power Member

    Espero que não se importem que aproveite este tópico, assim escuso de criar um novo.

    Eu estou a tentar criar um formulário de contacto extremamente simples, só com nome,email e comentários. Já inseri o código todo e penso que está td no sitio certo...no entanto quando o coloco online e quando tento enviar um email a partir dele aparece-me uma página branca a dizer "SPAM!" e não faz o envio da mensagem.

    Vou colocar aqui o código para que os que tenham mais experiência em PHP me possam dar uma ajuda ok??

    Aqui vai ele!:

    Código:
    <?php
    
    if(isset($_POST['Submit'])) {
    
        $name = $_POST['name'];
    
        $email = $_POST['email'];
    
        $comments = $_POST['comments'];
    
        $mailing = $_POST['mailing'];
    
        if($name == '' or $email == '' or $comments == '') {
    
            $err = true;
    
            $msg = 'Please complete your name, email address and comments to submit the form.';
    
        } else {
    
            $mailmsg = 'The following email has been sent from the contact form:' . "nn";
    
            $mailmsg.= 'Name: ' . $name . "n";
    
            $mailmsg.= 'Email: ' . $email . "n";
    
            $mailmsg.= 'Comments: ' . $comments . "n";
    
            if($mailing == 'true') {
    
                $mailmsg.= 'I would like to be added to the mailing list';
    
            }
    
            if (eregi("r",$email) || eregi("n",$email)){
    
                die ("spam!");
    
     
    
            } else {
    
                if(mail('MAIL','Contact Form', $mailmsg, "From:MAIL")) {
    
                    header("Location: index.html");
    
                }
    
            }
    
        }
    
    }
    
    ?>
    
    <!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>Untitled Document</title>
    </head>
    
    <body>
    <form id="forml" name="forml" method="post" action="form.php">
    	<div>
    	<label for="name">Name</label>
    	<input type="text" name="name" id="name" />
    	<div>
    	<label for="email">Email:</label>
    	<input type="text" name="email" id="email" />
    	<div>
    	<label for="comments">Comments</label>
    	<textarea name="comments" cols="30" rows="6" id="comments"></textarea>
    	<label>
    	<input type="submit" name="Submit" value="Submit" />
    	</label>
    	</div>
    	</div>
    	</div>
    	</form>
    </body>
    </html>
    

    Espero que me consigam ajudar pois o formulário já está feito..só falta mesmo resolver este problema!

    PS: Retirei o meu email do código que inseri aqui por motivos de SPAM! ;)

    Obrigado malta.

    Cumps.
     
  4. ensiferum

    ensiferum Power Member

    a função eregi() aí só está a servir de exemplo, para q possas espetar ai um filtro teu, visto q não tens por enquanto qq problema podes tirá-la ou modificá-la.

    Código:
    if (eregi("r",$email) || eregi("n",$email)){
      die ("spam!");
    } else {
       if(mail('MAIL','Contact Form', $mailmsg, "From:MAIL")) {
         header("Location: index.html");
      }
    }
    para
    Código:
    //if (eregi("r",$email) || eregi("n",$email)){
    //  die ("spam!");
    //} else {
       if(mail('MAIL','Contact Form', $mailmsg, "From:MAIL")) {
         header("Location: index.html");
      }
    //}
     
  5. chantas

    chantas Power Member

    Resultou obrigado!! Uma ultima questão!

    Quando recebo o email vem assim:

    "The following email has been sent from the contact form:nName: JoãozitonEmail: [email protected]Comments: Mensagem de TESTEn"

    O que provoca aqueles "n" a aparecerem em vez do espaço?? :wow:

    Thanks ;)
     
  6. msdevweb

    msdevweb Power Member

    Aparecem na tua mensagem porque os estas a adicionar à tua mensagem...

    Se queres que apareça uma mudança de linha em vez de "n" substitui o "n" por "\n" :)
    Se quiseres mesmo um espaço, adiciona o seguinte: se o email for em html, "&nbsp;", se for, como parece ser, simples texto, adiciona simplesmente em vez do "n" um espaço: " ".

    Cumps.
     
    Última edição: 8 de Julho de 2007
  7. chantas

    chantas Power Member

    Ok obrigado! ;)
     
  8. chantas

    chantas Power Member

    Boas outra vez! :)

    Já tentei fazer isso e continua a aparecer mal na mesma....está a aparecer assim:

    "The following email has been sent from the contact form:nName: CamanenEmail: [email protected]omments: ola pretendo um orcamento!!n"

    Por acaso o que pretendo é mesmo separar os campos por linhas. O que pode estar mal?

    Cumps. ;)


    E o meu código é este:

    Código:
     $mailmsg = 'The following email has been sent from the contact form:' . "\n";
    
            $mailmsg.= 'Name: ' . $name . "\n";
    
            $mailmsg.= 'Email: ' . $email . "\n";
    
            $mailmsg.= 'Comments: ' . $comments . "\n";
    
     
  9. chantas

    chantas Power Member

    Ninguém me consegue ajudar neste pequeno problema? :(
     
  10. khaluh

    khaluh Power Member

    Experimenta substituir o "\n" por '\n'. AS vezes pode ser por isso... COmo tens 'Commentes' e pelos vistos aparece, pode ser que com '\n' funcione
     
  11. chantas

    chantas Power Member

    Tmb já tentei dessa forma e continua na mesma! :( Mais alguma ajuda please??
     

Partilhar esta Página