Avatar billede weblance Nybegynder
29. juni 2007 - 13:32 Der er 15 kommentarer og
1 løsning

Er der noget i dette script der gør at den ikke vil virke?

Jeg modtager ikke de mails som scriptet burde sende ud, er der noget i scriptet der gør at den ikke virker?

<?
// Sæt variabler
$navn = addslashes($_POST['navn']);
$adresse = addslashes($_POST['adresse']);
$adresse2 = addslashes($_POST['adresse2']);
$postnr = addslashes($_POST['postnr']);
$by = addslashes($_POST['by']);
$telefon = addslashes($_POST['telefon']);
$fax = addslashes($_POST['fax']);
$email = addslashes($_POST['email']);
$web = addslashes($_POST['web']);
$besked = addslashes($_POST['besked']);


// Tæller til "vis$antal"
$antal = 0;
$filename = "counter.txt";

$fil = fopen($filename, "r");
$antal = fread($fil, filesize($filename));
fclose($fil);
$antal++;
$fil = fopen($filename, "w");
fwrite($fil, $antal);
fclose($fil);


// Sørg for at der er valgt en eller flere kategorier
if ($_SERVER['REQUEST_METHOD'] == 'GET')
{
  die('No post.');
}
$kategori = (string) $_POST['kategori'];
if (empty($kategori))
{
  die('FEJL: Du har ikke valgt en kategori. Gå tilbage og vælg én eller flere kategorier ved at trykke 
<a href="java script:history.back(-1);">her</a>.');
}


// Tilføj landekode til postnummer
if($postnr < 999) {
    $pn = "FO";
} elseif($postnr > 999) {
    $pn = "DK";
}

// Tilføj landekode til telefonnummer
if($telefon < 999999) {
    $prefix = "(+298)";
} elseif($telefon > 11111111) {
    $prefix = "(+45)";
}

$pfw_header = "From: $email\n"
  . "Reply-To: $email\n" . "X-Priority: 1\n";
$pfw_subject = "Tilmeldningsformular udfyldt på FÆRØERNE.DK";
$pfw_subject_admin = "Tilmeldningsformular udfyldt på FÆRØERNE.DK - Kode til hjemmeside - $by";
$pfw_email_to = "ejer@domæne.dk";
$pfw_email_to_extra = "ejer2@domæne.dk";
$pfw_email_to_admin = "admin@domæne.dk";

// HTML kode til post@weblance.dk
$pfw_message_admin = "Følgende er blevet udfyldt i tilmeldningsformularen på FÆRØERNE.DK:\n"
. "\n"
. "-------------------------------------------- Kode til hjemmeside --------------------------------------------"
. "\n"
. "<td class=\"style1\"><div align=\"left\"><a href=\"#\" onclick=\"st=document.getElementById('vis$antal').style;st.display=(st.display!='block'?'block':'none');return false;\">$navn</a>\n"
. "<div id=\"vis$antal\" style=\"display:none;\">\n"
. "$adresse<br />\n";
if ($adresse2 != "") { $pfw_message_admin .= "$adresse2<br />\n"; }
$pfw_message_admin .= "$pn-$postnr $by<br />\n"
. "Tlf.: $prefix $telefon<br />\n";
if ($fax != "") { $pfw_message_admin .= "Fax: $prefix $fax<br />\n"; }

if ($email != "") { $pfw_message_admin .= "<a href=\"mailto:$email\" style=\"text-decoration:none;color:#333333\">$email</a><br />\n"; }

if ($web != "") { $pfw_message_admin .= "<a href=\"http://$web\" target=\"_blank\" style=\"text-decoration:none;color:#333333\">$web</a><br />\n"; }

$pfw_message_admin .= "<img src=\"images/tom.gif\" width=\"10\" height=\"10\" /></div>\n"
. "</div></td>\n"
. "\n"
. "-------------------------------------------- Kode til hjemmeside --------------------------------------------"
. "\n"
. "Valgte kategorier:";
foreach ($_POST['kategori'] as $key => $value) {
  $pfw_message_admin .= "\n" . addslashes($value);
}

// Besked til kasper@solbergs.dk & post@weblance.dk
$pfw_message = "Følgende er blevet udfyldt i tilmeldningsformularen på FÆRØERNE.DK:\n"
. "\n"
. "Navn: $navn\n"
. "Adresse: $adresse\n";
if ($adresse2 != "") { $pfw_message .= "$adresse2\n"; }
$pfw_message .= "Postnr: $postnr\n"
. "By: $by\n"
. "Telefon: $telefon\n"
. "Fax: $fax\n"
. "Email: $email\n"
. "Hjemmeside: $web\n"
. "\n"
. "Valgte kategorier:";
foreach ($_POST['kategori'] as $key => $value) {
  $pfw_message .= "\n" . addslashes($value);
}
$pfw_message .= "\n\nBesked:\n$besked";


// Er email gyldig?
function is_valid_email($email) {
  return preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s]+\.+[a-z]{2,6}))$#si', $email);
}

