Avatar billede fimo Seniormester
20. februar 2011 - 13:53 Der er 12 kommentarer og
1 løsning

Modtager ingen mails via contact_us.php

Jeg har en lille webshop hvor jeg har en contact_us.php
men når nogen skriver via denne, så modtager jeg ikke nogen mail ?


require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CONTACT_US);

  $error = false;
  if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'send')) {
    $name = tep_db_prepare_input($HTTP_POST_VARS['name']);
    $email_address = tep_db_prepare_input($HTTP_POST_VARS['email']);
    $enquiry = tep_db_prepare_input($HTTP_POST_VARS['enquiry']);

    if (tep_validate_email($email_address)) {
      tep_mail(STORE_NAME, STORE_EMAIL_ADDRESS, EMAIL_SUBJECT, $enquiry, $name, $email_address);

      tep_redirect(tep_href_link(FILENAME_CONTACT_US, 'action=success'));
    } else {
      $error = true;

      $messageStack->add('contact', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
    }
  }

  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CONTACT_US));
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="0" cellpadding="0" class="pageBody">
<tr>

<?php
// added by GrafikStudiet
  if (LAYOUT_COLUMN_LEFT_SHOW == 'Ja') {
?>

<td width="<?php echo LAYOUT_COLUMN_LEFT_WIDTH; ?>" valign="top" class="columnLeft">

  <table border="0" width="<?php echo LAYOUT_COLUMN_LEFT_WIDTH; ?>" cellspacing="0" cellpadding="0">

<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->

  </table>

</td>

<?php
  }
?>

<!-- body_text //-->
<td width="100%" valign="top" class="columnCenter">

<?php echo tep_draw_form('contact_us', tep_href_link(FILENAME_CONTACT_US, 'action=send')); ?>
  <table border="0" width="100%" cellspacing="0" cellpadding="0" class="pageContents">
  <tr>
  <td class="pageContents">
<table border="0" width="100%" cellspacing="0" cellpadding="0">




      <tr>
        <td><table border="0" width="100%" cellspacing="0" cellpadding="0" class="pageHeading">
          <tr>
    <td class="pageHeading">
    <h1><?php echo HEADING_TITLE; ?></h1></td>

<?php
// added by GrafikStudiet
  if (LAYOUT_SHOW_PAGE_HEADING_ICON == 'Ja') {
?>

            <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_contact_us.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>

<?php
  }
