Avatar billede MegatronVer2 Nybegynder
12. november 2011 - 16:01 Der er 4 kommentarer og
1 løsning

Php form til mail

Hej alle!

Jeg er i gang med at lave en form i PHP, bruger denne tut:

http://phpartikler.dk/artikler/mail.php#

Kode:

<?php
if (isset($_POST['navn']) && isset($_POST['besked']))
{
    if (empty($_POST['navn']))
    {
        echo "Du skal indtaste dit navn";
    }
    elseif (empty($_POST['besked']))
    {
        echo "Du skal indtaste en besked";
    }
    else
    {
        $modtager = "mod@modtager.dk";
        $emne = "Mail fra en bruger";
        $besked = "Hej, du har modtaget mail fra en bruger: \n
                            Navn: " . $_POST['navn']. "\n
                            Besked: " . $_POST['besked'];
        $header = "from:afs@afsender.dk";

        mail($modtager, $emne, $besked, $header);
        echo "Emailen er nu sendt!";
    }
}
?>

<form action="mail.php" method="post">
    Navn: <br>
    <input type="text" name="navn" style="width: 200px;"> <br><br>

    Besked: <br>
    <textarea name="besked" style="width: 200px; height: 100px;"></textarea> <br><br>

    <input type="submit" value="Send mail">
</form>


Derudover har jeg et andet dokument, som jeg har kaldt mail.php med følgende kode:

<?php
mail("mod@modtager.dk","Her står et emne","Beskeden er her \n En linje mere","from:afs@afsender.dk");
?>

Mit problem er at jeg ikke får den indtastede besked, sendt til min mail.

Når jeg modtager mailen, får jeg kun det, som der står i mail.php

Hvordan gør jeg forkert?

På forhånd tak.
Avatar billede pactode Nybegynder
12. november 2011 - 18:19 #1
Hejsa.
Du har glemt at sætte et udråbstegn før empty. :-)

Din kode skal se ud som følgende:
<?php
if (isset($_POST['navn']) && isset($_POST['besked']))
{
    if (!empty($_POST['navn']))
    {
        echo "Du skal indtaste dit navn";
    }
    elseif (!empty($_POST['besked']))
    {
        echo "Du skal indtaste en besked";
    }
    else
    {
        $modtager = "mod@modtager.dk";
        $emne = "Mail fra en bruger";
        $besked = "Hej, du har modtaget mail fra en bruger: \n
                            Navn: " . $_POST['navn']. "\n
                            Besked: " . $_POST['besked'];
        $header = "from:afs@afsender.dk";

        mail($modtager, $emne, $besked, $header);
        echo "Emailen er nu sendt!";
    }
}
?>
Avatar billede pactode Nybegynder
12. november 2011 - 19:12 #2
Nej, der skal ikke et udråbstegn før empty. Min fejl.
Avatar billede DeeDawg Nybegynder
12. november 2011 - 22:13 #3
Din forklaring er lidt utydelig. Som jeg læser det, har du altså 2 filer og de ser således ud:

Intet navn
<?php
if (isset($_POST['navn']) && isset($_POST['besked']))
{
    if (empty($_POST['navn']))
    {
        echo "Du skal indtaste dit navn";
    }
    elseif (empty($_POST['besked']))
    {
        echo "Du skal indtaste en besked";
    }
    else
    {
        $modtager = "mod@modtager.dk";
        $emne = "Mail fra en bruger";
        $besked = "Hej, du har modtaget mail fra en bruger: \n
                            Navn: " . $_POST['navn']. "\n
                            Besked: " . $_POST['besked'];
        $header = "from:afs@afsender.dk";

        mail($modtager, $emne, $besked, $header);
        echo "Emailen er nu sendt!";
    }
}
?>

<form action="mail.php" method="post">
    Navn: <br>
    <input type="text" name="navn" style="width: 200px;"> <br><br>

    Besked: <br>
    <textarea name="besked" style="width: 200px; height: 100px;"></textarea> <br><br>

    <input type="submit" value="Send mail">
</form>

mail.php
<?php
mail("mod@modtager.dk","Her står et emne","Beskeden er her \n En linje mere","from:afs@afsender.dk");
?>


Hvis dette er korrekt opfattet, så er dit problem ret indlysende. Din formular skal sendes til dens egen fil, for det er der at informationerne skal bruges. Som det ser ud nu, sender du dem til din mail.php fil, hvilket ikke benytter sig af de indtastede informationer, men derimod kun den kode, som du har i filen.


Er det ikke korrekt opfattet, må du forklare dig lidt mere tydeligt. :)
Avatar billede MegatronVer2 Nybegynder
20. november 2011 - 11:36 #4
Ved ikke lige hvad der skete, men af en eller anden grund så virker det nu...
Avatar billede MegatronVer2 Nybegynder
27. marts 2012 - 09:26 #5
lav en ny
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester