24. november 2009 - 17:47
Der er
19 kommentarer og 1 løsning
Problemer med if
Hej Jeg vil gerne lave en mailform, som sender en mail til en person, hvis en checkbox er afkrydset. Formen består af 3 filer. Én med formularen, én hvor brugeren skal bekræfte oplysningerne og en som sender en mail til mig med brugerens oplysninger og samtidig en til brugeren. Nu vil jeg gerne at der også skal sendes en mail til en 3 person, men kun hvis en checkbox er afkrydset. Jeg troede at nedenstående skulle kunne gøre det, men det virker ikke... Er der nogen der kan råde mig til hvad jeg skal gøre? if($_POST['box'] == ja) { mail($_POST['my@mail.dk'], 'Emne', $_POST['navn'], "From: No_Reply@mail.dk"); }
Annonceindlæg fra Barco
24. november 2009 - 18:55
#1
Please help me somebody! :o)
24. november 2009 - 18:57
#2
kan du vise filen, hvor de data du vil have sendt pr. email bliver udfyldt på?
24. november 2009 - 19:01
#3
Har ikke læst spørgsmålet, men ja skal være "ja": if($_POST['box'] == "ja") {
24. november 2009 - 19:06
#4
if(isset($_POST['box']) && $_POST['box'] == 'ja') { //Tænk på at der er forskel på 'Ja' og 'ja'
24. november 2009 - 19:16
#5
Her er koden fra de 3 dokumenter: Formular.php: <html> <head> <title></title> </head> <body> <div> <form method="post" onSubmit="return valider(this);" action="bekraeft.php" name="bestil" id="form"> <table><tr><td class="txt" style="padding-top:5px; padding-bottom:5px; width:90px">Firma</td> <td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="firma" type="text" id="firma" size="50"></td> </tr> <tr><td style="padding-top:5px; padding-bottom:5px">Navn</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="navn" type="text" id="navn" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px">Adresse</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="adresse" type="text" id="adresse" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px"></td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="adresse2" type="text" id="adresse2" size="50"></td></tr> <tr> <td style="padding-top:5px; padding-bottom:5px">Postnummer</td><td width="15" style="padding-top:5px; padding-bottom:5px; width:105px"><input name="postnr" type="text" id="postnr" size="10"></td> <td style="padding-top:5px; padding-bottom:5px; width:30px">By</td> <td style="padding-top:5px; padding-bottom:5px"><input name="by" type="text" id="by" size="27"></td> </tr> <tr><td style="padding-top:5px; padding-bottom:5px">Land</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="country" type="text" id="country" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px">Tlf.</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="tlf" type="text" id="tlf" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px">Mail</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="mail" type="text" id="mail" size="50"></td> </tr> <tr><td colspan="4" style="padding-top:5px; padding-bottom:5px"><table width="300" border="0"> <tr> <td width="20px"><label> <input name="box" type="checkbox" id="box" value="ja" checked> </label></td> <td width="250px"><strong>Kontakt mig</strong></td> </tr> </table></td> </tr> <tr><td style="padding-top:5px; padding-bottom:5px"></td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><div align="right" style="width:325px"> <input name="send" type="submit" id="send" value="Send"> </div></td></tr></table> </form> <div></div></div> </body> </html> Bekraeft.php: <html> <head> <title></title> </head> <div> <?php $firma = $_REQUEST["firma"]; $navn = $_REQUEST["navn"]; $adresse = $_REQUEST["adresse"]; $adresse2 = $_REQUEST["adresse2"]; $postnr = $_REQUEST["postnr"]; $by = $_REQUEST["by"]; $country = $_REQUEST["country"]; $tlf = $_REQUEST["tlf"]; $mail = $_REQUEST["mail"]; $box = $_REQUEST["kontakt"]; echo "<p> Firma: $firma <p> Navn: $navn <p> Adresse: $adresse, $adresse2 <p> Postnummer: $postnr <p> By: $by <p> Land: $country <p> Telefon: $tlf <p> E-mail adresse: $mail"; $bruger = "Kære $navn\n bla bla bla."; $oplysninger = "Firma: $firma\n Navn: $navn\n Adresse: $adresse, $adresse2\n Postnummer: $postnr\n By: $by\n Land: $country\n Telefon: $tlf\n E-mail adresse: $mail\n Kontakt: $box\n\n"; $aftale = "Kontakt:\n Firma: $firma\n Navn: $navn\n Adresse: $adresse, $adresse2\n Postnummer: $postnr\n By: $by\n Land: $country\n Telefon: $tlf\n E-mail adresse: $mail\n\n"; ?> <form action="faerdig.php" method="post"> <? // send alle oplysninger tilbage til browser i et langt skjult felt: ?> <input type="hidden" name="oplysninger" value="<?php echo $oplysninger ?>" /> <input type="hidden" name="bruger" value="<?php echo $bruger ?>" /> <input type="hidden" name="hotline" value="<?php echo $aftale ?>" /> <? // send mailadressen som eget felt også, så den er nem at få fat i: ?> <input type="hidden" name="mail" value="<?php echo $mail ?>" /> <div class="knap"><input type="button" value="Tilbage" onClick="history.go(-1);return false;" /> <input type="submit" value="Bekræft" /></div> </form></div> faerdig.php: <?php mail('my@mail.dk', 'Bestilling', $_POST['oplysninger'], "From: server@mail.dk"); mail($_POST['mail'], 'Bestilling', $_POST['bruger'], "From: server@mail.dk"); if($_POST['box'] == 1) { mail($_POST['my@mail.dk'], 'Kontakt', $_POST['aftale'], "From: server@mail.dk"); } header("location: tak.php"); ?>
24. november 2009 - 19:20
#6
Okay, regner med de steder hvor du har skrevet $_POST['my@mail.dk'] skal der stå: $_POST['mail']
24. november 2009 - 19:23
#7
Nej. De steder hvor der står $_POST['mail'] skal der sendes til brugeren, de øvrige er til mig.
24. november 2009 - 19:26
#8
$box = $_REQUEST["kontakt"]; skal være $box = §_POST["box"]; og i din from der sender oplysningerne får du brug for noget til at bekræfte din box er sat. <?php if(isset($_POST['box'])){ ?> <input type="hidden" name="bruger" value="<?php echo $box ?>" /> <?php } ?> og faerdig.php <?php mail($_POST['mail'], 'Bestilling', $_POST['oplysninger'], "From: server@mail.dk"); mail($_POST['mail'], 'Bestilling', $_POST['bruger'], "From: server@mail.dk"); if(isset($_POST['box'])) { mail($_POST['mail'], 'Kontakt', $_POST['aftale'], "From: server@mail.dk"); } header("location: tak.php"); ?>
24. november 2009 - 19:28
#9
okay sorry, bare ret det så, men du tjekker stadig ikke om din box er checked. kan du gøre via. <?php if(isset($_POST['box'])){ ?> <input type="hidden" name="box" value="<?php echo $box ?>" /> <?php } ?> PS. den ovenover gav jeg et forkert navn
24. november 2009 - 19:42
#10
Formular.php: <html> <head> <title></title> </head> <body> <div> <form method="post" onSubmit="return valider(this);" action="bekraeft.php" name="bestil" id="form"> <table><tr><td class="txt" style="padding-top:5px; padding-bottom:5px; width:90px">Firma</td> <td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="firma" type="text" id="firma" size="50"></td> </tr> <tr><td style="padding-top:5px; padding-bottom:5px">Navn</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="navn" type="text" id="navn" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px">Adresse</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="adresse" type="text" id="adresse" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px"></td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="adresse2" type="text" id="adresse2" size="50"></td></tr> <tr> <td style="padding-top:5px; padding-bottom:5px">Postnummer</td><td width="15" style="padding-top:5px; padding-bottom:5px; width:105px"><input name="postnr" type="text" id="postnr" size="10"></td> <td style="padding-top:5px; padding-bottom:5px; width:30px">By</td> <td style="padding-top:5px; padding-bottom:5px"><input name="by" type="text" id="by" size="27"></td> </tr> <tr><td style="padding-top:5px; padding-bottom:5px">Land</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="country" type="text" id="country" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px">Tlf.</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="tlf" type="text" id="tlf" size="50"></td></tr> <tr><td style="padding-top:5px; padding-bottom:5px">Mail</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="mail" type="text" id="mail" size="50"></td> </tr> <tr><td colspan="4" style="padding-top:5px; padding-bottom:5px"><table width="300" border="0"> <tr> <td width="20px"><label> <input name="box" type="checkbox" id="box" value="ja" checked> </label></td> <td width="250px"><strong>Kontakt mig</strong></td> </tr> </table></td> </tr> <tr><td style="padding-top:5px; padding-bottom:5px"></td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><div align="right" style="width:325px"> <input name="send" type="submit" id="send" value="Send"> </div></td></tr></table> </form> <div></div></div> </body> </html> Bekraeft.php: <html> <head> <title></title> </head> <div> <?php $firma = $_POST["firma"]; $navn = $_POST["navn"]; $adresse = $_POST["adresse"]; $adresse2 = $_POST["adresse2"]; $postnr = $_POST["postnr"]; $by = $_POST["by"]; $country = $_POST["country"]; $tlf = $_POST["tlf"]; $mail = $_POST["mail"]; $box = $_POST["box"]; echo "<p> Firma: $firma <p> Navn: $navn <p> Adresse: $adresse, $adresse2 <p> Postnummer: $postnr <p> By: $by <p> Land: $country <p> Telefon: $tlf <p> E-mail adresse: $mail"; $bruger = "Kære $navn\n bla bla bla."; $oplysninger = "Firma: $firma\n Navn: $navn\n Adresse: $adresse, $adresse2\n Postnummer: $postnr\n By: $by\n Land: $country\n Telefon: $tlf\n E-mail adresse: $mail\n Kontakt: $box\n\n"; $aftale = "Kontakt:\n Firma: $firma\n Navn: $navn\n Adresse: $adresse, $adresse2\n Postnummer: $postnr\n By: $by\n Land: $country\n Telefon: $tlf\n E-mail adresse: $mail\n\n"; ?> <form action="faerdig.php" method="post"> <? // send alle oplysninger tilbage til browser i et langt skjult felt: ?> <?php if(isset($_POST['box'])){ ?> <input type="hidden" name="box" value="<?php echo $box ?>" /> <?php } ?> <input type="hidden" name="oplysninger" value="<?php echo $oplysninger ?>" /> <input type="hidden" name="bruger" value="<?php echo $bruger ?>" /> <input type="hidden" name="hotline" value="<?php echo $aftale ?>" /> <? // send mailadressen som eget felt også, så den er nem at få fat i: ?> <input type="hidden" name="mail" value="<?php echo $mail ?>" /> <div class="knap"><input type="button" value="Tilbage" onClick="history.go(-1);return false;" /> <input type="submit" value="Bekræft" /></div> </form></div> faerdig.php: <?php mail('my@mail.dk', 'Bestilling', $_POST['oplysninger'], "From: server@mail.dk"); mail($_POST['mail'], 'Bestilling', $_POST['bruger'], "From: server@mail.dk"); if($_POST['box'] == 1) { mail($_POST['my@mail.dk'], 'Kontakt', $_POST['aftale'], "From: server@mail.dk"); } header("location: tak.php"); ?>
24. november 2009 - 19:59
#11
Hmmm. Jeg kan ikke umiddelbart få det til at virke. Jeg modtager stadig kun de 2 mails - altså én til brugeren ($bruger), en til mig ($oplysninger), men $aftale bliver tilsyneladende ikke sendt. Jeg har sat <?php if(isset($_POST['box'])){ ?> <input type="hidden" name="bruger" value="<?php echo $box ?>" /> <?php } ?> ind på bekraeft.php og har ændret name="bruger" til name="aftale" og rettet faerdig.php til.
24. november 2009 - 20:03
#12
kdjweb>>Det er ikke nødvendigt at skrive $_POST, man kan skrive $_REQUEST. $_REQUEST tager $_GET, $_POST og $_COOKIE.
24. november 2009 - 20:04
#13
Undskyld, jeg var så optaget at jeg ikke havde set dit sidste svar. Jeg prøver lige igen :D
24. november 2009 - 20:38
#14
kdjweb Jeg syntes ikke jeg kan få det til at virke. Jeg modtager stadig ikke den 3. mail - altså "$aftale".
24. november 2009 - 20:45
#15
michael > Ved jeg udenmærke godt. Dog kan jeg se på hans form at han benytter post, derfor gjorde jeg det for logikken i det. arnbjerg > Skal $aftale og $oplysninger sendes til den samme modtager (dig)? ellers formoder jeg at det skal være det samme til adresser? faerdig.php: <?php mail('my@mail.dk', 'Bestilling', $_POST['oplysninger'], "From: server@mail.dk"); mail($_POST['mail'], 'Bestilling', $_POST['bruger'], "From: server@mail.dk"); if($_POST['box'] == 1) { if(mail('my@mail.dk', 'Kontakt', $_POST['aftale'], "From: server@mail.dk")) echo "Mail er sendt"; } // Venter lige med at vidresende //header("location: tak.php"); ?>
24. november 2009 - 20:52
#16
$aftale og $oplysninger skal sendes til to forskellige.
24. november 2009 - 21:00
#17
hvem skal aftale sendes til
24. november 2009 - 21:01
#18
Så fandt jeg fejlen if($_POST['box'] == 1) ændres til if($_POST['box'] == 'ja')? HURRA og tusind tak!
24. november 2009 - 21:09
#19
$aftale skal bare sendes til en mail-adr. Så faerdig.php ser nu sådan ud: <?php mail('my@mail.dk', 'Bestilling', $_POST['oplysninger'], "From: server@mail.dk"); mail($_POST['mail'], 'Bestilling', $_POST['bruger'], "From: server@mail.dk"); if($_POST['box'] == 'ja') { if(mail('some@mail.dk', 'Kontakt', $_POST['aftale'], "From: server@mail.dk")); } header("location: tak.php"); ?> Endnu engang tusind tak for hjælpen!
24. november 2009 - 22:06
#20
Som jeg skrev i #3 ;o)
Vi tilbyder markedets bedste kurser inden for webudvikling