?>
          </tr>
    <tr>
    <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '100%', '3'); ?></td>
    </tr>
    </table>

        </td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php
  if ($messageStack->size('contact') > 0) {
?>
      <tr>
        <td><?php echo $messageStack->output('contact'); ?></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php
  }

  if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'success')) {
?>
      <tr>
        <td class="main" align="center"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_man_on_board.gif', HEADING_TITLE, '0', '0', 'align="left"') . TEXT_SUCCESS; ?></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
      <tr>
        <td><table border="0" width="100%" cellspacing="1" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
<?php
  } else {
?>
      <tr>
        <td><table border="0" width="100%" cellspacing="1" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td class="main"><?php echo ENTRY_NAME; ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo tep_draw_input_field('name'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo ENTRY_EMAIL; ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo tep_draw_input_field('email'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo ENTRY_ENQUIRY; ?></td>
              </tr>
              <tr>
                <td><?php echo tep_draw_textarea_field('enquiry', 'soft', 50, 15); ?></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
      <tr>
        <td><table border="0" width="100%" cellspacing="1" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                <td align="right"><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>
                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
<?php
  }
?>
    </table>
      </td>
  </tr>
  </table>
    </form></td>
<!-- body_text_eof //-->

<?php
// added by GrafikStudiet
  if (LAYOUT_COLUMN_RIGHT_SHOW == 'Ja') {
?>

<td width="<?php echo LAYOUT_COLUMN_RIGHT_WIDTH; ?>" valign="top" class="columnRight">

  <table border="0" width="<?php echo LAYOUT_COLUMN_RIGHT_WIDTH; ?>" cellspacing="0" cellpadding="0">

<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->

  </table>

</td>

<?php
  }
?>

</tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->

</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
Avatar billede pstidsen Novice
20. februar 2011 - 14:19 #1
Jeg kan ikke komme med en forklaring på hvorfor det ikke virker, men kender en anden nem og god kontaktformular (bruger den selv;)). Du finder den her.
Avatar billede tjens Nybegynder
20. februar 2011 - 21:50 #2
Du må prøve at chekke om alle konstanter er oprettet korrekt.
Indsæt f.eks dette:
<?php
echo 'DIR_WS_LANGUAGES: ' . DIR_WS_LANGUAGES  . '<br>';
echo '$language: ' . $language  . '<br>';
echo 'FILENAME_CONTACT_US: ' . FILENAME_CONTACT_US . '<br>';
echo 'STORE_EMAIL_ADDRESS: ' . STORE_EMAIL_ADDRESS . '<br>';
?>


før linien: <?php echo tep_draw_form('contact_us', tep_href_link(FILENAME_CONTACT_US, 'action=send')); ?>

Så kan du kalde siden op og se om værdierne er rigtige
Avatar billede fimo Seniormester
21. februar 2011 - 08:27 #3
tjens>

Jeg er ingen ørn til php, men når jeg kopiere,indsætter,
den tekst du skrev i det blå, så får jeg dette:
DIR_WS_LANGUAGES: includes/languages/
$language: danish
FILENAME_CONTACT_US: contact_us.php
STORE_EMAIL_ADDRESS: Se under kontakt

Ved så ikke lige hvad jeg så skal ?
Avatar billede fimo Seniormester
21. februar 2011 - 08:28 #4
pstidsen> tak for dit forslag, kigger lige på det efter arbejdet...

:)
Avatar billede fimo Seniormester
21. februar 2011 - 08:46 #5
Hej igen, nåede bare lige hurtigt at uploade denne
fil som du foreslog, pstidsen
kontaktformular.php (omdøbte den til contact_us.php)

Og når jeg så klikker på kontakt os, så får jeg ikke en formular frem mere MEN nu får jeg en mail som bare ser sådan ud:

Følgende er sendt via kontaktformularen på xxxxx.dk:

Navn:
E-mail:
Besked:

og ikke noget indhold....

kopi fra den fil jeg har uploaded....

<?php
$hjemmeside = "minhjemmeside.dk";
$mail = "min@mailadresse.dk";
$afsendermail = "kanikke@besvares.invalid";
$viderestil = "http://minhjemmeside.dk";

/* Her hentes oplysningerne fra de udfyldte felter */
$navn = $_REQUEST['navn'] ;
$email = $_REQUEST['email'] ;
$epost = $_REQUEST['epost'] ;
$besked = $_REQUEST['besked'];
$spamfaelde = $_REQUEST['spamfaelde'];
$kopi = $_REQUEST['kopi'];
$emne = $_REQUEST['emne'];

/* Her tjekkes, om det skjulte spamfælde-felt er udfyldt */
if(!empty($email)) {
  echo "Du er havnet i formularens spamfælde. Det burde ikke være muligt at havne her ved et uheld, så skam dig!";
  exit ();
}

/* Her tjekkes, om der er forbudte tegn i felterne */

if(strpos($navn,'@')!==false || strpos($epost,'\\')!==false || strpos($emne,'\\')!==false || strpos($navn,'\\')!==false)
{
  echo "Formularen er ikke udfyldt korrekt, tryk på tilbage-knappen og prøv igen. Tjek, at du har skrevet din mail-adresse korrekt, og at du har skrevet den i det rigtige felt. Der må ikke være baglæns skråstreger (\) i felterne.";
  exit();
}

/* Her tjekkes, om afsenderen har indtastet sin mail-adresse, og i så fald bruges den som afsendeeradresse, så der kan svares på mailen */
if(!empty($epost)) {
  $headers="From: $navn <$epost>\r\n";
}
else {
  $headers="From: Kontaktformular <$afsendermail>\r\n";
}

