Avatar billede jr40 Nybegynder
18. august 2009 - 19:46 Der er 20 kommentarer og
1 løsning

Simpel formular m. sendmail

Hejsa,
Sørger et simpelt script i php som fungere ligesom jmail i .asp.

Jeg skal have en kontakt formular på hejsa.php siden, og der skal have felterne:

Navn:
Email:
Ønske:
Emne:Her skal der være en drop down box, med forskellige emner jeg laver.
Besked: her skal besked boxen være.

Hvorefter jeg skal modtage en mail med alle disse infos, og afsenderen skal så være den email som der er skrevet i formularen, da det gør det nemmere for mig at svarer tilbage til personen som har skrevet til mig.
Avatar billede eclipse89 Nybegynder
18. august 2009 - 20:22 #1
----------------------sendmail.php--------------------------

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

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

    //Henter data fra formular
    $navn = $_POST['navn'];
    $onske = $_POST['onske'];
    $email = $_POST['email'];
    $emne = $_POST['mene'];
    $besked = $_POST['besked'];
 
        if(empty($navn) || empty($email) || empty($besked) || empty($onske))
    { //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 "Du skal udfylde alle felter med * ! Gå tilbage til formen <a href='hejsa.php' target='_self'>klik her.</a>";

    }

    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 = "mail@eksempel.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 .= "Afsenderens ønske: ".$onske."\n";
        $msg .= $navn."'s besked er:\n".$message."\n";
           
        // 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, $email))
        {
        mail($email, $autosub, $automsg, "From: noreply@dinmail.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 href='hejsa.php' 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>";

        }

}

 
?>



---------------------------hejsa.php----------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Din titel her!</title>
</head>

<body>
<form action="sendmail.php" method="post">
* Navn:
<br />
<input name="navn" type="text" /><br />
* Email:<br />
<input name="email" type="text" /><br />
* Ønske:<br />
<input name="onske" type="text" /><br />
* Emne:<br />
<select name="emne"><br />
  <option value="emne1">emne1</option>
  <option value="emne2">emne2</option>
  <option value="emne3">emne3</option>
</select><br />
* Besked:<br />
<textarea name="besked" cols="40" rows="7"></textarea><br />
</form>
</body>
</html>
Avatar billede jr40 Nybegynder
18. august 2009 - 23:39 #2
Perfekt, jeg har sat det hele ind, men jeg mangler en submit button på hejsa siden..
Hvordan ser den kode ud, for at det virker korrekt.?
Avatar billede majbom Novice
19. august 2009 - 15:39 #3
indsæt:

<input type="submit" value="Send">

lige før:

</form>
Avatar billede eclipse89 Nybegynder
19. august 2009 - 16:03 #4
value="submit" ellers virker det ikke..!
Avatar billede jr40 Nybegynder
19. august 2009 - 18:36 #5
Jeg har nu sat det hele rigtigt ind, og det ser sådan her ud:
contact.php
<html>

<head>

    <title>Ancistrus.dk | Opret din egen personlige akvarie blog.</title>

    <meta name="keywords" content="ancistrus, ancistrusdk, ancistrus.dk, blog, webblog, web-blog, akvarie, fisk, galleri, billed, billeder, hosting, aqua, maller,l46, l134, l34, l204, malle, malleforum, malle-forum.dk ">
    <meta name="description" content="Gratis akvarie blog, fra MalleForum.dk">
    <meta name="author" content="malleforum.dk">

    <meta name="robots" content="index, follow">

    <link rel="stylesheet" href="_public.style.css">
    <style type="text/css">
<!--
.style1 {font-size: 9px}
-->
    </style>
</head>

