Problem z formularzem kontaktowym


(Wiedzmin71) #1

Witam,

Nowy na forum więc prosze o wyrozumiałość. Przeszukiwałem posty i na podstawie tego co bylo probowalem działać ale nie wyszlo mi to zbytnio. Chodzi mi o to aby otrzymując maila na skrzynke w polu nadawcy byl widoczny adres podany w formularzu, wiem ze byl to walkowany temat ale nie udało mi sie rozwiazać problemu.

Po dodaniu pewnego ciagu wiadomości wogole nie dochodzą wiec podam kod prawidlowy i ten z ktorym mam problem

<?php


    $wiadomosc =

    "Imie i nazwisko : ".$_POST['imie']."


    Telefon : ".$_POST['tel']."


    Adres e- mail : ".$_POST['mail']."


    Tresc wiadomosci : ".$_POST['tresc']." ";


    $temat = "A2D - wiadomosc przeslana z formularza kontaktowego";


    $mailheaders.= "MIME-Version: 1.0\n";

    $mailheaders.= "Content-Type: text/plain;\n";

    $mailheaders.= "\tcharset=\"UTF-8\"\n";

    $mailheaders.= "Content-Transfer-Encoding: 8bit\n\n";


	mail ("biuro@xxx.pl", $temat, $wiadomosc, $mailheaders,);

	echo "Dziekujemy za wyslanie do nas wiadomosci,"; 


    ?>

Ten działa i wiadomości dochodzą

<?php


    $wiadomosc =

    "Imie i nazwisko : ".$_POST['imie']."


    Telefon : ".$_POST['tel']."


    Adres e- mail : ".$_POST['mail']."


    Tresc wiadomosci : ".$_POST['tresc']." ";


    $temat = "A2D - wiadomosc przeslana z formularza kontaktowego";


    $mailheaders.= "From: ".$mail"\n";

    $mailheaders.= "MIME-Version: 1.0\n";

    $mailheaders.= "Content-Type: text/plain;\n";

    $mailheaders.= "\tcharset=\"UTF-8\"\n";

    $mailheaders.= "Content-Transfer-Encoding: 8bit\n\n";


	mail ("biuro@a2d.pl", $temat, $wiadomosc, $mailheaders,);

	echo "Dziekujemy za wyslanie do nas wiadomosci,"; 


    ?>

A w tym powyzej dodaje from i juz nic na skrzynke nie dochodzi, prosze o wyjasnienie gdzie popelniam blad, chodzi o to by w nazwie nadawcy byl podany mail z pola mail a nie serwer. Poniżej załączam jeszcze zrodlo z html

Imię i nazwisko : Numer kontaktowy: Twój e-mail:

Wiadomość:
WyślijWyczyść

[/code]


(mario@) #2

Tutaj masz błąd (brakuje kropki po $mail)

$mailheaders.= "From: ".$mail"\n";

popraw to na

$mailheaders.= "From: ".$mail."\n";

bądź na - wygodniejsza forma zapisu

$mailheaders.= "From: {$mail}\n";

Druga istotna sprawa to, że nigdzie nie deklarujesz zmiennej $mail

$mail = $_POST['mail']

Po trzecie przed wysłanie/zapisaniem tych danych przydało by się je przefiltrować.


(Wiedzmin71) #3

A jeśli chciałbym, aby w polu nadawcy wyswietlalo sie imie z pola i potem w ostrych nawiasach mail czyli np "Pan X " ?

zdefiniuje sobie

$name = $_POST['imie'];

i jak to potem umieścic ?

$mailheaders.= "From: {$name} <{$mail}>\n";

wiem ze napewno brakuje mi kropek srednikow myslnikow cudzyslowu czy apostrofu ale dopiero sie ucze metodą lopatologiczną :slight_smile:

To wczesniej zadzialalo, podziekowal:)


(mario@) #4

Tak jak piszesz

$mailheaders.= "From: {$name} <{$mail}>\n";

(Wiedzmin71) #5

Więc po poprawkach wygląda to tak:

$name = $_POST['imie'];

	$mail = $_POST['mail'];


	$mailheaders.= "From: {$name} <{$mail}>\n";

ale mail nie dochodzi, jak pomine name to jest ok, napewno nie pominalem nic ?:slight_smile:


(mario@) #6

Powinno działać

Zamiast \n pisz \r\n.

To

$mailheaders.= "Content-Type: text/plain;\n";

$mailheaders.= "\tcharset=\"UTF-8\"\n";

zastąp tym

$mailheaders.="Content-Type: text/plain; charset=utf-8\r\n";

Bo po co to rozdrabniać na dwie linijki.