/* Her indsættes din mailadresse, så afsenderen kan svare på kopimailen */
$formularheaders="From: $hjemmeside <$afsendermail>\r\n";

/* Her samles afsenderens navn, mailadresse og besked i en enkelt variabel */
$oplysninger="Følgende er sendt via kontaktformularen på $hjemmeside:\r\n\r\nNavn: $navn\r\nE-mail: $epost\r\nBesked:\r\n$besked";

/* Her samles oplysningerne til afsenderens kopi af mailen */
$kopimail="Hej $navn\r\nDu har sendt følgende via kontaktformularen på $hjemmeside:\r\n$besked";

if ($kopi > '') {
  /* Her sendes til modtageradressen */
  mail($mail, $emne, $oplysninger, $headers);

  /* Her sendes en kopimail til afsenderen */
  mail($epost, $emne, $kopimail, $formularheaders);
}

else {
  /* Her sendes mailen til modtageradressen */
  mail($mail, $emne, $oplysninger, $headers);
}

/* Når mailen er sendt, viderestilles til denne hjemmeside */
header( "Location: $viderestil" );
?>
Avatar billede pstidsen Novice
21. februar 2011 - 17:53 #6
Du skal gøre to ting:

1. Rette linje 2-5 på php filen. Altså:

$hjemmeside = "minhjemmeside.dk";
$mail = "min@mailadresse.dk";
$afsendermail = "kanikke@besvares.invalid";
$viderestil = "http://minhjemmeside.dk";

Øverste linje: Den hjemmeside der skal i mailen. Det behøver IKKE være www.XXXXXX.dk

Næste linje: Den mail svarene fra kontaktformularen skal sendes til.

Linje 3: Behøves i princippet ikke rettes. Hvis kunden/brugeren vælger at få en kopi af svarene fra kontaktformularen er afsenderen den mail. Du kan evt. kalde den no-reply@ditdomæne.dk

Sidste linje: Den side kunden/brugeren skal sendes til efter han/hun har trykket på "send". F.eks. en side hvor der bare står "Tak for din mail".

2. Indsætte følgende kode på din hjemmeside som HTML:

<form method="post" action="kontaktformular.php" name="formular"> <table style="width:475px; margin-left:auto; margin-right:auto;"><tbody> <tr><td align="left" style="width:100px;">Navn:</td><td align="left"><input name="navn" style="width:375px;" type="text"></td></tr> <tr><td align="left">E-mail:</td><td align="left"> <span style="display: none;">Dette felt skal ikke udfyldes: <input name="email" type="text"><br></span><input name="epost" style="width:375px;" type="text"></td></tr> <tr><td align="left">Emne:</td><td align="left"><input name="emne" style="width:375px;" type="text"></td></tr> <tr><td align="left">Besked:</td><td align="center"><textarea name="besked" style="width:375px; height:100px" rows="5" cols="40"></textarea></td></tr> <tr><td colspan="2" style="text-align:center;">Send mig en kopi <input type="checkbox" name="kopi"></td></tr> <tr><td colspan="2" align="center"><input value="Send" type="submit"><input name="clear" value="Slet alt" title="Slet alt" type="reset"></td></tr> </tbody></table></form>
Avatar billede fimo Seniormester
24. februar 2011 - 10:53 #7
hej igen,

Så blev der lige lidt tid til at teste igen, jeg har ændret punkt 2-5 som du beskrev, men jeg har lidt svært med den der html kode,da
den side som jeg skal have til at virke er en allerede php side
som er lavet med oscommerce shop
http://www.oscommerce.com/solutions
så jeg ved ikke lige hvordan jeg skal greje den del ?
Avatar billede pstidsen Novice
24. februar 2011 - 11:52 #8
Den html kode fra hjemmesiden må gerne være i en php fil ;) Hjalp det?
Avatar billede fimo Seniormester
24. februar 2011 - 13:23 #9
Sorry, jeg er altså lidt "grøn" mht php,

Jeg har den php fil som postet først i denne tråd, og den skal jeg altså ikke bruge mere ?

Så har jeg forsøgt at kopiere denne tekst

