Avatar billede HeleneHH Nybegynder
18. august 2009 - 09:47 Der er 7 kommentarer og
1 løsning

Problemer med feedback form

Hej Eksperter

Jeg har lavet en feedbackform til min hjemmeside, hvor jeg kræver at man som minimum skal angive navn, email adresse og en meddelelse. Når jeg selv tester ser det ud til at virke, men af og til får jeg alligevel mails hvor der ingenting er udfyldt. Hvordan kan de lade sig gøre?

Jeg har ikke rigtig styr på php og html, men dette er hvad jeg bla. har skrevet i min meddelelse.html

  <form action="sendmail.php" method="post">

og i min sendmail.php bruger jeg $_POST.

I kan prøve feedback-formen ved at gå ind på:
www.danishcare.dk og derefter gå ind under fanen "Danisch Care" og så "send besked".
Avatar billede eclipse89 Nybegynder
18. august 2009 - 09:59 #1
Post php koden fra sendmail.php filen, det er der fejlen skal findes..
Avatar billede HeleneHH Nybegynder
18. august 2009 - 10:34 #2
Dette er hvad der står i min sendmail.php:

<?php
    $navn = $_POST['Navn'];   
    $tlf = $_POST['Tlf'];
    $email = $_POST['Email'];
    $message = $_POST['message'];
   
    /*Checkbuttons*/
    $epilepsi = $_POST['Epilepsi'];
    $enuresis = $_POST['Enuresis'];
    $dialyse = $_POST['Dialyse'];
    $demens = $_POST['Demens'];
   
    $body = <<<EOD
<br>
Navn: $navn <br>
Tlf: $tlf <br>
Email: $email <br><br>
Ang.: <br>
    Epilepsi: $epilepsi <br>
    Enuresis: $enuresis <br>
    Dialyse: $dialyse <br>
    Demens: $demens <br><br>
Besked: <br>
$message <br>
EOD;
   
    $headers = "From: $email\r\n";
    $headers .= "Content-type: text/html\r\n";
    mail("hh@danishcare.dk", "Meddelelse fra danishcare.dk", $body, $headers);
    header( "Location: http://www.danishcare.dk/dk/DanishCare/KontaktTak.html" );
?>

Kan du hjælpe mig med at finde fejlen? :)
Avatar billede eclipse89 Nybegynder
18. august 2009 - 11:37 #3
[code]
<?php
// tjekker om brugeren kommer fra meddelelse.html
if(!isset($_POST['Navn']))
{
    header("Location:meddelelse.html"); //Hvis brugeren ikke kom fra meddelelse.html, sender vi ham derhen.
}

else
{ // Hvis brugeren kom fra meddelelse.html, så fortsætter vi.

    //Henter data fra formular
    $navn = $_POST['Navn']; 
    $tlf = $_POST['Tlf'];
    $email = $_POST['Email'];
    $message = $_POST['message'];
   
        if(empty($navn) || empty($email) || empty($message))
    { //Hvis en af variablerne er tomme, kommer brugeren ikke videre.
    //Her skal du echo det ud som skal komme hvis de ikke har udfyldt felterne rigtigt.. evt header.location til en anden side?
        echo "<br>";

    }

    else
    { //Hvis der var noget i alle variabler går vi videre til næste tjek.

        if(ereg("^.+@.+\\..+$", $email)) { //Hvis brugerens e-mail er gyldig fortsætter vi.
       
        //Nu skal vi til at sende e-mailen.
        //Vi laver lige et par variabler mere
        $sendto = "hh@danishcare.dk"; //Den adresse som mailen skal sendes til
       
        //Vi laver en variabel, som indeholder alt det, som skal stå i mailen.
        $msg = "Besked fra ".$navn."\n";
        $msg .= "Afsenderens e-mail: ".$email."\n";
        $msg .= $navn."'s besked er:\n".$message."\n";
       
        $subject = "Besked fra Danishcare.dk skrevet af ".$name.".";
       
        // hvis du vil have at formen automatisk skal sende en mail til brugeren om at du har modtager mailen.
        $autosub = "Confirmation."; // Dette er emnet i mailen til brugeren
        $automsg = "Thank you for your message send from our website. \n";
        $automsg .= "We will answer you within 24-hours. \n";
        $automsg .= "\n";
        $automsg .= "Yours sincerly \n";
        $automsg .= "Thomiweb.dk \n";
        $automsg .= "\n";
        $automsg .= "This mail is automatic generated, and you can't reply it..";
       
        // ^^ Bare ændre overstående..
       
        //Mailen afsendes
        if(mail($sendto, $subject, $msg, "From: noreply@danishcare.dk"))
        {
        mail($email, $autosub, $automsg, "From: noreply@danishcare.dk"); // Hvis mailen ovenover blev send med succes, sender vi en mail til brugeren.
        echo "<br>";
        echo "Your messege was sent with succes.";
        echo "<br>";
        echo "<br>";
        echo "<br>";
       
        }
        else // Hvis mailen til dig ikke blev sendt, viser vi en fejl meddelelse.
        {
        echo "<br>";
        echo "<br>";
        echo "A error occured. Please try again. <a class='link' href='contact.html' title='Click to get back'>Click here to get back to the contact formular.</a>";
        echo "<br>";
        echo "<br>";
        echo "<br>";

        }       
    }

        else
        { //Hvis e-mail adressen ikke har et @ kommer vi med endnu en fejl
       
        echo "<br>";
        echo "<br>";
        echo "Your e-mail is not vaild!";
        echo "<br>";
        echo "<br>";
        echo "<br>";
        echo "<br>";

        }

}
}   
   
