Avatar billede highlightnv Nybegynder
23. januar 2013 - 12:10 Der er 1 løsning

PHP formmail

Hejsa.
Jeg håber der er en der kan hjælpe med dette lille, men irriterende problem.

Jeg har dette formmail script der kun giver mig lov til at have disee:
mail("$din_mail", "Subject: New Bunker enguiry", $name, "From: $email" );
Hvis jeg tilføjer flere, vil den enten ikke sende, eller skriver den ikke alle dataerne ud korrekt.

Hvad kan være galt?

Formularen:
<?php
            if(empty($_GET["send"])) { }
            elseif($_GET["send"] == "1") { echo "Din mail er nu sendt!"; }
            elseif($_GET["send"] == "2") { echo "Din mail er ikke sendt!"; }
            elseif($_GET["send"] == "3") { echo "Din e-mail er forkert!"; }
        ?>
    <form method="post" action="send.php">
            <p>Name:
              <input type="text" size="18" name="name">
            </p>
            <p>Company name:
              <input type="text" size="18" name="company">
            </p>
            <p>Email:
              <input type="text" size="18" name="email">
            </p>
            <p>Phone:
              <input type="text" size="18" name="phone">
            </p>
            <p>Vessel name:
              <input type="text" size="18" name="vessel">
            </p>
            <p>Port:
              <input type="text" size="18" name="port">
            </p>
            <p>Qty/Grade:
              <input type="text" size="18" name="grade">
            </p>
            <p>ETA:
              <input type="text" size="18" name="eta">
            </p>
            <p class="comments">Comments:
              <textarea id="message" name="comments"></textarea>
            </p>
       
            <br>
            <p>
              <input type="submit" name="send" value="Send">
          </form>

PHP:

<?php
    // Ændre $din_mail til din egen kontakt mail
    $din_mail = "kasper@highlight.dk";
 
    // En funktion for at se om den indtastede e-mail er korrekt user@domain.tld
    function IsValidEmail($email) {
        if(ereg("^.+@.+\..+$", $email))
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
 
    // En funktion for at se om et felt indeholder "to:" og "cc:" da det er sådan spammere sender mails fra forms som ikke er sikret korrekt.
    function SpamCheck($field) {
        if(eregi("to:",$field) || eregi("cc:",$field))
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
 
    if (!isset($_REQUEST['email'])) {
        header("Location: a-bunker-enquiry.php?send=3");
    }
 
    elseif (isset($_REQUEST['email'])) {
     
        // Checker om emne, afsender ikke indeholder "to:" og "cc:".
        $mailcheck_from = SpamCheck($_REQUEST['email']);
     
     
        // Checker om afsender er user@domain.tld
        $validmail = IsValidEmail($_REQUEST['email']);
     
        if ($mailcheck_from==TRUE) {
            header("Location: a-bunker-enquiry.php?send=2");
        } elseif ($mailcheck_subject==TRUE) {
            header("Location: a-bunker-enquiry.php?send=2");
        } elseif ($validmail==FALSE) {
            header("Location: a-bunker-enquiry.php?send=3");
        } else {
            $name = $_POST['name'] ;
            $company = $_POST['company'] ;
            $email = $_POST['email'] ;
            $phone = $_POST['phone'] ;
            $vessel = $_POST['vessel'] ;
            $port = $_POST['port'] ;
            $grade = $_POST['grade'] ;
            $eta = $_POST['eta'] ;
            $comments = $_REQUEST['comments'] ;
              mail("$din_mail", "Subject: New Bunker enguiry", $name, "From: $email" );
            header("Location: a-bunker-enquiry.php?send=1");
        }
    }
 
?>
Avatar billede highlightnv Nybegynder
23. januar 2013 - 14:43 #1
Ok, jeg løste dette sådan her:

mail("$din_mail", "New bunker enquiry"," Name: " . $name . "\n" . " Company: " . $company . "\n" . " Email: ". $email . "\n" . " Phone: " . $phone . "\n" . " Vessel name: " . $vessel . "\n" . " Port: " . $port . "\n" . " Qty/Grade: " . $grade . "\n" . " ETA: " . $eta . "\n" . " Comments: "  . $comments, "From: $email");
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