Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Nadawca w formularzu kontaktowym
Forum PHP.pl > Forum > Przedszkole
ar4
Witam,
mam formularz kontaktowy, ale nie wiem jak zrobić aby po wysłaniu z niego wiadomości jako nadawca znajdował się email osoby nadającej wiadomość. Teraz jak otrzymam wiadomość z formularza mam ją wysłaną z konta hostingowego, a więc nie mogę na niego odpowiedzieć. Chciałbym, aby po kliknięciu w odpowiedź jako adres email był od razu adresem osoby nadającej wiadomość.
Nie wiem czy udało mi się wytłumaczyć mój problem, ale mam na dzieję, że tak...
phpion
Zakładam, że korzystasz z funkcji mail. W dokumentacji masz przykład jak to zrobić. Szukaj "From" oraz "Reply-To".
ar4
  1. <?php
  2. $wyslana=not;
  3. if (count($_POST))
  4. {
  5. ////////// USTAWIENIA //////////
  6. $email = 'domena@domena.pl'; // Adres e-mail adresata
  7. $subject = 'tytul'; // Temat listu
  8. $message = 'Dziękujemy za wysłanie formularza'; // Komunikat
  9. $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
  10. $charset = 'utf-8'; // Strona kodowa
  11. //////////////////////////////
  12.  
  13. $head =
  14. "MIME-Version: 1.0\r\n" .
  15. "Content-Type: text/plain; charset=$charset\r\n" .
  16. "Content-Transfer-Encoding: 8bit";
  17. $body = '';
  18. foreach ($_POST as $name => $value)
  19. {
  20. if (is_array($value))
  21. {
  22. for ($i = 0; $i < count($value); $i++)
  23. {
  24. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  25. }
  26. }
  27. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  28. }
  29. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  30.  
  31. $wyslana=ok;
  32. if ($wyslana==ok){header("location:http://domena.pl");}
  33. }
  34. else
  35. {
  36. ?>
  37.  
  38. <form action="?" method="post">
  39.  
  40. <div class="box">
  41.  
  42. <label><span><input type="checkbox" name="zaznacz" value="0" class="ck" /></span> Tak, chcę Fakturę VAT oraz usługę w cenie 349 złotych brutto.</label>
  43. <label><span>Imię:</span> <input type="text" name="imie" class="wpis" /></label>
  44. <label><span>Nazwisko:</span> <input type="text" name="nazwisko" class="wpis" /></label>
  45. <label><span>Nazwa firmy:</span> <input type="text" name="firma" class="wpis" /></label>
  46. <label><span>Ulica i nr.:</span> <input type="text" name="ulica" class="wpis" /></label>
  47. <label><span>Kod i miasto:</span> <input type="text" name="miasto" class="wpis" /></label>
  48. <label><span>NIP:</span> <input type="text" name="nip" class="wpis" /></label>
  49. <label><span>E-mail:</span> <input type="text" name="emial" class="wpis" /></label>
  50. <label><span>Strona www:</span> <input type="text" name="strona_www" class="wpis" /></label>
  51. <label><span>Słowa kluczowe:</span> <input type="text" name="slowa_kluczowe" class="wpis" /></label>
  52. <label><span>Dodatkowe informacje:</span><textarea name="tresc" class="wiadomosc" cols="20" rows="10"></textarea></label>
  53. <input type="submit" class="button" value="Wyślij" />
  54.  
  55. </div>
  56. </form>
  57. <?php
  58. }
  59. ?>



To co muszę i gdzie muszę dodać? Znalazłem to co pisałeś wcześniej, ale nie wiem jak pobrać adres email z tego inputa i wrzucić do do wiadomości.
Czy może mi ktoś z tym pomóc?
phpion
Do zmiennej $head dorzuć From + Reply-To (wzór w dokumentacji) z adresem e-mail, który będziesz miał w $_POST['emial'] (literówka zamierzona - tak masz w formularzu).
ar4
Witam,
dodaję kod do head, ale wywala mi białą stronę..
Czy to powinno wyglądać tak?

  1. $head =
  2. "MIME-Version: 1.0\r\n" .
  3. "From: email@domena.pl" . "\r\n" .
  4. "Reply-To: $_POST['emial']" . "\r\n" .
  5. "Content-Type: text/plain; charset=$charset\r\n" .
  6. "Content-Transfer-Encoding: 8bit";


A dodatkowo można jakoś dodać numerację +1 do każdego wysłanego emaila. Chodzi o tytuł, aby nosił nazwę: "Nazwa tytułu wiadomości 1" - gdzie 1 zmienia się na +1 przy każdej wysłanej wiadomości?
ar4
Poradziłem sobie... Dodałem taką linijkę:

  1. 'From:'.$_POST['emial']."\r\n".


Czyli wygląda to tak:
  1. "MIME-Version: 1.0\r\n" .
  2. 'From:'.$_POST['emial']."\r\n".
  3. "Content-Type: text/plain; charset=$charset\r\n" .
  4. "Content-Transfer-Encoding: 8bit";


Pozostaje jeszcze tylko kwestia numeracji przy tytule wiadomości.
markonix
Nie jest zalecane aby w nagłówek FROM dodawać e-mail nadawcy bo w ten sposób powodujesz, że niektóre skrzynki pocztowe będą ostrzegać, że mogło dojść do podszywania się (bo w pewnym sensie to jest podszycie się od strony technicznej).
Użyj tylko reply-to, skutek ten sam bez zbędnych alertów.

Co do numeracji można do tego podejść na milion sposobów.
Choćby zapisywać gdzieś (plik, baza) numer ostatniej wiadomości i przy wysyłaniu zwiększać o jeden i dodawać do tytułu - ot cała filozofia.
Szczerze nie wiem czemu miałoby to służyć.
ar4
Numeracja ma służyć temu, aby wiedział który email to który. Formularz jaki posiadam służy do składania zamówień, a więc numer miałby służyć łatwej identyfikacji zlecenia. Wtedy mógłbym otrzymywać wiadomość z tytułem np. Zlecenie nr 10
Czy możesz pomóc stworzyć coś takiego bez wykorzystywania bazy danych?
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.