Avatar billede arnbjerg Nybegynder
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");
}
Avatar billede arnbjerg Nybegynder
24. november 2009 - 18:55 #1
Please help me somebody! :o)
Avatar billede kdjweb Nybegynder
24. november 2009 - 18:57 #2
kan du vise filen, hvor de data du vil have sendt pr. email bliver udfyldt på?
Avatar billede michael_stim Ekspert
24. november 2009 - 19:01 #3
Har ikke læst spørgsmålet, men ja skal være "ja":

if($_POST['box'] == "ja") {
Avatar billede michael_stim Ekspert
24. november 2009 - 19:06 #4
if(isset($_POST['box']) && $_POST['box'] == 'ja') {

//Tænk på at der er forskel på 'Ja' og 'ja'
Avatar billede arnbjerg Nybegynder
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;" />&nbsp;&nbsp;<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");

?>
Avatar billede kdjweb Nybegynder
24. november 2009 - 19:20 #6
Okay, regner med de steder hvor du har skrevet $_POST['my@mail.dk'] skal der stå: $_POST['mail']
Avatar billede arnbjerg Nybegynder
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.
Avatar billede kdjweb Nybegynder
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");

?>
Avatar billede kdjweb Nybegynder
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
Avatar billede kdjweb Nybegynder
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");

?>
Avatar billede arnbjerg Nybegynder
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.
Avatar billede michael_stim Ekspert
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.
Avatar billede arnbjerg Nybegynder
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
Avatar billede arnbjerg Nybegynder
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".
Avatar billede kdjweb Nybegynder
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");

?>
Avatar billede arnbjerg Nybegynder
24. november 2009 - 20:52 #16
$aftale og $oplysninger skal sendes til to forskellige.
Avatar billede kdjweb Nybegynder
24. november 2009 - 21:00 #17
hvem skal aftale sendes til
Avatar billede arnbjerg Nybegynder
24. november 2009 - 21:01 #18
Så fandt jeg fejlen
if($_POST['box'] == 1)
ændres til
if($_POST['box'] == 'ja')?

HURRA  og tusind tak!
Avatar billede arnbjerg Nybegynder
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!
Avatar billede michael_stim Ekspert
24. november 2009 - 22:06 #20
Som jeg skrev i #3 ;o)
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