Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz na e-maila
Forum PHP.pl > Forum > Gotowe rozwiązania
Amistat
Mam takie pytanko.
Musze zebrac pewne informacie od pracowników, chciałem zrobić formularz, umieścić go na stronie i zbierac informacie w postacji maili. Mam taki skrypt php:

Kod
<?
if(!empty($_POST['nazwisko'])
|| !empty($_POST['email'])
|| !empty($_POST['temat'])
|| !empty($_POST['wiadomosc'])
|| !empty($_POST['ala']))
{

// tworzymy krotkie nazwy zmiennych odbieranych z Flash
$_POST['nazwisko'] = $nazwisko;
$_POST['email'] = $email;
$_POST['temat'] = $temat;
$_POST['wiadomosc'] = $wiadomosc;
$_POST['ala'] = $ala;

// w zmiennej $to zapisujemy adres gdzie formularz mialby byc wysylny
$to = 'amistat@wp.pl';

//przetwarzamy dane formularza i wysylamy na wczesniej definiowany adres mail
$temat = stripslashes($temat);
$wiadomosc = stripslashes($wiadomosc);
$body = $wiadomosc;
$body .= "<---------------------->";
$body .= "Mail wyslany przez : ".$nazwisko." [".$email."] [".$ala."]";

//kodowanie wiadomosci na polskie znaki
$bodypl = iconv("UTF-8","ISO-8859-2",$body);

if(@mail($to, $temat, $bodypl))
{
// zaleznie od tego czy wyslanie maila powiodlo sie wysylamy odpowiednia odpowiedz do Flash
echo "odpowiedz=WYSLANIE FORMULARZA POWIODLO SIE...&";
} else {
echo "odpowiedz=WYSTAPIL BLAD PODCZAS WYSYLANIA MAIL!!!&";
}
}
?>


Nie będę ukrywał ze php to dla mnie czarna magia ale posiedziałem troszkę nad tym skryptem i metodą prób i błędów doszedłem jak on działa.

Ponieważ ja chce zrobić z tego ankietę do wypełnienia zależało mi na tym żeby dodać jakieś pola do tego formularz i to misie udało.

Ponieważ moja ankietka będzie rozbudowana mogą mi się pomylić słowa które przychodzą na maila z pól tekstowych z ankiety.

Wiec mam pytanie:
Jak zrobić w php pustą linie, taki odstęp jak po enterze w Wordzie
Jak wpisać tekst – chodzi mi oto bym w wersji którą dostaje na maila do słów z pól tekstowych dostosować pytania z ankiety

Pozdrawiam i dziękuję z pomoc
borec
  1. <?
  2. if ($_POST) {
  3. // w zmiennej $to zapisujemy adres gdzie formularz mialby byc wysylny
  4. $to = 'amistat@wp.pl';
  5.  
  6. //przetwarzamy dane formularza i wysylamy na wczesniej definiowany adres mail
  7. $temat = 'Ankieta';
  8.  
  9. $body = '';
  10.  
  11. foreach ($_POST as $key => $value) {
  12. $body .= $key . ': ' . $value . &#092;"n\";
  13. }
  14.  
  15. //kodowanie wiadomosci na polskie znaki
  16. $bodypl = iconv(&#092;"UTF-8\",\"ISO-8859-2\",$body);
  17.  
  18. if(@mail($to, $temat, $bodypl))
  19. {
  20. // zaleznie od tego czy wyslanie maila powiodlo sie wysylamy odpowiednia odpowiedz
  21. do Flash
  22. echo &#092;"odpowiedz=WYSLANIE FORMULARZA POWIODLO SIE...&\";
  23. } else {
  24. echo &#092;"odpowiedz=WYSTAPIL BLAD PODCZAS WYSYLANIA MAIL!!!&\";
  25. }
  26. }
  27. ?>

teraz mozesz dowolnie zmieniac/dodawac/usuwac pola w formularzu. wszystkie beda wyslane maile mw postaci:

nazwa_pola1: wartosc1
nazwa_pola2: wartosc2
nazwa_pola3: wartosc3
Amistat
Bardzo dziękuje.
Bardzo mi pomogłeś.
-SaraniS-
Witam
Pozwole sobie dopisac sie tutaj.
Otoz u mnie problem jest z uzyskaniem (w mailu; na stronach sa winksmiley.jpg ) polskich czcionek. Kombinowalem ze zmiana kodowania strony na utf-8, kodowania maila na iso-8859-2 (dodatkowy naglowek w funkcji mail()), oraz iconv('utf-8', 'iso-8859-2', $tresc) - bez rezultatu. Krzaczki sa, wprawdzie rozne, ale jednak nie sa to polskie ogonki. Co jeszcze moge zrobic?
Dodam, ze:
- Nie jestem adminem serwera wiec nie moge zmieniac globalnych ustawien.
- Obecnie wszystkie zmienne modulu iconv sa ustawione na iso-8859-1.
- Sam serwer pracuje w iso-8859-2, a mailer w utf-8.

Edit:
Odkrylem, ze funkcja iconv zwraca mi false. Co teraz? sad.gif

Edit2:
Uzylem funkcji imap_mail() zamiast mail() i jest ok. Nie musialem uzywac ani iconv, ani kombinowac z kodowaniem cool.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.