if (!is_valid_email($email)) {
  echo 'FEJL: Den email adresse du har opgivet er ikke i et gyldigt format. Gå tilbage og skriv en gyldig adresse ved at trykke 
<a href="java script:history.back(-1);">her</a>.';
  exit;
}


// Send emails
mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;
mail($pfw_email_to_extra, $pfw_subject ,$pfw_message ,$pfw_header ) ;
mail($pfw_email_to_admin, $pfw_subject_admin ,$pfw_message_admin ,$pfw_header ) ;

// Returnér til forrige side
Header("Location: ".$_POST["retPage"]."?sent=OK");
?>
Avatar billede jakobdo Ekspert
29. juni 2007 - 14:44 #1
Hvad oplever du af fejl da?
Avatar billede weblance Nybegynder
29. juni 2007 - 15:01 #2
Jeg modtager ingen email
Avatar billede jakobdo Ekspert
29. juni 2007 - 15:10 #3
Prøv at tilføj testen:

if(mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ))
echo 'Email1 afsendt';
else
echo 'Email1 fejl';
if(mail($pfw_email_to_extra, $pfw_subject ,$pfw_message ,$pfw_header ))
echo 'Email2 afsendt';
else
echo 'Email2 fejl';
if(mail($pfw_email_to_admin, $pfw_subject_admin ,$pfw_message_admin ,$pfw_header ))
echo 'Email3 afsendt';
else
echo 'Email3 fejl';
Avatar billede weblance Nybegynder
29. juni 2007 - 15:35 #4
så sigeer den:

Email1 afsendtEmail2 afsendtEmail3 afsendt
Avatar billede weblance Nybegynder
29. juni 2007 - 15:35 #5
der må være noger galt med mailadressen i stedet
Avatar billede jakobdo Ekspert
29. juni 2007 - 15:57 #6
Det kunne det måske være ja! :o)
Avatar billede weblance Nybegynder
29. juni 2007 - 16:06 #7
Frygteligt bøvl

Men jeg har fundet ud af hvis jeg sender 3 mail, kommer kun 2 af dem frem... Meget mærkeligt!

Håber at jeg en dag kan blive mere end en newbie til php programmering :)
Avatar billede jakobdo Ekspert
29. juni 2007 - 19:18 #8
Er det samme email alle 3 emails sendes til?
Avatar billede weblance Nybegynder
29. juni 2007 - 21:05 #9
Det er til to forskellige adresser
Avatar billede jakobdo Ekspert
29. juni 2007 - 21:26 #10
Og de 2 som kommer fint frem, er det til den ene email?
Og den som ikke kommer frem til den anden?

En god ide er altid at starte helt basic og teste om man kan få emails igennem til modtagere fra php.

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>
Avatar billede weblance Nybegynder
29. juni 2007 - 22:07 #11
Denne går til adresse 1:
mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

Disse går til adresse 2:
mail($pfw_email_to_extra, $pfw_subject ,$pfw_message ,$pfw_header ) ;
mail($pfw_email_to_admin, $pfw_subject_admin ,$pfw_message_admin ,$pfw_header ) ;

Den der ikke når frem er:
mail($pfw_email_to_admin, $pfw_subject_admin ,$pfw_message_admin ,$pfw_header ) ;
Avatar billede jakobdo Ekspert
01. juli 2007 - 14:35 #12
Og du er sikker på alle felter er korrekt udfyldt, på den mail() som ikke når frem?
Avatar billede way3000 Nybegynder
04. juli 2007 - 11:10 #13
og at de ikke bare er fanget i spam folderen ?
Avatar billede weblance Nybegynder
19. august 2007 - 20:21 #14
jakobdo > send lige et svar
Avatar billede jakobdo Ekspert
19. august 2007 - 20:29 #15
Svar!
Avatar billede jakobdo Ekspert
20. august 2007 - 07:50 #16
Takker for point.
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