<body bgcolor="#ffffff" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginheight="0" marginwidth="0">
<script type="text/javascript" src="includes/bannersys.js"></script>
<script type="text/javascript" src="includes/bannersys.js"></script>

    <table cellpadding="0" cellspacing="0" width="780" border="0">
                <!--
        **************************
        *** BEGIN PAGE HEADER ****
        **************************
        -->
        <!--
        <tr>   
            <td align="right" height="14" valign="middle">
                <table cellpadding="0" cellspacing="0" width="100%">
                    <tr>
                        <td><font face="verdana" style="color: #ffffff; font-size: 4;">&nbsp;Image Hosting, Photo Hosting, Image Uploads, Auction Image Galleries, Image Portfolios & More</td>
                        <td align="right"><font face="verdana" color="#333333" style="font-size: 10;">Quick Links: <a href="http://www.ebay.com" class="indexlink">eBay</a>  |  <a href="http://www.amazon.com" class="indexlink">Amazon</a>  |  <a href="http://www.yahoo.com" class="indexlink">Yahoo</a></td>
                    </tr>
                </table>
            </td>
        </tr>
        -->
        <tr>
            <td><a href="index.php"><img src="images/Header.gif" border="0" alt="Akvariegalleriet.dk "></a></td>
      </tr>
        <tr>
            <td>
                <!--
                **************************
                ***** BEGIN TOP NAV ******
                **************************
                -->
                <table cellpadding="0" cellspacing="0" border="0">
                    <tr>
                        <td><img src="images/Row2.1.gif"></td>
                        <td><a href="about.php" onmouseover="AboutUs.src='images/ButtonAboutUsOn.gif';" onmouseout="AboutUs.src='images/ButtonAboutUs.gif';"><img src="images/ButtonAboutUs.gif" name="AboutUs" border="0" alt="About Akvariegalleriet.dk"></td>
                        <td><a href="faq.php" onmouseover="FAQs.src='images/ButtonFAQsOn.gif';" onmouseout="FAQs.src='images/ButtonFAQs.gif';"><img src="images/ButtonFAQs.gif" name="FAQs" border="0" alt="FAQs"></td>
                        <td><a href="contact.php" onmouseover="ContactUs.src='images/ButtonContactUsOn.gif';" onmouseout="ContactUs.src='images/ButtonContactUs.gif';"><img src="images/ButtonContactUs.gif" name="ContactUs" border="0" alt="Contact Akvariegalleriet.dk"></td>
                        <td><a href="signup.php" onmouseover="Signup.src='images/ButtonSignupOn.gif';" onmouseout="Signup.src='images/ButtonSignup.gif';"><img src="images/ButtonSignup.gif" name="Signup" border="0" alt="Akvariegalleriet.dk Signup"></td>
                        <td><img src="images/Row2.2.gif"></td>
                    </tr>
                </table>
                <!--
                **************************
                ******* END TOP NAV ******
                **************************
                -->
            </td>
        </tr>
        <!--
        **************************
        **** END PAGE HEADER *****
        **************************
        -->        <tr>
            <td>
                <table cellpadding="0" cellspacing="0" border="0">
                    <tr>
                        <td valign="top">
                            <!--
                            **************************
                            **** BEGIN BODY TABLE ****
                            **************************
                            -->
                            <table cellpadding="0" cellspacing="0">
                                                                <!--
                                **************************
                                ** BEGIN INDEX HEADER  ***
                                **************************
                                -->
                                <tr>
                                    <td colspan="2"><img src="images/Row3.1.gif"></td>
                                </tr>
                                <tr>
                                    <td><img src="images/Row4.1.gif"></td>
                                    <td><img src="images/Row4.2.gif"></td>
                                </tr>
                                <tr>
                                    <td class="bgcolor1">
                                        <!--// BEGIN DEMO ACCOUNTS //-->
                                  <table cellpadding="0" cellspacing="0" border="0">
                                            <tr>
                                                <td><a href="http://www.demo.ancistrus.dk/" target="_blank"><img src="images/FreeDemoPC.gif" alt="Vis forsiden, klik her." border="0"></a></td>
                                                <td><a href="http://www.demo.ancistrus.dk/wp-login.php" target="_blank" onMouseOver="DemoButton.src='images/ButtonDemoOn.gif';" onMouseOut="DemoButton.src='images/ButtonDemo.gif';"><img src="images/ButtonDemo.gif" name="DemoButton" alt="Pr&oslash;v admin delen, klik her" border="0"></a></td>
                                    </tr>
                                        </table>
                                        <!--// END DEMO ACCOUNTS //-->                                    </td>
                                    <td valign="top" bgcolor="43728e" class="plan" style="padding-top: 5px;padding-left: 5px;">
                                    <? include("includes/nye_oprettelser.html"); ?>
                                    </td>
                              </tr>
                                <tr>
                                    <td colspan="2"><img src="images/Row5.1.gif"></td>
                                </tr>
                                <!--
                                **************************
                                **** END INDEX HEADER  ***
                                **************************
                                -->                                <tr>
                                    <td colspan="2" align="center">
                                        <!--
                                        **************************
                                        *** BEGIN BODY CONTENT ***
                                        **************************
                                        -->
                                        <table width="94%">
                                            <tr>
                                                <td>
                                                    <table width="100%" height="330" border="0">
<tr>
                                                            <td valign="top" class="hptext"><font style="font-size: 12;">
                                                              <p><b>Kontakt os</b>
                                                                <br>
