nesko13
(Nesq13)
6 Lipiec 2010 18:37
#1
Cześć!
Chcę zrobić formularz kontaktowy w PHP, który by na mój mail wysyłał wiadomości.
W html wygląda to tak:
Treść wiadomości*
Pola oznaczone gwiazdką * są wymagane.
[/code]
Napisałby mi ktoś skrypt php, który by ten formularz “ożywił”?
Będę bardzo wdzięczny.
Ten skrypt napisałem chyba z 6 lat temu. Nie jest doskonały ani super-bezpieczny. Warto poprawić IFy.
Właściwie jest to gotowe rozwiązanie (trzeba tylko pola przesyłane POSTem dopasować) ale przydałyby mu się jeszcze pewne udoskonalenia Zatem do dzieła panie webmasterze
@$temat=$_POST['temat'];
@$wiadomosc=$_POST['wiadomosc'];
@$e_mail=$_POST['e_mail'];
@$podpis=$_POST['podpis'];
if(isset($_POST['wysylanie'])) {
if($temat and $podpis and $wiadomosc) {
if ($e_mail) {
$matryca = "/^([[:alnum:]]([[:alnum:]_\.:-])?)+@([[:alnum:]][[:alnum:]_\.:-]+[[:alnum:]]\.)?((([[:alnum:]]([[:alnum:]_\.:-]{1,59})?[[:alnum:]])|[[:alnum:]])\.)([a-z]{2,4}|[0-9]{1,3})$/i";
$e_mail = strtolower($e_mail);
if(preg_match($matryca, $e_mail)==FALSE) {
$error = 1;
print 'Niepoprawny adres e-mail';
}
}
if (@$error!=1) {
$temat = "[tomilipin] ".$temat;
$naglowki = "From: www_tomilipin \n";
$naglowki .= "Reply-To: ".$podpis." <".$e_mail.">\n";
$naglowki .= "Content-type: text/plain; charset=utf-8\n";
$naglowki .= "X-Mailer: tomilipin.mail\n";
@mail("nesko13@jakis.serwer.com", $temat, $wiadomosc, $naglowki);
print 'Wiadomość wysłana';
unset($temat, $wiadomosc, $e_mail, $podpis);
}
}
}
obsługiwał taki formularz (wpisywany przez print w PHP):
| Temat: | |
| Wiadomość: | ‘.$wiadomosc.’ |
| Twój e-mail: | |
| Podpis: | |
| |
[/code]
Dostosuj do własnych potrzeb. Aha, i pamiętaj, że dla PHP ważny jest name a nie id , bo już widzę braki w Twoim formularzu.
skandyn
(skandyn)
6 Lipiec 2010 19:35
#3
Trzeba zamienić tylko email na Twój.
<?php
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST[‘submit’])) {
// wywietlamy formularz
echo "
Twoje imię i nazwisko:
Twój E-mail:
Temat listu:
Treść listu:
";
}
// sprawdzamy, czy zmienne przesłane z formularza nie sš puste
elseif (!empty($_POST[‘imie’])&&!empty($_POST[‘email’])&&!empty($_POST[‘temat’])&&!empty($_POST[‘tresc’]) ) {
// jeżeli powyższy warunek jest spełniony tworzona jest wiadomoć
// zmienna $message zawiera treć wiadomoci
$message = "Temat wiadomości: \n$_POST[temat]\nTreść wiadomości: \n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST";
// zmienna $header zawiera przede wszystkim adres zwrotny
$header = "From: $_POST[imie] <$_POST >";
// funkcja mail() za pomocš której wiadomoć zostanie wysłana
@mail(“mzarze@gmail.com”,“Wiadomość ze strony WWW”,"$message","$header")
or die(‘Nie udało się wysłać wiadomości’);
// wywietlenie komunikatu w przypadku powodzenia
echo "
Wiadomość została wysłana poprawnie!
";
}
// lub w przypadku nie wypełnienia formularza do końca
else echo " Wypełnij wszystkie pola formularza! ";
?>
Pozdrawiam.