Avatar billede Mathiaskruse Juniormester
07. november 2014 - 16:06 Der er 3 kommentarer

Problem med mail script

Hej alle. Jeg har et problem med mit mail script, det er som om den ikke fanger de rigtige oplysninger de rigtige steder.


mit php script


<?php

// =====This Script For Sending an Email ====

// ===== Recieving Data From Form =====

$til = "mkruse@outlook.dk";
$Navn = $_POST['Navn'];
$Email = $_POST['Email'];
$Emne= $_POST['Emne'];
$message= $_POST['message'];

//=======It is better to include Headers in your email to make it easy understandable for your recipient =====

if(isset($_POST['submit']))
{
$res = mail($Navn,$Email,$Emne,$message);
if($res)
{
echo 'Beskeden er blevet sendt.';
}
else
{
echo 'Fejl, ret dem venligst';
}

}

// Mail it
mail($til,$Navn, $Email, $Emne, $message);
?>



min HTML del:


        <div class="section">
            <h1>Kontakt</h1>
            <p>
                Har De spørgsmål til os i forbindelse med visse typer arbejder, eller ønsker De blot at kontakte os vedrørende en opgave? Så skal De til enhver tid være velkommen til at kontakte os på nedenstående formular, eller ringe os op.
            </p>
            <form action="email_script.php" method="post" class="message">
                <input type="text" value="Navn" name="Navn" id="Navn" onFocus="this.select();" onMouseOut="java script:return false;"/>
                <input type="text" value="Email" name="Email" id="Email" onFocus="this.select();" onMouseOut="java script:return false;"/>
                <input type="text" value="Emne" name="Emne" id="Emne" onFocus="this.select();" onMouseOut="java script:return false;"/>
                <textarea value="message" name="message" id="message"></textarea>
                <input type="submit" value="Send"/>
            </form>
        </div>



Når jeg så modtager mailen fra scriptet modtager jeg følgende:

Navn - Ender i emnefeltet i emailen
Emne - Ender i tekstfeltet i emailen
E-mail - Ender også i tekstfeltet i emailen

Selve beskedfeltet er slet ikke med i mailen...

Hvad har jeg gjort galt :) ?
Avatar billede olsensweb.dk Ekspert
07. november 2014 - 16:41 #1
prøv at kigge i doc
http://php.net/manual/en/function.mail.php
eks 2

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>



passer antallet af parameter ?? (den ene har du 4 den anden har du 5)
$res = mail($Navn,$Email,$Emne,$message);
      mail($til,$Navn, $Email, $Emne, $message);
passer parameter rækkefølgen ?? nej
Avatar billede Mathiaskruse Juniormester
10. november 2014 - 10:09 #2
Nu har jeg rettet i min PHP, og nu virker det slet ikke.

<?php

// =====This Script For Sending an Email ====

// ===== Recieving Data From Form =====

$til = "mkruse@outlook.dk";
$Navn = $_POST['Navn'];
$Email = $_POST['Email'];
$Emne= $_POST['Emne'];
$message= $_POST['message'];

//=======It is better to include Headers in your email to make it easy understandable for your recipient =====

if(isset($_POST['submit']))
{
$res = mail($til,,$Emne,$message,$Email);
if($res)
{
echo 'Beskeden er blevet sendt.';
}
else
{
echo 'Fejl, ret dem venligst';
}

}

// Mail it
mail($til, $Emne, $message, $Email);
?>
Avatar billede olsensweb.dk Ekspert
10. november 2014 - 13:59 #3
>Nu har jeg rettet i min PHP, og nu virker det slet ikke.
du har stadig ikke givet mail de rigtige parameter i den rigtige rækkefølge

et hurtigt bud (utested)
     
<?php
// =====This Script For Sending an Email ====
// ===== Recieving Data From Form =====
//=======It is better to include Headers in your email to make it easy understandable for your recipient =====

if (isset($_POST['submit'])) {
    $til = "mkruse@outlook.dk";
    $Navn = $_POST['Navn'];
    $Email = $_POST['Email'];
    $Emne = $_POST['Emne'];
    $message = $_POST['message'];
    $from = $Navn . " <" . $Email . ">";
   
   
    // $res = mail($til,,$Emne,$message,$Email);
    // dette ryger sansynligvis i spam mailboxen da der ikke er sendt headers
    // eks 1   
    $res = mail($til, $Emne, $message);
    if ($res) {
        echo 'Beskeden er blevet sendt.';
    } else {
        echo 'Fejl, ret dem venligst';
    }
   
// Mail it
    // mail($til, $Emne, $message, $Email);
    // eks 2, den rigtige løsning
    $headers = "From: " . $from . "\r\n" ;
    // $headers .= "Cc: ". $from . "\r\n"; // kopi til afsender
    $headers .= "Reply-To: " . $from . "\r\n" . 'X-Mailer: PHP/' . phpversion();
    $res = mail($til, $Emne, $message, $headers);
    if ($res) {
        echo 'Beskeden er blevet sendt.';
    } else {
        echo 'Fejl, mailen kunne ikke sendes';
    }   
   
}
?>

<form method="post" action="test.php">
    <input type="text" name="Navn" value="ronols">
    <input type="text" name="Email" value="ronols@nomail.dk">
    <input type="text" name="Emne" value="test">
    <textarea name="message">dette er min besked</textarea>
    <input type="submit" name="submit">
</form>


hvis du ikke gider at rode med headers selv og altid vil sende i UTF8 format, kan du kigge på  functionen mail_utf8
som ligger på http://php.net/manual/en/function.mail.php  uder kommentarene af pavel.lint at vk.com 
eller på den function olebole har lavet http://www.eksperten.dk/spm/961816 #3
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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