Avatar billede hanloven Mester
14. juli 2013 - 15:50 Der er 31 kommentarer og
1 løsning

Mail formular sender automatisk tomme mails

Hej.

Jeg har en del kontakt formularer på mine hjemmesider. Data fra dem sender jeg til hver deres php filer, som sætter en mail sammen og sender til en angivet adresse.

Mit problem er at systemet automatisk sender tomme mails ud. - Præcis som om at en har været inde på siden og trykket "send", uden først at udfylde formen.. Jeg har lagt betingelser på, der kræver at felterne er udfyldte, før at de kan submittes, men det hjælper ingenting.. Der kommer stadig automatiske tomme mails fra systemet.

Dette er et eksempel på en af mine php filer, da jeg går ud fra at det er der fejlen skal findes? - Håber nogen kan hjælpe:

<?php
    $navn = $_REQUEST['navn'];
    $mail = $_REQUEST['mail'];
    $besked = $_REQUEST['besked'];
   
   
    $modtager = "mail@mailadresse.dk";
    $emne = "Mail til kassereren";
   
    $besked = '<br />
                <br />
                Mail er sendt til kassereren, via hjemmesiden. Afsenderens navn og mail er:<br /><br />
               
                Navn: '.$navn.'<br />
                Mail: '.$mail.'<br /><br />
               

                '.$navn.'s besked: '.$besked.'<br /><br />
                Dette er en automatisk genereret mail og kan ikke besvares.
    ';
   
    $header  = "MIME-Version: 1.0" . "\r\n";
    $header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
    $header .= "from:Mail fra hjemmesiden";
   
    mail($modtager, $emne, $besked, $header); //Send!!
   
    $output = '
                Tak for din mail. Kassereren vender tilbage hurtigst muligt.<br />
                klik <a href="http://andkaervandvaerk.dk">>her<</a> for at komme tilbage til startsiden.
               
                '
           
?>
<!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>Andk&aelig;r Vandv&aelig;rk</title>


<style type="text/css">
<!--
body {
    background-color: #000;
    font-family:arial;
    color:white;
    font-size: 20px;
   
}

a {
   
    color:white;   
}


-->
</style>

</head>

<body>
<div align="center"><? echo $output ?></div>
</body>
</html>


Mvh Kent.
Avatar billede MadsHaupt Juniormester
14. juli 2013 - 16:55 #1
Jeg kan umiddelbart ikke se der er noget galt, kan du ikke sende mig koden til formen?.
Avatar billede hanloven Mester
14. juli 2013 - 19:35 #2
Jo, helt sikkert. Der er lidt rod i koden, men den er her:

<!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"><!-- InstanceBegin template="/Templates/Andkær vandværk Mockup.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<!-- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -->
<!-- InstanceBeginEditable name="doctitle" -->
<title>Andk&aelig;r Vandv&aelig;rk</title>
<!-- InstanceEndEditable -->
<link href="css_style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
    background-color: #333399;
}
-->
</style>
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="css_style.css" rel="stylesheet" type="text/css" />
</head>

<body>

