Avatar billede MagnusELH Nybegynder
16. februar 2012 - 17:15 Der er 10 kommentarer og
1 løsning

hvor skal jeg skrive Emailen? er lidt tabt ...

Hej med jer.

jeg har hentet denne email formular fra www.hjemmesideskolen.dk, men jeg kan ikke finde ud af hvor jeg skal sætte min email, så folk sender til min email.

kan i forstå mit spørgsmål, så kan i se scriptet her:

<?php
if (isset($_POST['submit']))
{
if (!empty($_POST['name']) && // tjek, at der er skrevet et navn
!empty($_POST['email']) &&    // tjek, at der er skrevet en e-mail-adresse
!empty($_POST['emne']) &&  // tjek, at der er skrevet et emne
!empty($_POST['besked']) &&  // tjek, at der er skrevet en besked

// her følger sikringen mod spambotter
!strpos($_POST['name'], "dit_domain.dk") &&  // tjek, at dit domæne ikke er skrevet i feltet "navn"
!strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "email"
!strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn"
!eregi("\r",$_POST['name']) &&  // tjek, at der ikke er "vogn-retur" i "navn"
!eregi("\n",$_POST['name']) &&  // tjek, at der ikke er "linjeskift" i "navn"
!eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i "email"
!eregi("\n",$_POST['email']))  // tjek, at der ikke er "linjeskift" i "email"

// er alt ok, fortsættes med afsendelse af mailen
{
  $headers="From: ".$_POST['name']."<".$_POST['email'].">";
  if (@$_POST['customer_copy'])
  {
  $headers .= "\r\nBcc: ".$_POST['email'];
  }
  $body .= "Den " . date("d/m y") . " kl. " . date("G:i") . " skrev " . $_POST['name'] . ":\r\n\r\n" . $_POST['besked'];
  if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['emne']),
  stripslashes(strip_tags($body)), $headers))
  {
  echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>";
  }
  else
  {
  echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
  }
}
else
{
  echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes korrekt!</p>";
}
}
?>

hvis nogle vil sætte emailen ind på scriptet er det nogetsjovt@funwemake.com .
Avatar billede olebole Juniormester
16. februar 2012 - 17:23 #1
<ole>

Som det meste på hjemmesideskolen.dk er scriptet skrevet af en, der ikke har lært - og som ikke kan - programmere. Der er 1000-vis af e-mail-scripts 'derude'. Prøv at finde noget på et seriøst site.

/mvh
</bole>
Avatar billede olebole Juniormester
16. februar 2012 - 17:24 #2
Du kan f.eks. prøve denne:

function escapeAddr($addr) {
    $check = preg_match('/(.*)<(.*)>/', $addr, $a);
    if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>';
    return $addr;
}
function mail_utf8($to, $subject='Intet emne', $message='', $from='', $cc='', $bcc='') {
    $from = escapeAddr($from);
    $header = 'From: '.$from.PHP_EOL
            . 'Return-Path: '.$from.PHP_EOL
            . 'Reply-To: '.$from.PHP_EOL
            . 'MIME-Version: 1.0'.PHP_EOL
            . 'Content-type: text/plain; charset=UTF-8'.PHP_EOL
            . 'X-Mailer: PHP/'.phpversion().PHP_EOL
            . 'Content-Transfer-Encoding: 8bit'.PHP_EOL;
    if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
    if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;
    $header .= PHP_EOL;
    return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
}

// Eksempel på brug:
mail_utf8('modtager@gmail.com', 'Besked til dig', 'Indhold af mail', 'fra@domain.dk');
Avatar billede olsensweb.dk Ekspert
16. februar 2012 - 17:32 #3
hvad mon der skal stå i "dit.navn@dit_domain.dk" ??
 
$body .= "Den " . date("d/m y") . " kl. " . date("G:i") . " skrev " . $_POST['name'] . ":\r\n\r\n" . $_POST['besked'];
if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['emne']), stripslashes(strip_tags($body)), $headers))
{
echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>";
}


går ud fra det er denne http://www.hjemmesideskolen.dk/scripts/phpmail.php du anvender !!
men en af dens fejl er at den ikke sender et charset med over, så du kan får problemer med æøå, brug functionen olebole viste i #2
Avatar billede olebole Juniormester
16. februar 2012 - 17:50 #4
@ronols: Dertil skal lægges forkert (uanvendelig) brug af strpos - brug af eregi, som er deprecated - ekstremt mangelfuld header - brug af ordet submit som name attribut på en formknap, hvilket er en velkendt fejlkilde.

Man kan blive træt af alle disse inkompetente, vakuumpakkede klaphatte, som i fuldstændig forvrænget selvopfattelse mener, de kan bidrage med noget brugbart! Den slags idioter gør langt mere skade end gavn!
Avatar billede olebole Juniormester
16. februar 2012 - 17:57 #5
Hvad angår strpos, så prøv:

<?php
$navn = 'dit_domain.dk';

// Forket brug
if (!strpos($navn, 'dit_domain.dk')) {
    echo 'Dit domæne står ikke i feltet';
} else {
    echo 'Dit domæne står i feltet';
}

echo '<hr>';

// Korrekt brug
if (strpos($navn, 'dit_domain.dk')===false) {
    echo 'Dit domæne står ikke i feltet';
} else {
    echo 'Dit domæne står i feltet';
}
?>
Avatar billede olsensweb.dk Ekspert
16. februar 2012 - 18:21 #6
@MagnusELH[b] prøv at skimme denne www.eksperten.dk/spm/956890 tror det er sammen code
kig på svar 2 med rettelse i 13
svar 3 vil du nok genkende :)

[b]@olebole
LOL, jeg skrev bevist bare én af dem, guiden er tilsyneladende skrevet i 2004 (men opdateret 15.7.2008), brug af eregi, var vist ikke deprecated dengang
ekstremt mangelfuld header det var mildt sagt :)
Avatar billede olebole Juniormester
16. februar 2012 - 18:32 #7
@ronols: Det var ingenlunde ment som en kritik af din kritik  *o)

Du har ret vedr. eregi, men man bør holde den slags sites vedlige - nærmest dagligt. Kan/vil man ikke det, må man nedlægge dem. Ellers gør de som sagt mere skade end gavn  =)

Vedr. strpos, så skyldes 'fejlen', at i sprog som JavaScript og PHP tolkes 0, -1 og false ens, f.eks. i en IF-sætning.

Både indexOf i JS og strpos i PHP returnerer 0, hvis nålen ligger i begyndelsen af høstakken. Det opfattes på lige fod med false, og så er der jo sat vand over til ballade  *o)
Avatar billede MagnusELH Nybegynder
16. februar 2012 - 19:36 #8
@ronols tak for det hele, har fået scriptet til at virke nu. smid bare et svar
Avatar billede olsensweb.dk Ekspert
16. februar 2012 - 20:03 #9
behold bare dine point selv.
hvilke løsningn brugte du ?? din egen eller oleboles functioner.
Avatar billede MagnusELH Nybegynder
16. februar 2012 - 21:24 #10
Som mit spørgsmål lød, så hviste jeg ikke hvor jeg skulle sætte min email ind, i PHP scriptet.
Så da du sendte linket, kunne jeg se hvor emailen skulle sættes ind. Så jeg har kun brugt det link du sendte. Men tak for pointne !
Avatar billede olebole Juniormester
16. februar 2012 - 21:28 #11
Så er spørgsmålet vel bare: "Hvilket af de to links?"  =)
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