Udfyld formulaeren nedenfor, for kontakt til os vedr. hj&aelig;lp til siden, banner, sponsor pladser osv.</p>
                                                              <form action="sendmail.php" method="post">
                                                                <p>* Navn: <br />
                                                                  <input name="navn" type="text" />
                                                                  <br />
                                                                * Email:<br />
                                                                <input name="email" type="text" />
                                                                <br />
                                                                * Ønske:<br />
                                                                <input name="onske" type="text" />
                                                                <br />
                                                                * Emne:<br />
                                                                <select name="emne">
                                                                  <br />
                                                                                                                              <option value="emne1">emne1</option>
                                                                                                                              <option value="emne2">emne2</option>
                                                                                                                              <option value="emne3">emne3</option>
                                                                                                                              </select>
                                                                <br />
                                                                * Besked:<br />
                                                                <textarea name="besked" cols="40" rows="7"></textarea>
                                                                </p>
                                                                <p>                                                                                                                                <br />
                                                                    </p>
                                                            <input type="submit" value="submit">

                                                              </form>                                                              <p>&nbsp;</p></td>
                                                      </tr>
                                                        <tr><td height="33">&nbsp;</td>
                                                      </tr>
                                                       
                                                        <tr><td height="20">&nbsp;</td>
                                                      </tr>
                                              </table>                                                </td>
                                            </tr>
                                                                                        <tr>
                                                <td>&nbsp;</td>
                                          </tr>
                                                                                        <tr>
                                                <td>&nbsp;</td>
                                          </tr>
                                        </table>
                                        <!--
                                        **************************
                                        **** END BODY CONTENT ****
                                        **************************
                                        -->                                    </td>
                                </tr>
                            </table>
                            <!--
                            **************************
                            ***** END BODY TABLE *****
                            **************************
                            -->                        </td>
                        <td valign="top"bgcolor="#295670"><img src="images/IndexDropShadow.gif"></td>
                        <td valign="top" bgcolor="#083C58">
                            <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

                            <!--
                            **************************
                            ***** BEGIN RIGHT NAV ****
                            **************************
                            -->                       
                            <table cellpadding="0" cellspacing="0" border="0">
                                <tr>
                                    <td><img src="images/RightNavHeader.jpg"></td>
                                </tr>
                                <!--// plan PLAN //-->
                                                                <tr>
                                    <td background="images/PlanHeader.gif" height="28" align="left" style="padding-right: 14;"><font face="Arial" style="font-size: 11;" color="#FD9100">&nbsp;&nbsp;&nbsp;<b>Ancistrus.dk<font face="Arial"  style="font-size: 10;" color="#ffffff"> akvarie blog</b></font></td>
                              </tr>
                                <tr>
                                    <td background="images/PlanBG.gif" align="center">
                                        <table width="100%">
                                            <tr>
                                                <td height="56" colspan="2" style="padding-left: 20;"><table width="100%">
                                                  <tr>
                                                    <td height="56" colspan="2" class="plan" style="padding-left: 20;"><strong>&middot; G</strong><b>ratis akvarie blog</b><br>
                                                    <b><strong>&middot; </strong>dit-navn.ancistrus.dk</b><br>
                                                    <strong>&middot; </strong>Gratis installation<br>
                                                    <strong>&middot; </strong>Komplet admin del<br>
                                                  <strong>&middot; </strong>Ubeg&aelig;nset webplads</span><br>
                                                    <strong>&middot; </strong>Ubegr&aelig;nset trafik</span><br>
                                                    <strong>&middot; </strong>og meget mere...</td>
                                                  </tr>
                                                  <tr>
                                                    <td style="padding-left: 14;">&nbsp;</td>
                                                    <td align="right" style="padding-right: 14;"><a href="signup.php"><img src="images/ButtonSignupIndex.gif" border="0" alt="Opret gratis akvarie blog"></a></td>
                                                  </tr>
                                                </table>
                                                  <br>
                                                </td>
                                          </tr>
                                            <tr>
                                                <td style="padding-left: 14;">&nbsp;</td>
                                                <td align="right" style="padding-right: 14;">&nbsp;</td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <!--// SILVER PLAN //-->
                                                                <tr>
                                    <td><img src="images/RightNavDivider.gif"></td>
                                </tr>
                            </table>
                            <!--
                            **************************
                            ****** END RIGHT NAV *****
                            **************************
                            -->                        </td>
                    </tr>
                </table>            </td>
            <td valign="top"><script type="text/javascript">
    ShowBanner();
</script>
<script type="text/javascript">
    ShowBanner();
</script></td>
      </tr>
        <tr>
            <td background="images/Footer.gif"><img src="images/Footer.gif" border="0"></td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>
                                <!--
                **************************
                ****** BEGIN FOOTER ******
                **************************
                -->
                                <table width="100%">
                    <tr>
                        <td>&nbsp;</td>
                      <td width="100%" align="center"><font face="verdana" size="1" color="#767676" style="font-size: 11;"><a href="about.php" class="footer">Omkring os</a>  |  <a href="faq.php" class="footer">Hj&aelig;lp</a>  |  <a href="contact.php" class="footer">Kontakt os</a>  |  <a href="signup.php" class="footer">Opret konto</a><br>
                      <font face="verdana" size="1" color="#767676">&copy; 2009 Ancistrus.dk All Rights Reserved
                      <!--| <a href="#" class="footer"><u>Privacy Statement</u></a>--><!-- | Owned & Operated By Phluid Motion LLC --></td>
<td align="right">
                                            </tr>
                </table>
                <p>
                  <!-- chart.dk unified trackercode - v1 -->
                  <script src="http://www.chart.dk/js/unified.asp"></script>
                  <script language="javascript">
track_visitor(145558, "");
                  </script>
                  <noscript>
                  <a href="http://www.chart.dk/ref.asp?id=145558" target="_blank"> <img src="http://cluster.chart.dk/chart.asp?id=145558" border="0" alt="Chart.dk" /> </a>
                  </noscript>
                  <!-- chart.dk unified trackercode - v1 -->
                </p>
                <!--
                **************************
                ******* END FOOTER *******
                **************************
                -->            </td>
            <td>&nbsp;</td>
        </tr>
    </table>

</body>