?>
[/code]
Avatar billede eclipse89 Nybegynder
18. august 2009 - 11:39 #4
Prøver igen.. Har prøvet at lave et nyt script til dig.. Du skal bare ændre fejlmeddelelserne.. Og kan se at jeg har glemt at implicerer $tlf i $msg.. Men prøv den af, men kig den lige igennem først..


<?php
// tjekker om brugeren kommer fra meddelelse.html
if(!isset($_POST['Navn']))
{
    header("Location:meddelelse.html"); //Hvis brugeren ikke kom fra meddelelse.html, sender vi ham derhen.
}

else
{ // Hvis brugeren kom fra meddelelse.html, så fortsætter vi.

    //Henter data fra formular
    $navn = $_POST['Navn']; 
    $tlf = $_POST['Tlf'];
    $email = $_POST['Email'];
    $message = $_POST['message'];
   
        if(empty($navn) || empty($email) || empty($message))
    { //Hvis en af variablerne er tomme, kommer brugeren ikke videre.
    //Her skal du echo det ud som skal komme hvis de ikke har udfyldt felterne rigtigt.. evt header.location til en anden side?
        echo "<br>";

    }

    else
    { //Hvis der var noget i alle variabler går vi videre til næste tjek.

        if(ereg("^.+@.+\\..+$", $email)) { //Hvis brugerens e-mail er gyldig fortsætter vi.
       
        //Nu skal vi til at sende e-mailen.
        //Vi laver lige et par variabler mere
        $sendto = "hh@danishcare.dk"; //Den adresse som mailen skal sendes til
       
        //Vi laver en variabel, som indeholder alt det, som skal stå i mailen.
        $msg = "Besked fra ".$navn."\n";
        $msg .= "Afsenderens e-mail: ".$email."\n";
        $msg .= $navn."'s besked er:\n".$message."\n";
       
        $subject = "Besked fra Danishcare.dk skrevet af ".$name.".";
       
        // hvis du vil have at formen automatisk skal sende en mail til brugeren om at du har modtager mailen.
        $autosub = "Confirmation."; // Dette er emnet i mailen til brugeren
        $automsg = "Thank you for your message send from our website. \n";
        $automsg .= "We will answer you within 24-hours. \n";
        $automsg .= "\n";
        $automsg .= "Yours sincerly \n";
        $automsg .= "Thomiweb.dk \n";
        $automsg .= "\n";
        $automsg .= "This mail is automatic generated, and you can't reply it..";
       
        // ^^ Bare ændre overstående..
       
        //Mailen afsendes
        if(mail($sendto, $subject, $msg, "From: noreply@danishcare.dk"))
        {
        mail($email, $autosub, $automsg, "From: noreply@danishcare.dk"); // Hvis mailen ovenover blev send med succes, sender vi en mail til brugeren.
        echo "<br>";
        echo "Your messege was sent with succes.";
        echo "<br>";
        echo "<br>";
        echo "<br>";
       
        }
        else // Hvis mailen til dig ikke blev sendt, viser vi en fejl meddelelse.
        {
        echo "<br>";
        echo "<br>";
        echo "A error occured. Please try again. <a class='link' href='contact.html' title='Click to get back'>Click here to get back to the contact formular.</a>";
        echo "<br>";
        echo "<br>";
        echo "<br>";

        }       
    }

        else
        { //Hvis e-mail adressen ikke har et @ kommer vi med endnu en fejl
       
        echo "<br>";
        echo "<br>";
        echo "Your e-mail is not vaild!";
        echo "<br>";
        echo "<br>";
        echo "<br>";
        echo "<br>";

        }

}
}   
   
?>
Avatar billede HeleneHH Nybegynder
18. august 2009 - 13:30 #5
Super tusind tak!!!! :)

Jeg har bare et enkelt spørgsmål. Jeg forstår ikke helt hvordan
if(!isset($_POST['Navn']))
tjekker om man kommer fra meddelelse.html.
Avatar billede eclipse89 Nybegynder
18. august 2009 - 15:14 #6
For hvis folk indtaster http://www.danishcare.dk/sendme.php kommer de tilbage til formen istedet..
Avatar billede eclipse89 Nybegynder
18. august 2009 - 15:15 #7
.. Mente selvfølgelig http://danishcare.dk/sendmail.php :)
Avatar billede eclipse89 Nybegynder
18. august 2009 - 15:20 #8
Den tjekker om den får en $_POST værdi, og hvis den ikke gør sender vi dem tilbage til meddelelse.html .. Du kan også bruge
submit så vailidator for at brugeren kommer fra den rigtige side..
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
Kategori
Kurser inden for grundlæggende programmering

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



IT-JOB

Metroselskabet og Hovedstadens Letbane

Cyber Security Konsulent

Udviklings- og Forenklingsstyrelsen

IT-projektledere til forretningskritiske projekter

ALD Automotive Danmark A/S

Regional IT-administrator

Netcompany A/S

Test Specialist