<style type="text/css">
a.style3:link {color: #FFFFFF;}
a.style3:visited {color: #FFFFFF;text-decoration: underline;}
a.style3:active {color: #FFFFFF;text-decoration: underline;}
a.style3:hover {color: #FFFFFF;text-decoration: none;}
</style>

<div class="banner" id="container">
<div id="banner"></div>
<!-- InstanceBeginEditable name="counter_region" -->
<div id="counter"><div align="center">.</div></div>
<!-- InstanceEndEditable --><!-- InstanceBeginEditable name="Indhold" -->
<div id="content">
<!-- Start aflæsning 

<table border="0" width="900" bgcolor="#FFFFFF" height="500" cellspacing="1" style="border-left: 1px solid #237ECD; border-right: 1px solid #237ECD; border-top-width: 1px; border-bottom-width: 1px">
    <tr>
        <td width="125" valign="top">
        &nbsp;<table border="1" width="100%" cellspacing="0" style="border: 1px solid #237FCC; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" bgcolor="#FFFFFF" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
            <tr>
                <td align="center" style="border: 1px solid #FFFFFF"><b>
                <font face="Arial" size="2" color="#237FCC">Måleraflæsning</font></b></td>
            </tr>
            <tr>
                <td align="center" bgcolor="#D5EBFD" style="border: 1px solid #FFFFFF">
                <b>
                <font face="Arial" size="2">
                <a style="text-decoration: none" href="F_aflesning.htm">Flytteaflæsning</a></font></b></td>
            </tr>
            </table>
        </td>
        <td>
        <table border="0" width="100%" cellspacing="10" height="100%">
            <tr>
                <td valign="top">
                <!--webbot BOT="GeneratedScript" PREVIEW=" " startspan --><script Language="JavaScript" Type=
               
               
                "text/javascript"><!--
function FrontPage_Form1_Validator(theForm)
{

   
  if (theForm.navn.value == "")
  {
    alert("Husk at udfylde feltet \"Dit navn\".");
    theForm.navn.focus();
    return (false);
  }

  if (theForm.mail.value == "")
  {
    alert("Husk at udfylde feltet \"Din mail\".");
    theForm.mail.focus();
    return (false);
  }
 
  return (true);
}
//--></script><!--webbot BOT="GeneratedScript" endspan --><form action="http://helionfilm.dk/kontakt_kassereren.php" method="POST" onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1" language="JavaScript" >
<table border="0" width="100%" cellspacing="0" cellpadding="2">
                        <br style="line-height: 40px;"/><br><br><br><br><br>
                       
                        <strong id="overskrift">Besked til kassereren:</strong><br/><br/><br/>
                        <tr>
                            <td width="140"><font size="2" face="Verdana">Dit navn *</font></td>
                            <td>
                            <!--webbot bot="Validation" b-value-required="TRUE" --><input type="text" name="navn" size="40"></td>
                        </tr>
                        <tr>
                            <td width="140" height="28"><font face="Verdana" size="2">Din mail adresse *</font></td>
                            <td height="28">
                            <!--webbot bot="Validation" b-value-required="TRUE" --><input type="text" name="mail" size="40"></td>
                        </tr>
                       
                        <tr>
                            <td width="140" height="28"><font face="Verdana" size="2"></font></td>
                            <td height="28">
                           
                        </tr>                       
                       
                        <tr>
                            <td width="140"><font face="Verdana" size="2">
                            Besked til kassereren</font></td>
                            <td><textarea rows="10" name="besked" cols="45"></textarea></td>
                        </tr>
                        <tr>
                            <td width="140">&nbsp;</td>
                            <td><font face="Verdana" size="2">Felter med * skal
                            udfyldes</font></td>
                        </tr>
                        <tr>
                            <td width="140" height="30">&nbsp;</td>
                            <td height="30">
                            <input type="submit" value="Send beskeden til kassereren" name=Send><p>
                           
                            &nbsp;</td>
                        </tr>
                    </table>
                    <p>&nbsp;</p>
                </form>
Avatar billede MadsHaupt Juniormester
15. juli 2013 - 15:13 #3
Prøv denne kode:

<form action="http://helionfilm.dk/kontakt_kassereren.php" method="POST" onsubmit="return FrontPage_Form1_Validator(this);" name="FrontPage_Form1" >
<table border="0" width="100%" cellspacing="0" cellpadding="2">
                        <br style="line-height: 40px;"/><br /><br /><br /><br /><br />
                     
                        <strong id="overskrift">Besked til kassereren:</strong><br/><br/><br/>
                        <tr>
                            <td width="140"><font size="2" face="Verdana">Dit navn *</font></td>
                            <td>
                            <!--webbot bot="Validation" b-value-required="TRUE" --><input type="text" name="navn" size="40" /></td>
                        </tr>
                        <tr>
                            <td width="140" height="28"><font face="Verdana" size="2">Din mail adresse *</font></td>
                            <td height="28">
                            <!--webbot bot="Validation" b-value-required="TRUE" --><input type="text" name="mail" size="40" /></td>
                        </tr>
                     
                        <tr>
                            <td width="140" height="28"><font face="Verdana" size="2"></font></td>
                            <td height="28"></td>
                         
                        </tr>                     
                     
                        <tr>
                            <td width="140"><font face="Verdana" size="2">
                            Besked til kassereren</font></td>
                            <td><textarea rows="10" name="besked" cols="45"></textarea></td>
                        </tr>
                        <tr>
                            <td width="140">&nbsp;</td>
                            <td><font face="Verdana" size="2">Felter med * skal
                            udfyldes</font></td>
                        </tr>
                        <tr>
                            <td width="140" height="30">&nbsp;</td>
                            <td height="30">
                            <input type="submit" value="Send beskeden til kassereren" name=Send />
                         
                            &nbsp;</td>
                        </tr>
                    </table>
                    <p>&nbsp;</p>
                </form>
Avatar billede hanloven Mester
15. juli 2013 - 18:23 #4
1000 tak for koden. Jeg prøver den lige af hurtigst muligt.

Kent.
Avatar billede hanloven Mester
16. juli 2013 - 23:57 #5
Så er koden lagt på. Så efter nogle dage vil jeg kunne se om det har hjulpet. (Der kan nogen gange gå flere dage imellem at de automatiske mails blir sendt ud..)
Avatar billede hanloven Mester
29. juli 2013 - 00:49 #6
Der blir stadig sendt tomme mails ud, via de her kontakt formular, på hjemme siden. Skal der en yderligere omskrivning til ?
Avatar billede MadsHaupt Juniormester
29. juli 2013 - 09:52 #7
Jeg har lige testet din kode, og jeg får ikke tomme mails.

Man behøver ikke at udfylde besked, så hvis det du mener med tomme mails er at der ikke står nogen besked, så er det nok fordi de ikke har skrevet nogen besked.
Avatar billede MadsHaupt Juniormester
29. juli 2013 - 09:55 #8
Jeg prøver lige at sende en test besked til dig.
Avatar billede hanloven Mester
13. august 2013 - 09:44 #9
Hej har lidt mange ting om ørene for tiden, så det er kun lidt ind imellem at jeg kan arbejde med at få det til at fungere.

Nej, der er simpelthen det hele der er tomt i de mails jeg modtager,  inkl. de felter der ikke kan sendes afsted uden at være udfyldte.. Det er det der virker så underligt. Kan det være hos min ISP den er gal? Nu har jeg midlertidig sat alle formularer til at sende til mig og kommer der så nogle med noget indhold, sender jeg dem videre til rette vedkommende.
Avatar billede hanloven Mester
13. august 2013 - 09:44 #10
Jeg har i øvrigt modtaget din test-mail. Den gik fint igennem :-)
Avatar billede MadsHaupt Juniormester
13. august 2013 - 16:18 #11
Hvis den gik igennem så må det jo være fordi, at du ikke har lavet et javascript der sørger for at man skal indtaste noget i beskeden, før den går i gennem.
Avatar billede hanloven Mester
14. august 2013 - 12:45 #12
Du skal lige forstå mig korrekt. Hvis vi eks. tager formularen der sender til bestyrelsen, så har den 3 felter i alt. I de 2 første indtaster brugeren sit navn og sin mail adresse og den sidste er så til selve beskeden. Det er ganske rigtigt kun de 2 første der skal udfyldes før at formen kan submittes.

Sagen er bare at de mails jeg får, er helt tomme. Der er ikke information fra nogle af felterne. Heller ikke de 2 som skal udfyldes før den kan sendes. Efter som at det er umuligt at sende formen uden at de 2 er udfyldt, og det sker alligevel, går jeg ud fra at fejlen måske skal findes hos min isp.. Men det er kun et skud i tågen.
Avatar billede MadsHaupt Juniormester
14. august 2013 - 14:34 #13
Så syntes jeg at du skulle lave nole echo tests og sende en test mail, og så sende resultatet til mig, så vil jeg prøve at se om jeg kan finde en løsning.

Eksempel:
echo $_REQUEST['navn'];
echo "<br />";
echo $_REQUEST['mail'];
echo "<br />";
echo $besked = $_REQUEST['besked'];
Avatar billede MadsHaupt Juniormester
14. august 2013 - 14:36 #14
echo $_REQUEST['navn'];
echo "<br />";
echo $_REQUEST['mail'];
echo "<br />";
echo $besked = $_REQUEST['besked'];
echo "<br />";

echo print_r($_REQUEST);
Avatar billede hanloven Mester
31. august 2013 - 10:10 #15
Hej Mads. Tak for din hjælp. Nu har jeg lidt tid igen til forhåbentligt at få det til at virke. Hvor skal koden indsættes i min kode?
Avatar billede MadsHaupt Juniormester
04. september 2013 - 17:08 #16
Koden skal indsættes i toppen af din php kode.
Avatar billede hanloven Mester
10. september 2013 - 12:56 #17
Umiddelbart ser det ud at at den er holdt op med at sende de tomme mails nu. Tror det kan ha at gøre med at jeg har flyttet det sammen, så formularene og php filerne ligger på samme webhotel. Før brugte jeg et andet hotel, til php filerne, da det fra TDC ikke understøttede php..

Efter overflytningen har jeg kun modtaget enkelte tomme mails, men nu ser de ud til at være helt stoppet.

Jeg lader lige spørgsmålet stå åbent lidt endnu, indtil jeg er helt sikker.

Tak for din hjælp indtil videre.
Avatar billede MadsHaupt Juniormester
10. september 2013 - 13:10 #18
Det er rigtig at det var derfor, men hvorfor sagde du ikke bare at du hanvde flyttet php filerne fra et webhotel til et andet webhotel?.
Avatar billede MadsHaupt Juniormester
15. september 2013 - 16:32 #19
Rettelse af form:
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form name="form1" method="post" action="Formmail.php">
        [b]<form name="form1" method="post" action="Formmail.php">[b]
                          <table width="400" border="0" cellspacing="0" cellpadding="3">
                            <tr>
                              <td>Navn</td>
                              <td>&nbsp;</td>
                              <td><input type="text" name="navn" id="name"></td>
                            </tr>
                            <tr>
                              <td>Tlf</td>
                              <td>&nbsp;</td>
                              <td><input type="text" name="tlf" id="name2"></td>
                            </tr>
                            <tr>
                              <td>billede nr</td>
                              <td>&nbsp;</td>
                              <td><input type="text" name="billednr" id="name3"></td>
                            </tr>
                            <tr>
                              <td>E-mail</td>
                              <td>&nbsp;</td>
                              <td><input type="text" name="emailadresse" id="mail"></td>
                            </tr>
                            <tr>
                              <td>Besked 1</td>
                              <td>&nbsp;</td>
                              <td><textarea name="besked1" id="txt" cols="45" rows="5"></textarea></td>
                            </tr>
                            <tr>
                              <td>Besked 2</td>
                              <td>&nbsp;</td>
                              <td><label>
                              <textarea name="besked2" id="besked2" cols="45" rows="5"></textarea>
                              </label></td>
                            </tr>
                            <tr>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td><input type="submit" name="Submit" id="Submit" value="Send"></td>
                            </tr>
          </table>
        </form>
    </body>
</html>




Rettelse af Formmail.php:
<?php

// Surftown formmail

// angiv modtagere af formmailen
// flere modtagere kan tilføjes som
// $modtagere[1] = "adresse@domain.dk"
// $modtagere[2] = "adresse2@domain.dk"
// osv.
$modtagere[0] = "martin@klarsgaard.com";
//$modtagere[1] = "leo@ironstones.com";

// succes og fejlsider
$succes = "succes.html";
$fejl = "error.html";

// standard tesktbokse er
// navn
// emailadresse
// emne
// besked

// disse skal være "name" på de forskellige tekstbokse på html-siden
// f.eks. <input type="text" name="navn"></input>

// lav liste over modtagere
$mail_modtagere = implode("martin@klarsgaard.com", $modtagere);

// klargør parametre
$navn = $_POST['navn'];
$emailadresse = "From: " . $_POST['emailadresse'];
$emne = "Message from " . $navn . ": " . $_POST['emne'];
$besked = $_POST['besked1'] . $_POST ['besked2'];
$afdeling = $_POST['afdeling'];

echo "mail('$mail_modtagere', '$emne', '$besked', '$emailadresse', '$afdeling');<br /><br /><br />";

// send mail
$mail_status = mail($mail_modtagere, $emne, $besked, $emailadresse, $afdeling);

if ($mail_status) {
header("Location: " . $succes);
} else {
header("Location: " . $fejl);
}

?>
Avatar billede MadsHaupt Juniormester
15. september 2013 - 16:34 #20
Undskyld jeg kom til at lægge et svar end i den forkerte tråd.
Avatar billede hanloven Mester
27. september 2013 - 10:19 #21
Det har du helt klar ret i Mads.. Sorry.. min fejl. Jeg var slet ikke klar over at det kunne være det der var problemet. Men det ser ud til at være kørende nu.. Nu har jeg bare problemer med at mails til 2 af mail adresserne, jeg sender til, ikke bliver modtaget. Og det ér den korrekte mail jeg bruger (Hvis jeg sender en manuel mail, via gmail, blir de fint modtaget).

Jeg får ikke besked på min mail, når der er svar på en tråd her på Eksperten.. Så der går lidt inden jeg opdager at der er response.
Avatar billede MadsHaupt Juniormester
27. september 2013 - 12:37 #22
Hvordan ser den line der sender to mails, ud?.
Avatar billede hanloven Mester
29. september 2013 - 10:25 #23
Jeg er ikke helt klar over hvad du mener?

Mail til den ene blir sendt sammen med 5-6 andre. - Mailen blir sendt til en adresse, via formularen på hjemmesiden, hvor jeg så efterfølgende, via forwarding på mail administrationen på webhotellet, deler den ud til dem som skal modtage den. Det fungerer perfekt med alle, på nær 1. 

Den anden som ikke blir modtaget er opsat helt efter bogen, uden nogen forwarding. - De modtager bare ikke mailen.

Grundopsætningen har tidligere været helt den samme (på nær at php filerne lå på et anden hotel) - og her har det kørt fint.. (hvad angår modtagelsen af mails). Der er et eller andet jeg overser, I know.. Det er bare lige hvad.
Avatar billede MadsHaupt Juniormester
29. september 2013 - 17:28 #24
Du skal huske at bruge \r\n efter hver header.
Avatar billede hanloven Mester
29. september 2013 - 18:39 #25
Kan du gi et eksempel? Jeg er ikke helt klar over hvor du mener.. I html formularen eller php filen? Hvad gør /r/n?
Avatar billede MadsHaupt Juniormester
29. september 2013 - 18:44 #26
\r\n laver en ny line, jeg har nole gange prøvet uden \r\n efter hver header, men det virkede ikke, men med \r\n for hver header virkede det.
Avatar billede hanloven Mester
30. september 2013 - 11:17 #27
Jeg må indrømme at jeg stadig hænger lidt i bremsen omkring nogle af de helt grundlæggende begreber omkring html osv. Ku jeg ikke få dig til at skære det lidt ud i pap? - Jeg ved ikke hvad du mener med "efter hver header". Er det i php filen eller html filen, med formen, du mener at \r\n skal puttes ind? Kan du gi et kode eksempel, så jeg praktisk kan se hvor i koden det skal ind? Sorry at jeg er en smule tykhovedet :-)
Avatar billede MadsHaupt Juniormester
30. september 2013 - 14:45 #28
I din kode der hvor der står "$header  = "MIME-Version: 1.0" . "\r\n";
    $header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
    $header .= "from:Mail fra hjemmesiden";" kan du prøve at ændre til " $header  = "MIME-Version: 1.0;" . "\r\n";
    $header .= "Content-type: text/html; charset=iso-8859-1;" . "\r\n";
    $header .= "FROM: Mail fra hjemmesiden;";"
Avatar billede MadsHaupt Juniormester
30. september 2013 - 14:45 #29
Jeg ved ikke om det virker.
Avatar billede hanloven Mester
30. september 2013 - 21:39 #30
Cool. Tak! Det er helt sikkert et forsøg værd. Jeg vender lige tilbage.
Avatar billede hanloven Mester
09. december 2013 - 11:23 #31
Hej igen. Efter lang tids eksperimenteren, har jeg nu fået hjælp til at få det op at køre. Det er lavet med asp i stedet. Det andet virkede bare ikke med tdc.. Mange tak for dine forslag og ideer. Vil du lægge et svar. Jeg vil gerne gi dig point, selvom det ikke helt lykkedes denne vej.
Avatar billede MadsHaupt Juniormester
11. december 2013 - 14:07 #32
svar
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