</html>


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

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

    //Henter data fra formular
    $navn = $_POST['navn'];
    $onske = $_POST['onske'];
    $email = $_POST['email'];
    $emne = $_POST['mene'];
    $besked = $_POST['besked'];
 
        if(empty($navn) || empty($email) || empty($besked) || empty($onske))
    { //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 "Du skal udfylde alle felter med * ! Gå tilbage til formen <a href='contact.php' target='_self'>klik her.</a>";

    }

    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 = "info@ancistrus.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 .= "Afsenderens ønske: ".$onske."\n";
        $msg .= $navn."'s besked er:\n".$message."\n";
           
        // hvis du vil have at formen automatisk skal sende en mail til brugeren om at du har modtager mailen.
        $autosub = "Auto responder fra Ancistrus.dk."; // Dette er emnet i mailen til brugeren
        $automsg = "Tak fordi du valgte at skrive til os. \n";
        $automsg .= "Vi kontakter dig indenfor 24 timer. \n";
        $automsg .= "\n";
        $automsg .= "Med Venlig Hilsen \n";
        $automsg .= "Ancistrus.dk - André Christensen \n";
        $automsg .= "\n";
        $automsg .= "Denne mail er en automatisk generet email.";
     
        // ^^ Bare ændre overstående..
     
        //Mailen afsendes
        if(mail($sendto, $subject, $msg, $email))
        {
        mail($email, $autosub, $automsg, "From: info@ancistrus.dk"); // Hvis mailen ovenover blev send med succes, sender vi en mail til brugeren.
        echo "<br>";
        echo "Din besked du sendte via kontakt formulaeren på Ancistrus.dk, er modtaget hos os.";
        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 href='contact.php' 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>";

        }

}

 
?>




Hvad har jeg gjordt forkert, siden der ikke kommer nogen email.?
Du kan se hvad den gør, ved af teste den selv her:
http://ancistrus.dk/contact.php
Avatar billede jr40 Nybegynder
22. august 2009 - 11:12 #6
eclipse89>>Muligt du kan hjælpe her til med at få rettet det så det virker.?
Avatar billede jr40 Nybegynder
25. august 2009 - 16:41 #7
eclipse89>>> Siden du ikke har svaret endnu, har jeg oprettet et nyt spam med min problem stilling her:
http://www.eksperten.dk/spm/884634

Hvis du ønsker points for det du har lavet so far, kan du oprette et spam her, så jeg kan lukke denne her tråd, og fortsætte i den nye.
Avatar billede tobias_louv Nybegynder
26. august 2009 - 15:12 #8
Nu har jeg lavet min egen udgave af selv samme script...

contact.php skal indeholde:
<?
  /*
  Her skriver du fejlmeddelelserne:
    0 => Mailen blev sendt
    1 => Ikke alle felterne blev udfyldt
    2 => Mailen var ugyldig
    3 => Serverens SMTP kunne ikke sende mailen
  */
  $errors = Array("Mailen blev sendt afsted. Tak for din hjælp!",
                  "Du bliver nødt til at udfylde alle poster med *.<br>Check venligst felterne igennem og prøv igen.",
                  "Den indtastede mail er ikke gyldig.<br>Check den venligst og prøv igen.",
                  "Der skete en ukendt fejl. Prøv igen.<br>Hvis fejlen fortsætter, kontakt da venligst webmaster.");
  // Her skriver du en liste over emner, på formen "{emnets id (det du ser)}"=>"{det brugeren ser}"
  $subjects = Array("sub1"=>"Emne 1",
                    "sub2"=>"Emne 2",
                    "sub3"=>"Emne 3",
                    "sub4"=>"Emne 4",
                    "sub5"=>"Emne 5");
  if (@$_GET["error"] == "0") {
    echo $errors[0];
  }
  else {
    if (isset($_GET["error"])) {
      $error = abs($_GET["error"]);
      if (isset($errors[$error])) echo "<font color=\"red\">" . $errors[$error] . "</font><br>";
    }
?>
<form action="sendmail.php" method="post">
  Navn:<br>
  <input name="name" type="text" value="<? echo @$_GET["name"]; ?>" size="50"> *<br><br>
  Email:<br>
  <input name="mail" type="text" value="<? echo @$_GET["mail"]; ?>" size="50"> *<br><br>
  Ønske:<br>
  <input name="wish" type="text" value="<? echo @$_GET["wish"]; ?>" size="50"> *<br><br>
  Emne:<br>
  <select name="subject"><br>
    <option value=""<? if (!isset($subjects[@$_GET["subject"]])) echo " selected"; ?>></option>
<?
  foreach ($subjects as $key=>$value) {
?>
    <option value="<? echo $key; ?>"<? if (@$_GET["subject"] == $key) echo " selected"; ?>><? echo $value; ?></option>
<?
  }
?>
  </select> *<br><br>
  Besked:<br>
  <textarea name="text" cols="38" rows="6"><? echo @$_GET["text"]; ?></textarea> *<br><br>
  <input type="submit" value="Send ønske">
</form>
<?
  }
?>

sendmail.php skal se sådan ud:

