Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysyłanie formularza na mail + przekazanie zmiennych
Robert93
post 3.03.2013, 18:08:41
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.06.2009

Ostrzeżenie: (0%)
-----


Witam

Mam formularz z polami text, select i radio. Obecnie po wciśnięciu przycisku wyślij na stronie, formularz jest wysyłany na maila przez "POST". Chciałbym aby po wysłaniu na maila na kolejnej stronie wyświetlała się zawartość kilku pól formularza.
Chciałbym, aby wartościami przenoszonymi na następną stronę była zawartość pola "ilość" oraz "forma płatności".
Nie bardzo wiem jak to zrobić, dlatego proszę o pomoc : )
Poniżej obecny kod:

  1.  
  2. <?php
  3. if (count($_POST))
  4. {
  5.  
  6. $email = 'maill';
  7. $subject = 'temat';
  8. $message = 'Wiadomoœść po wysłaniu formularza';
  9. $error = 'Wystąpił błąd podczas wysyłania formularza';
  10. $charset = 'iso-8859-2';
  11.  
  12. $head =
  13. "MIME-Version: 1.0\r\n" .
  14. "Content-Type: text/plain; charset=$charset\r\n" .
  15. "Content-Transfer-Encoding: 8bit";
  16. $body = '';
  17. foreach ($_POST as $name => $value)
  18. {
  19. if (is_array($value))
  20. {
  21. for ($i = 0; $i < count($value); $i++)
  22. {
  23. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  24. }
  25. }
  26. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  27. }
  28. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  29. }
  30. else
  31. {
  32. ?>
  33. <form action="?" method="post">
  34. <ul><ul>
  35. Ilość: <BR>
  36. <select name="ilość">
  37. <option selected="selected">1 sztuka </option>
  38. <option>2 sztuki </option>
  39. <option>3 sztuki + 1 gratis </option>
  40. <option>4 sztuki + 1 gratis </option>
  41. <option>5 sztuk + 1 gratis</option>
  42. <option>6 sztuk + 2 gratis</option>
  43. <option>7 sztuk + 2 gratis</option>
  44. <option>8 sztuk + 2 gratis</option>
  45. <option>9 sztuk + 3 gratis</option>
  46. <option>10 sztuk + 3 gratis</option>
  47. </select><BR>
  48. <BR>
  49. <p>Płeć:</p>
  50. <input type="radio" name="Płeć" value="Kobieta" />Kobieta
  51. <input type="radio" name="Płeć" value="Mężczyzna" />Mężczyzna
  52. <BR>
  53. <BR>
  54. Nazwisko : <BR>
  55. <input name="Imię i Nazwisko"><BR>
  56. <BR>
  57. <BR>
  58. Adres : <BR>
  59. <textarea name="Adres" cols="30" rows="5"></textarea><BR>
  60. <BR>
  61. Telefon : <BR>
  62. <input name="Telefon"><BR>
  63. <BR>
  64. e-mail : <BR>
  65. <input name="e-mail">
  66. </ul></ul>
  67. <BR>
  68. <BR>
  69. <BR>
  70. <BR>
  71. Forma płatności : <BR>
  72. <BR>
  73. <input type="radio" name="płatność" value="list PRIORYTET" /> Płatność przelewem przesyłka listowa priorytetowa 6zł<BR><BR><input type="radio" name="płatność" value="za zaliczeniem" /> Płatność przy odbiorze przesyłka ekonomiczna 12zł
  74. <BR>
  75. <BR>
  76. <input type="checkbox" name="regulamin" value="tak" />Zapoznałem się z treścią regulaminu sklepu i akceptuje jego warunki<BR>
  77. <BR>
  78. <BR>
  79. <font color="red"><input type="submit" value="Zamów" /></font>
  80.  
  81. </form>
  82. <?php
  83. }
  84. ?>
  85. </form>
Go to the top of the page
+Quote Post
weedget
post 8.03.2013, 23:47:18
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 2
Dołączył: 7.06.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Po pierwsze to zły dział, powinno być w PHP.

Po drugie, to po
Kod
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;

wystarczy że wyświetlisz na ekranie użytkownikowi to co chcesz mu pokazać.

Inna sprawa że sama konstrukcja
Kod
echo mail()
jest średnio "elegancka"...
Go to the top of the page
+Quote Post
requ12
post 9.03.2013, 11:59:46
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.03.2013

Ostrzeżenie: (0%)
-----


Polskie znaki w nazwach pół, tragedia tongue.gif

Ale jeśli już to po
Kod
echo mail(...)

dajesz normalnie
Kod
echo "Ilość sztuk:" . $_POST['ilość'] . " Sposób płatności:" . $_POST['płatność'];


Ten post edytował requ12 9.03.2013, 12:00:35
Go to the top of the page
+Quote Post
Robert93
post 10.03.2013, 11:47:42
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.06.2009

Ostrzeżenie: (0%)
-----


Dzięki za pomoc smile.gif
faktycznie, zapomniałem o polskich znakach, ale to będzie poprawione na gotowej stronie tongue.gif

Mam jeszcze jedno pytanie. W wiadomości mailowej przychodzą do mnie wartości pól np. przy ilości jest to "1 sztuka", lub gdy podam wartość value="jeden" to przychodzi "jeden". Czy można zrobić tak, aby zawsze przychodziła wartość "1 sztuka", a nie wartość value?
Mam nadzieję, że w miarę jasno to opisałem smile.gif
Go to the top of the page
+Quote Post
nospor
post 10.03.2013, 11:55:37
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




if ($value == 'jeden') echo '1 sztuka';

teraz pomysl jak to wstawić do siebie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 20:37