Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z formularzem kontaktowym
Forum PHP.pl > Forum > Przedszkole
Vitoss
Mam taki kod w formularzu kontaktowym:

  1. <?
  2.  
  3. // sprawdzamy, czy zmienna $submit jest pusta
  4. if (empty($_POST['submit'])) {
  5. // wyświetlamy formularz
  6. echo "<form action="kontakt.html" method="post"> <table width="100%" cellpadding="6" cellspacing="0" border="0">
  7. <tr>
  8. <td width="15%" align="right">
  9. <b>Imię:</b>
  10. </td>
  11. <td width="85%" align="left">
  12. <input type="text" name="imie" size="50" maxlength="120" class="kontakt">
  13. </td>
  14. </tr>
  15. <tr>
  16. <td width="15%" align="right">
  17. <b>E-mail:</b>
  18. </td>
  19. <td width="85%" align="left">
  20. <input type="text" name="email" size="50" maxlength="120" class="kontakt">
  21. </td>
  22. </tr>
  23. <tr>
  24. <td width="15%" align="right">
  25. <b>Temat:</b>
  26. </td>
  27. <td width="85%" align="left">
  28. <input type="text" name="temat" size="50" maxlength="120" class="kontakt">
  29. </td>
  30. </tr>
  31. <tr valign="top">
  32. <td width="15%" align="right">
  33. <b>Treść:</b>
  34. </td>
  35. <td width="85%" align="left">
  36. <textarea rows="6" style="width: 420px" name="tresc" class="kontakt"></textarea>
  37. </td>
  38. </tr>
  39. <tr valign="top">
  40. <td width="15%"></td>
  41. <td width="85%" align="left">
  42. <input type="submit" value="Wyślij" class="kontakt"> <input type="reset" value="Wyczyść" class="kontakt">
  43. </td>
  44. </tr>
  45. </table>
  46. </form>
  47. ";
  48. }
  49. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  50. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['temat']) && !empty($_POST['email'])) {
  51. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  52. // zmienna $message zawiera treść wiadomości
  53. $temat = $_POST[temat];
  54. $message = "$_POST[tresc]nn----------------------nImię: $_POST[imie] E-mail: $_POST[email]";
  55. // zmienna $header zawiera przede wszystkim adres zwrotny
  56. $header = "From: $_POST[imie] <$_POST[email]>";
  57. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  58. mail("moj_mail@com.pll","$temat","$message","$header")
  59. or die('Niestety, nie udało się wysłać wiadomości.');
  60. // wyświetlenie komunikatu w przypadku powodzenia 
  61. echo "<div align="center"><strong>Wiadomość została wysłana. Dziękujemy za kontakt. Postaramy się odpowiedzieć 
    możliwie jak najprędzej.</strong></div>"
    ;
  62. }
  63. // lub w przypadku nie wypełnienia formularza do końca
  64. else echo "<span style="text-align: center;">Prosimy wypełnić wszystkie pola formularza.</span>";
  65.  
  66. ?>


Includuję to do pliku, w którym są inne funkcje php - aby całą stronę "obrać w całość", czyli dodać menu i inne dostępne elementy. Korzystam z mod_rewrite, a adresy mają postać np. kontakt.html - jednak jak wykonuję ten skrypt, to naciśnięciu przycisku "Wyślij" strona zwyczajnie przeładowuje się, nie wysyła żadnego maila, nic nie działa - tak jakby był to pusty formularz... Próbowałem też zmienić rozszerzenia na .php i spróbować spod rozszerzeń .php, ale także nic - nadal zwyczajnie przeładowuje stronę, więc to chyba raczej nie są problemy mod_rewrite? Co jest nie tak w tym kodzie?
erix
Bo submita nie wysyla.
Sprawdzaj inne pole w pierwszym warunku.

Proponuje
  1. <?php
  2. if (empty($_POST['tresc']) or empty($_POST['imie']) or empty($_POST['temat']) or empty($_POST['email'])) {/*......*/}else{/*.........*/}
  3. ?>
Vitoss
Dzięki za odpowiedź smile.gif

Wystarczyło do przycisku wysyłającego dodać name="submit" guitar.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.