<?
  // Dette er din mail
    $send_mail_to = "min@mail.dk";
  // Dette er det emne, du vil modtage
    $send_mail_subject = "Besked fra <name> med emnet <subject>";
  // Dette er mailens tekst. Tagget <{tag}> erstattes med $_POST["{tag}"] - VIGTIGT: {tag} og name="{tag}" i inputfelterne skal være ens
    $send_mail_text = "Navn: <name>\r\n\r\n";
    $send_mail_text = "Mail: <mail>\r\n\r\n";
    $send_mail_text .= "Emne: <subject>\r\n\r\n";
    $send_mail_text .= "Ønske: <wish>\r\n\r\n";
    $send_mail_text .= "Emne: <subject>\r\n\r\n";
    $send_mail_text .= "Text: <text>\r\n\r\n";
    $send_mail_text .= "Med venlig hilsen mailsenderen";
  // Dette er den fra-mail, du vil se
    $send_mail_from = "<mail>";
    $send_mail_header = "X-Mailer: PHP/" . phpversion() . " Content-type: text/plain; charset=iso-8859-4";
  // Denne funktion erstatter <{tag}> med indholdet i $_POST["{tag}"] - bare rolig, hvis man skriver <name> i tekst-feltet, vil der stå <name> i din mail
  function replace_tags($subject) {
    if (isset($_POST)) {
      foreach ($_POST as $key=>$value) {
          $subject = preg_replace("/\<".$key."\>/i", htmlentities($value), $subject);
      }
    }
    return $subject;
  }
  // Først checker vi, om der er sendt name, mail, wish, subject og text er sendt med $_POST
  if ((isset($_POST["name"])) and (isset($_POST["mail"])) and (isset($_POST["wish"])) and (isset($_POST["subject"])) and (isset($_POST["text"]))) {
    $query = "name=".rawurlencode($_POST["name"])."&mail=".rawurlencode($_POST["mail"])."&wish=".rawurlencode($_POST["wish"])."&subject=".rawurlencode($_POST["subject"])."&text=".rawurlencode($_POST["text"]); // Her laves en query, så vi kan sende form-data med tilbage ved evt. fejlmeddelse
    // Nu checker vi, om name, mail, wish, subject eller text er tomme
    if ((empty($_POST["name"])) or (empty($_POST["mail"])) or (empty($_POST["wish"])) or (empty($_POST["subject"])) or (empty($_POST["text"]))) {
      // Én eller flere af name, mail, wish, subject eller text er tomme,
      header("location: ./contact.php?error=1&".$query); // så vi sender brugeren tilbage til contact.php med $_GET["error"] = 1, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Regular Expression, der burde kunne fjerne stort set alle ugyldige mails
    $pattern = "^";
    $pattern .= "([a-z0-9]{1}";
    $pattern .= "[a-z0-9\._\-]*?";
    $pattern .= "[a-z0-9]{1})";
    $pattern .= "\@";
    $pattern .= "([a-z0-9]{1}";
    $pattern .= "[a-z0-9\._\-]*?";
    $pattern .= "[a-z0-9]{1})";
    $pattern .= "\.";
    $pattern .= "([a-z]{2,4})";
    $pattern .= "\$";
    // Nu checker vi, om mail rent faktisk er en mail
    if (!preg_match("/".$pattern."/i", $_POST["mail"], $matches)) {
      // Hvis mailen er forkert,
      header("location: ./contact.php?error=2&".$query); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 2, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Nu er vi i bund og grund klar til at sende mailen
    if (!@mail($send_mail_to, replace_tags($send_mail_subject), replace_tags($send_mail_text), "FROM: ".$send_mail_from."\r\n".$send_mail_header)) {
      // Hvis mailen ikke blev sendt,
      header("location: ./contact.php?error=3&".$query); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 3, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Mailen blev send, og alt er i den skønneste orden,
    header("location: ./contact.php?error=0"); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 0, uden værdierne fra formen
    exit; // Nu stopper vi videre læsning af scriptet
  }
  // Én eller flere af name, mail, wish, subject og text er ikke sendt med $_POST,
  header("location: ./contact.php"); // så vi sender brugeren til contact.php uden fejlmeddelelse
  exit; // Nu stopper vi videre læsning af scriptet
?>

Der sendes ikke nogen mail til brugeren, men det kan nemt implementeres...
Avatar billede tobias_louv Nybegynder
26. august 2009 - 15:12 #9
Det er måske lidt nasser-agtigt, men dette var jo et svar - og det skulle tilmed virke ;-)
Avatar billede jr40 Nybegynder
26. august 2009 - 15:47 #10
tobias>>Dit script virker 99% efter det jeg søgte til min side..

Det eneste og sidste jeg har til dette, er om du kan hjælpe med at fortælle mig hvad jeg skal ændre i dit script, så afsenderen i de mails jeg modtager, er den email som personen selv har skrevet i formularen..

Da dette vil lette mit arbejde, når jeg skal svarer på spørgsmål via den formular.
Avatar billede tobias_louv Nybegynder
26. august 2009 - 17:04 #11
Det er faktisk fordi, jeg selv har lavet en lille fejl...
Du skal bare ændre linje, hvor mailen bliver sendt (linje 55 i sendmail.php):

  // Nu er vi i bund og grund klar til at sende mailen
    if (!@mail($send_mail_to, replace_tags($send_mail_subject), replace_tags($send_mail_text), "FROM: ".$send_mail_from."\r\n".$send_mail_header)) {

til

  // Nu er vi i bund og grund klar til at sende mailen
    if (!@mail($send_mail_to, replace_tags($send_mail_subject), replace_tags($send_mail_text), "FROM: ".replace_tags($send_mail_from)."\r\n".$send_mail_header)) {

Men jeg ville faktisk anbefale dig at ændre denne linje også (linje 16 i sendmail.php):

  // Dette er den fra-mail, du vil se
    $send_mail_from = "<mail>";

til


  // Dette er den fra-mail, du vil se
    $send_mail_from = "\"<name>\" <<mail>>";

bare for skønhedens skyld - så ser FROM ud som "Navn" <min@mail.dk> :-)

Her er lige den rettede udgave af sendmail.php:

<?
  // Dette er din mail
    $send_mail_to = "min@mail.dk";
  // Dette er det emne, du vil modtage
    $send_mail_subject = "Besked fra <name> med emnet <subject>";
  // Dette er mailens tekst. Tagget <{tag}> erstattes med $_POST["{tag}"] - VIGTIGT: {tag} og name="{tag}" i inputfelterne skal være ens
    $send_mail_text = "Navn: <name>\r\n\r\n";
    $send_mail_text = "Mail: <mail>\r\n\r\n";
    $send_mail_text .= "Emne: <subject>\r\n\r\n";
    $send_mail_text .= "Ønske: <wish>\r\n\r\n";
    $send_mail_text .= "Emne: <subject>\r\n\r\n";
    $send_mail_text .= "Text: <text>\r\n\r\n";
    $send_mail_text .= "Med venlig hilsen mailsenderen";
  // Dette er den fra-mail, du vil se
    $send_mail_from = "\"<name>\" <<mail>>";
    $send_mail_header = "X-Mailer: PHP/" . phpversion() . " Content-type: text/plain; charset=iso-8859-4";
  // Denne funktion erstatter <{tag}> med indholdet i $_POST["{tag}"] - bare rolig, hvis man skriver <name> i tekst-feltet, vil der stå <name> i din mail
  function replace_tags($subject) {
    if (isset($_POST)) {
      foreach ($_POST as $key=>$value) {
          $subject = preg_replace("/\<".$key."\>/i", htmlentities($value), $subject);
      }
    }
    return $subject;
  }
  // Først checker vi, om der er sendt name, mail, wish, subject og text er sendt med $_POST
  if ((isset($_POST["name"])) and (isset($_POST["mail"])) and (isset($_POST["wish"])) and (isset($_POST["subject"])) and (isset($_POST["text"]))) {
    $query = "name=".rawurlencode($_POST["name"])."&mail=".rawurlencode($_POST["mail"])."&wish=".rawurlencode($_POST["wish"])."&subject=".rawurlencode($_POST["subject"])."&text=".rawurlencode($_POST["text"]); // Her laves en query, så vi kan sende form-data med tilbage ved evt. fejlmeddelse
    // Nu checker vi, om name, mail, wish, subject eller text er tomme
    if ((empty($_POST["name"])) or (empty($_POST["mail"])) or (empty($_POST["wish"])) or (empty($_POST["subject"])) or (empty($_POST["text"]))) {
      // Én eller flere af name, mail, wish, subject eller text er tomme,
      header("location: ./contact.php?error=1&".$query); // så vi sender brugeren tilbage til contact.php med $_GET["error"] = 1, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Regular Expression, der burde kunne fjerne stort set alle ugyldige mails
    $pattern = "^";
    $pattern .= "([a-z0-9]{1}";
    $pattern .= "[a-z0-9\._\-]*?";
    $pattern .= "[a-z0-9]{1})";
    $pattern .= "\@";
    $pattern .= "([a-z0-9]{1}";
    $pattern .= "[a-z0-9\._\-]*?";
    $pattern .= "[a-z0-9]{1})";
    $pattern .= "\.";
    $pattern .= "([a-z]{2,4})";
    $pattern .= "\$";
    // Nu checker vi, om mail rent faktisk er en mail
    if (!preg_match("/".$pattern."/i", $_POST["mail"], $matches)) {
      // Hvis mailen er forkert,
      header("location: ./contact.php?error=2&".$query); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 2, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Nu er vi i bund og grund klar til at sende mailen
    if (!@mail($send_mail_to, replace_tags($send_mail_subject), replace_tags($send_mail_text), "FROM: ".replace_tags($send_mail_from)."\r\n".$send_mail_header)) {
      // Hvis mailen ikke blev sendt,
      header("location: ./contact.php?error=3&".$query); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 3, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Mailen blev send, og alt er i den skønneste orden,
    header("location: ./contact.php?error=0"); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 0, uden værdierne fra formen
    exit; // Nu stopper vi videre læsning af scriptet
  }
  // Én eller flere af name, mail, wish, subject og text er ikke sendt med $_POST,
  header("location: ./contact.php"); // så vi sender brugeren til contact.php uden fejlmeddelelse
  exit; // Nu stopper vi videre læsning af scriptet
?>
Avatar billede tobias_louv Nybegynder
26. august 2009 - 17:04 #12
Hvis du gerne vil sende en mail til brugere, kan jeg godt flette det ind også? :)
Avatar billede tobias_louv Nybegynder
26. august 2009 - 17:21 #13
Her er den så med en responce-mail også.
Bemærk, at jeg har tilføjet en del og rettet endnu nogle småfejl..
Hvis du alligevel ikke vil sende en responce-mail, kan du udkommentere (med //) linje 73 i sendmail.php, som ser sådan ud:

    @mail(replace_tags($send_mail_from), replace_tags($send_mail_responce_subject), replace_tags($send_mail_responce_text), "FROM: \"".$my_name."\" <".$send_mail_to.">\r\n".$send_mail_header); // så nu forsøger vi at sende en mail til afsenderen,

Du skriver bare
    //@mail(replace_tags($send_mail_from), replace_tags($send_mail_responce_subject), replace_tags($send_mail_responce_text), "FROM: \"".$my_name."\" <".$send_mail_to.">\r\n".$send_mail_header); // så nu forsøger vi at sende en mail til afsenderen,

Jeg har kun rettet i sendmail.php - contact.php er ikke ændret...
Avatar billede tobias_louv Nybegynder
26. august 2009 - 17:23 #14
Ups.. Jeg kom til at skrive min egen mail med i indlægget...
Og jeg kan se nu, at linjenumrene nok ikke passer... Du skal nok trække én fra alle de numre, jeg har sagt... Det finder du nok ud af :)

Hmm, mon man kan fjerne sin mail igen? Vil faktisk ikke have den stående her... Får spam nok ;)
Avatar billede tobias_louv Nybegynder
26. august 2009 - 17:25 #15
Og her er så den færdige ændring:

sendmail.php

<?
  // Dette er dit navn
    $my_name = "Mit navn";
  // Dette er din mail
    $send_mail_to = "min@mail.dk";
  // Dette er det emne, du vil modtage
    $send_mail_subject = "Besked fra <name> med emnet <subject>";
  // Dette er mailens tekst. Tagget <{tag}> erstattes med $_POST["{tag}"] - VIGTIGT: {tag} og name="{tag}" i inputfelterne skal være ens
    $send_mail_text = "Navn: <name>\r\n\r\n";
    $send_mail_text = "Mail: <mail>\r\n\r\n";
    $send_mail_text .= "Ønske: <wish>\r\n\r\n";
    $send_mail_text .= "Emne: <subject>\r\n\r\n";
    $send_mail_text .= "Text: <text>\r\n\r\n";
    $send_mail_text .= "Med venlig hilsen mailsenderen";
  // Dette er den fra-mail, du vil se
    $send_mail_from = "\"<name>\" <<mail>>";
    $send_mail_header = "X-Mailer: PHP/" . phpversion() . " Content-type: text/plain; charset=iso-8859-4";
  // Dette er emnet i mailen til ham der afsender mailen
    $send_mail_responce_subject = "Tak for din hjælp";
  // Dette er teksten i mailen til ham der afsender mailen
    $send_mail_responce_text = "Kære <name>\r\n";
    $send_mail_responce_text .= "Tak for din hjælp med at forbedre siden.\r\n\r\n";
    $send_mail_responce_text .= "Du skrev:\r\n";
    $send_mail_responce_text .= "Ønske: <wish>\r\n";
    $send_mail_responce_text .= "Emne: <subject>\r\n";
    $send_mail_responce_text .= "Text: <text>\r\n\r\n";
    $send_mail_responce_text .= "Mange hilsener,\r\n";
    $send_mail_responce_text .= $my_name;
  // Denne funktion erstatter <{tag}> med indholdet i $_POST["{tag}"] - bare rolig, hvis man skriver <name> i tekst-feltet, vil der stå <name> i din mail
  function replace_tags($subject) {
    if (isset($_POST)) {
      foreach ($_POST as $key=>$value) {
          $subject = preg_replace("/\<".$key."\>/i", htmlentities($value), $subject);
      }
    }
    return $subject;
  }
  // Først checker vi, om der er sendt name, mail, wish, subject og text er sendt med $_POST
  if ((isset($_POST["name"])) and (isset($_POST["mail"])) and (isset($_POST["wish"])) and (isset($_POST["subject"])) and (isset($_POST["text"]))) {
    $query = "name=".rawurlencode($_POST["name"])."&mail=".rawurlencode($_POST["mail"])."&wish=".rawurlencode($_POST["wish"])."&subject=".rawurlencode($_POST["subject"])."&text=".rawurlencode($_POST["text"]); // Her laves en query, så vi kan sende form-data med tilbage ved evt. fejlmeddelse
    // Nu checker vi, om name, mail, wish, subject eller text er tomme
    if ((empty($_POST["name"])) or (empty($_POST["mail"])) or (empty($_POST["wish"])) or (empty($_POST["subject"])) or (empty($_POST["text"]))) {
      // Én eller flere af name, mail, wish, subject eller text er tomme,
      header("location: ./contact.php?error=1&".$query); // så vi sender brugeren tilbage til contact.php med $_GET["error"] = 1, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Regular Expression, der burde kunne fjerne stort set alle ugyldige mails
    $pattern = "^";
    $pattern .= "([a-z0-9]{1}";
    $pattern .= "[a-z0-9\._\-]*?";
    $pattern .= "[a-z0-9]{1})";
    $pattern .= "\@";
    $pattern .= "([a-z0-9]{1}";
    $pattern .= "[a-z0-9\._\-]*?";
    $pattern .= "[a-z0-9]{1})";
    $pattern .= "\.";
    $pattern .= "([a-z]{2,4})";
    $pattern .= "\$";
    // Nu checker vi, om mail rent faktisk er en mail
    if (!preg_match("/".$pattern."/i", $_POST["mail"], $matches)) {
      // Hvis mailen er forkert,
      header("location: ./contact.php?error=2&".$query); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 2, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Nu er vi i bund og grund klar til at sende mailen
    if (!@mail("\"".$my_name."\" <".$send_mail_to.">", replace_tags($send_mail_subject), replace_tags($send_mail_text), "FROM: ".replace_tags($send_mail_from)."\r\n".$send_mail_header)) {
      // Hvis mailen ikke blev sendt,
      header("location: ./contact.php?error=3&".$query); // så sender vi brugeren tilbage til contact.php med $_GET["error"] = 3, samt værdierne fra formen
      exit; // Nu stopper vi videre læsning af scriptet
    }
    // Mailen blev send, og alt er i den skønneste orden,
    @mail(replace_tags($send_mail_from), replace_tags($send_mail_responce_subject), replace_tags($send_mail_responce_text), "FROM: \"".$my_name."\" <".$send_mail_to.">\r\n".$send_mail_header); // så nu forsøger vi at sende en mail til afsenderen,
    header("location: ./contact.php?error=0"); // og sender bagefter brugeren tilbage til contact.php med $_GET["error"] = 0, uden værdierne fra formen - uanset, om der blev sendt mail til brugeren eller ej
    exit; // Nu stopper vi videre læsning af scriptet
  }
  // Én eller flere af name, mail, wish, subject og text er ikke sendt med $_POST,
  header("location: ./contact.php"); // så vi sender brugeren til contact.php uden fejlmeddelelse
  exit; // Nu stopper vi videre læsning af scriptet
?>
Avatar billede jr40 Nybegynder
26. august 2009 - 18:39 #16
Tobias>> mange gange tak for et fint working script du har lavet der..

Jeg har nu rettet det til og implenteret på mit site under henholdsvis contact.php og signup.php, som fungere med henholdsvis sendmail2.php och sendmail.php.´

To forskellige version jeg har rettet til efter behov..


Det eneste jeg faldt over, var at hvis man bruger æøå i scriptet, så skriver den volapyk sprog i de mails man bruger, da det er en udenlandsk server jeg bruger..
Kan man ikke sætte en stump kode i toppen af sendmail.php som siger at alle bogstaver er danske osv.?



Lav endelig et svar her, så vi kan få lukket det af.
Avatar billede tobias_louv Nybegynder
26. august 2009 - 21:05 #17
Faktisk HAR jeg sat en header til mailen, som skulle prøve dette, men det kan godt være, den ikke rigtigt vil acceptere det :/
Her skriver jeg noget header til mailen:
$send_mail_header = "X-Mailer: PHP/" . phpversion() . " Content-type: text/plain; charset=iso-8859-4";

Så vidt jeg ved, er tegnsættet iso-8859-4 baltisk - ellers kan du jo prøve dig frem med nogle forskellige tegnsæt...

Hmm, men man kunne evt. prøve at tilføje

header("Content-type: text/plain; charset=iso-8859-4");

til toppen af sendmail.php og contact.php
igen, så mener jeg, at iso-8859-4 er baltisk...
det plejer at virke for mig, men det kan jo være FF, der er venlig og dermed hjælper mig, når jeg tager fejl ;-)

Ellers prøver jeg faktisk at erstatte æ, ø og å med hhv. &aelig; &oslash; og &aring; men det virker ikke som om gmail vil acceptere dette...
Du kan dog prøve at tilføje

$subject = str_replace("æ", "&aelig;", $subject)
$subject = str_replace("ø", "&oslash;", $subject)
$subject = str_replace("å", "&aring;", $subject)
$subject = str_replace("Æ", "&AElig;", $subject)
$subject = str_replace("Ø", "&Oslash;", $subject)
$subject = str_replace("Å", "&Aring;", $subject)
i enden af funktionen replace_tags, altså sådan:

  function replace_tags($subject) {
    if (isset($_POST)) {
      foreach ($_POST as $key=>$value) {
          $subject = preg_replace("/\<".$key."\>/i", htmlentities($value), $subject);
      }
    }
    $subject = str_replace("æ", "&aelig;", $subject)
    $subject = str_replace("ø", "&oslash;", $subject)
    $subject = str_replace("å", "&aring;", $subject)
    $subject = str_replace("Æ", "&AElig;", $subject)
    $subject = str_replace("Ø", "&Oslash;", $subject)
    $subject = str_replace("Å", "&Aring;", $subject)
    return $subject;
  }

men så kan du risikere, at mailen bliver sendt med &oslash; i stedet for ø...
Avatar billede tobias_louv Nybegynder
26. august 2009 - 23:43 #18
Jeg må hellere svare også.. :)
Avatar billede jr40 Nybegynder
26. august 2009 - 23:47 #19
Tobias, må indrømme at det med chartset har jeg ikke fået til at funke her.. Men må kigge nærmere på det senere.

Pt. virker formularen, hvilket er positivt..
Tack for hjælpen.
Avatar billede tobias_louv Nybegynder
26. august 2009 - 23:51 #20
Jeg vil også prøve at se på det i morgen.
Hvis jeg kommer frem til noget, vil jeg give lyd fra mig :-)
Tak for points :p
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