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

Dúvida básica em PHP/HTML

Discussão em 'Web Development' iniciada por kripton2007, 12 de Janeiro de 2009. (Respostas: 5; Visualizações: 762)

  1. kripton2007

    kripton2007 Power Member

    Boas estou aqui com um problema dakeles basicos em que a solução está à frente dos nossos olhos, mas quanto mais olha-mos mais dúvidas temos! :S

    tenho o seguinte formulário em HTML:

    Código:
    <form name="form1" method="post" action="asd.php">
     
     <div align="center"><table width="632" border="0">
    <tr><td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><h3>Como classifica o website?</h3><p>
    <input type="radio" name="v1" size=60>Excelente<p>
    <input type="radio" name="v1" size=60>Bom<p>
    <input type="radio" name="v1" size=60>Aceitável<p>
    <input type="radio" name="v1" size=60>Mau<p>
    </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><h3>Quais os aspectos que mais lhe agradam no website?</h3><p>
    <input type="text" name="v2" size=60></td>
    </tr>
    <p>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><h3>Acrescentaria alguma coisa ao website? Se sim, o quê?</h3><p>
    <input type="text" name="v3" size=60></td>
    </tr>
    </table>
    <input type="reset" value="Apagar dados" name="btn1"> 
    <input type="submit" value="Enviar Dados" name="btn2"> 
     </form>
    

    posto isto, pretendo ao carregar no botão SUBMIT enviar através de PHP um mail com as respostas dadas no formulário para um email pré-definido.

    eu tenho algo do género para o documento php:

    Código:
    <?php
    $nome = $_POST['nome'];
    $idade = $_POST['idade'];
    $remetente = $_POST['email'];
    $telefone = $_POST['telefone'];
    $habilitacoes = $_POST['habili'];
    $laboral = $_POST['laboral'];
    if($laboral == "on"){echo" CHECKED";}
    $plaboral = $_POST['plaboral'];
    if($plaboral == "on"){echo" CHECKED";}
    $curso = !isset($_POST['curso'])? NULL : $_POST['curso'];
    $sugestoes = $_POST['sug'];
    
    $msg = "<font face='Verdana' size='1'><b>Nome:</b> \t$nome</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>Idade:</b> \t$idade</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>e-mail:</b> \t$remetente</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>Telefone:</b> \t$telefone</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>Grau Académico:</b> \t$habilitacoes</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>Horário Laboral:</b> \t$laboral</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>Horário Pós-laboral:</b> \t$plaboral</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>Curso:</b> \t$curso</font><br>";
    $msg .= "<font face='Verdana' size='1'><b>Sugestões:</b> \t$sugestoes</font><br><p>";
     
     
    $mensagem = "$msg";
    $remetente = "$email";
    $destinatario = "[EMAIL="[email protected]"][email protected][/EMAIL]"; //Aqui vc coloca seu e-mail.
    $assunto = "Formulario de Inscrição"; //Aqui o assunto da mensagem.
    $headers = "From: ".$remetente."\nContent-type: text/html"; # o ‘text/html' é o tipo mime da mensagem
    if(!mail($destinatario,$assunto,$mensagem,$headers,$msg)){
    print "falha no envio da mensagem";
    } else {
    echo "<script>window.location.href='enviado.html'</script>"; //Aqui ele redireciona para uma outra página depois de enviado o formulário.
    }
    ?>

    este ficheiro php, nada tem a ver com o formulário em questão, mas penso que seja algo do género...
    Os dados enviados por email terão de aparecer posteriormente numa página html vazia juntamente com uma mensagem que indique que o email foi enviado com sucesso!


    Acho que me fiz perceber.. alguém me pode dizer como fica o php para o formulário dado?
    Eu sei que isto é estúpido, mas ja não toco em PHP nem HTML à montes de tempo...

    Ajudem... é urgente!


    Cumps kripton2007
     
  2. Boas,

    Neste momento, parece-me que estas a fazer o seguinte:

    form.php -> form.php -> sucesso.html (este tens que mudar para .php de qualquer forma para mostrar variaveis php)


    A solucao mais facil e rapida e mudares o codigo que processa o formulario para a pagina de successo, e assim processas o formulario e apresentas o resultado na mesma pagina.

    assim ficas com:

    form.php -> sucesso.php

    A outra possibilidade e ter tudo na mesma pagina, ou seja, formulario, processamento, ou sucesso e so mostras aquilo que queres consuante o estado da pagina. Ou seja:

    Dados mandados por post?
    Sim -> processa -> sucesso
    Nao -> mostra formulario

    Espero que isto ajude.
     
  3. eRKULIX

    eRKULIX Suspenso

    O formulário não está totalmente correcto seria algo assim:

    Código:
    <form name="form1" method="post" action="asd.php">
    <div align="center"><table width="632" border="0">
    <tr><td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><h3>Como classifica o website?</h3><p>
    <input type="radio" name="v1" value="excelente">Excelente<p>
    <input type="radio" name="v1" value="bom">Bom<p>
    <input type="radio" name="v1" value="aceitavel">Aceitável<p>
    <input type="radio" name="v1" value="mau">Mau<p>
    </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><h3>Quais os aspectos que mais lhe agradam no website?</h3><p>
    <input type="text" name="v2" id="v2" size="60"></td>
    </tr>
    <p>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><h3>Acrescentaria alguma coisa ao website? Se sim, o quê?</h3><p>
    <input type="text" name="v3" id="v3" size="60"></td>
    </tr>
    </table>
    <input type="reset" name="reset" value="Apagar dados"> 
    <input type="submit" name="submit" value="Enviar Dados"> 
    </form>
    
    O php para enviar um mail com os dados desse formulários poderá ser algo assim:

    Código:
    <?php
    $v1=$_POST["v1"];
    $v2=$_POST["v2"];
    $v3=$_POST["v3"];
    
    $to = "[email protected]"; // email de destino
    $subject = "Resposta ao Inquério"; // assunto
    $body = "Resposta 1: $v1 \n
    Resposta 2: $v2 \n
    Resposta 3: $v3 \n
    ";
    if (mail($to, $subject, $body)) {
      echo("<p>Mensagem enviada com sucesso!</p>");
     } else {
      echo("<p>Erro no envio da mensagem.</p>");
     }
    ?>
    
    Tinha-me esquecido de fechar o php
     
    Última edição: 12 de Janeiro de 2009
  4. kripton2007

    kripton2007 Power Member

    pois... ja experimentei isso tudo, mas sempre que carrego no botão "submit" este dá-me a opção para abrir ou guardar o ficheiro php!

    Aquilo que eu pretendo é que ele envie as informações do formulário (perguntas e respostas) para o email a ser especificado e posteriormente ser redireccionado para uma nova página onde serão apresentadas essas mesmas informações, incluindo uma mensagem de sucesso no envio!!!

    :S

    PS: o trabalho não é para mim... foi uma colega minha k me pediu para o fazer!
     
  5. eRKULIX

    eRKULIX Suspenso

    Isso acontece porque não está a correr num servidor que suporte php, estás a correr isso do teu pc?


    Para seres redireccionado para uma outra página o mais simples é fazeres isto:

    Código:
    header("location:exemplo.html");
    

    Colocaste isso em vez do echo.
     
    Última edição: 13 de Janeiro de 2009
  6. scroll

    scroll Power Member

    boas,
    de facto é uma pergunta obrigatória dado o erro que relatas.
    o mais certo é o servidor não suportar php, ou no teu pc o apache não estar a correr.

    abraço,
     

Partilhar esta Página