$hjemmeside = "minhjemmeside.dk";
$mail = "min@mailadresse.dk";
$afsendermail = "kanikke@besvares.invalid";
$viderestil = "http://minhjemmeside.dk";
osv.....
ind i en ny php fil, omdøbt den til contact.us.php
men den gør bare det at når man går ind på min side / opdaterer siden, så sender den en tom mail til mig...

Så skal jeg også lave en ny php fil hvor jeg copy/paster
dette:
<form method="post" action="kontaktformular.php" name="formular"> <table style="width:475px; margin-left:auto; margin-right:auto;"><tbody> <tr><td align="left" style="width:100px;">Navn:</td><td align="left"><input name="navn" style="width:375px;" type="text"></td></tr> <tr><td align="left">E-mail:</td><td align="left"> <span style="display: none;">Dette felt skal ikke udfyldes: <input name="email" type="text"><br></span><input name="epost" style="width:375px;" type="text"></td></tr> <tr><td align="left">Emne:</td><td align="left"><input name="emne" style="width:375px;" type="text"></td></tr> <tr><td align="left">Besked:</td><td align="center"><textarea name="besked" style="width:375px; height:100px" rows="5" cols="40"></textarea></td></tr> <tr><td colspan="2" style="text-align:center;">Send mig en kopi <input type="checkbox" name="kopi"></td></tr> <tr><td colspan="2" align="center"><input value="Send" type="submit"><input name="clear" value="Slet alt" title="Slet alt" type="reset"></td></tr> </tbody></table></form>

og hvad skal den fil hedde ?

og når jeg kopiere / paster den, så får jeg php fejl, så skal der ikke stå noget mere ved copy/paste ?
Avatar billede pstidsen Novice
24. februar 2011 - 17:01 #10
<form method="post" action="kontaktformular.php" name="formular"> <tab................ Indsætter du rigtigt nok i din php fil. Det er den som skal vises på hjemmeside. Du kan kalde den "kontakt.php". Så når man trykker "kontakt" på menuen skal man komme til www.ditdomæne.dk/kontakt.php, eller hvor du ligger den. Den fil du har omdøbt til contact.us.php skal IKKE vises på hjemmesiden. Hvorfor skal den så være der? Ja det kommer der en forklaring på her:

Hvis du kigger på <form method="post" action="kontaktformular.php" name="formular"> <tab................ kan du se at der står action="kontaktformular.php". Det betyder at når du trykker på send knappen bliver du viderestillet til kontaktformular.php (da du har omdøbt den til contact.us.php, skal du selvfølgelig skrive det i stedet for kontaktformular.php). contact.us.php (eller kontaktformular.php) bliver ikke vist på skærmen, det der står i filen bliver bare udført. Du behøver sådan set ikke forstå hvad der står i filen. Efter den har sendt mailen, skal den udføre det sidste som er at sende dig videre til en anden side. Det er den side du skal skrive $viderestil = "LIGE HER!!!!". Den kan f.eks. bare hedde "tak.html" (eller php hvis du kører php overalt)

Godt så, så står du med to php filer: kontakt.php med koden
<form method="post" action="contact.us.php" name="formular"> <tab................
og contact.us.php med koden:
$hjemmeside = "minhjemmeside.dk";
$mail = "min@mailadresse.dk";
$afsendermail = "kanikke@besvares.invalid";
$viderestil = "http://minhjemmeside.dk";
osv.....


Så skal du bare gøre som der står i punkt 1 i #6.

Jeg har den php fil som postet først i denne tråd, og den skal jeg altså ikke bruge mere ?

Ikke hvis du bruger min metode ;)
Avatar billede pstidsen Novice
26. februar 2011 - 09:18 #11
Altså hvis du lige skriver hvilke felter der skal være kan jeg lige lave det. Det er måske nemmest?? ;)
Avatar billede fimo Seniormester
28. februar 2011 - 08:26 #12
Så virkede det, perfekt....

Smid lige et svar, så du kan få dine point

:)
Avatar billede pstidsen Novice
28. februar 2011 - 10:31 #13
Ping svar :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