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

php e as variáveis do form para o e-mail

Discussão em 'Web Development' iniciada por tomsawyer, 19 de Março de 2007. (Respostas: 3; Visualizações: 893)

  1. tenho o seguinte codigo para enviar mail através de um site que estou a fazer, mas da pagina de inserção de dados para a pagina de tratamento de dados as variaveis ficam vazias alguem me descobre erro ?? é de salientar que ambas as paginas estão guardadas como php ...

    aqui vai ...

    pagina de inserção de dados ...

    <form action="mail.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <table width="400" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="84" align="right"><span class="style60">Nome:</span></td>
    <td width="22" align="left">&nbsp;</td>
    <td colspan="3" align="left"><input name="nome" type="text" id="nome" value="" size="25" maxlength="200" /></td>
    </tr>
    <tr>
    <td align="right"><span class="style60">Teu E-mail: </span></td>
    <td width="22" align="left">&nbsp;</td>
    <td colspan="3" align="left"><input name="email" type="text" id="email" value="" size="25" maxlength="200" /></td>
    </tr>
    <tr>
    <td align="right" valign="top"><span class="style60">Mensagem:</span></td>
    <td width="22" align="left">&nbsp;</td>
    <td colspan="3" align="left"><textarea name="mail" cols="30" rows="10" id="mail" ></textarea></td>
    </tr>
    <tr>
    <td colspan="5" align="center">&nbsp;</td>
    </tr>
    <tr>
    <td align="right">&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td width="215" align="right"><input name="reset" type="reset" id="reset" value="Limpar tudo" /></td>
    <td width="64" align="right"><input name="submit" type="submit" id="submit" value="Enviar" /></td>
    <td width="15" align="right">&nbsp;</td>
    </tr>
    </table>
    </form>

    Pagina de tratamento de dados ...

    <form method="get">
    <?php
    if($nome){
    if($email){
    if($mail){
    $own_email = sprintf("[email protected]");
    $email_msg = sprintf("%s mandou-lhe um e-mail...\n\nMensagem:\n%s\n\n",$nome,$mail);
    $result_id = mail($own_email, "Mensagem do site ...",$email_msg);
    if($result_id){
    echo "Mail enviado com sucesso";
    } else {
    echo "Ocorreu um erro, volte a tentar ...<br>ou avise-nos se esta mensagem voltar a aparecer";
    }
    } else {
    echo "Não introduziu a mensagem";
    }
    } else {
    echo "Não introduziu o seu endereço de E-mail";
    }
    } else {
    echo "Não introduziu o seu nome";
    }
    ?>
    </form>

    Obrigado a quem me ajudar ... e aos que tiverem vontade mas tambem não saibam resolver ...
     
  2. msdevweb

    msdevweb Power Member

    Que versão do php estas a usar? Provavelmente tens nas definições do php o valor register_globals=off. Desde o PHP 4.2.0 o valor default de register_globals é off, e para teres as tuas variaveis dessa maneira tens que mudar esse valor para 'on'.
    Poque não usares $variavel_1 = $_POST['variavel_enviada_via_POST']; para ires buscar as tuas variaveis?
    Mas porque tens um form method=get na pagina de dados?
    Porquê 3 if's seguidos? bastava confirmares se algum dos campos estava vazio e mandar uma mensagem geral. podias simplificar o teu codigo em muito...o que provavelmente te ajudaria em muito perceberes melhor o que esta mal...

    Um abraço.
     
    Última edição: 19 de Março de 2007
  3. obrigado, mas eu tenho esse ifs para mandar uma mensagem especifica para cada caixa de texto vazia ...
    mas obrigado na mesma ..
     
  4. msdevweb

    msdevweb Power Member

    Ok, se queres as mensagens em caixas individuais, esta bem assim... quanto ao resto? nao funcionou como eu disse?
    Abraço.
     

Partilhar esta Página