Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja mail()
Forum PHP.pl > Forum > PHP
diamondking
Witam znalazłem gotowy skrypt z funkcją mail który wygląda następująco:

  1. $headers = "From: " . strip_tags($_POST['req-email']) . "\r\n";
  2. $headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
  3. $headers .= "CC: susan@example.com\r\n";
  4. $headers .= "MIME-Version: 1.0\r\n";
  5. $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
  6.  
  7. if(@mail($to,$subject,$htmlContent,$headers)){
  8. echo '<div class="alert alert-success">
  9. Wiadomość została wysłana - odpowiemy tak szybko jak się da :)
  10. </div>';
  11. }else{
  12. echo '<div class="alert alert-danger">
  13. Wystąpił błąd :( - skontaktuj się z nami w inny sposób.
  14. </div>';
  15. }
  16. }


Pola $to, $subject, $htmlContent - działają.

Problem stanowi "From" i "Reply-To" ponieważ jeżeli jest w takim stanie to wszystko działa,
natomiast
  1. strip_tags($_POST['req-email'])
pochodzi z tego gotowe skryptu.
Kiedy zmienię wartość pod swój skrypt czyli
  1. strip_tags($_POST['email'])
- skrypt już nie wysyła wiadomości.

Nie mam już pomysłu co jest nie tak ;(

viking
Pokaż formularz albo var_dump($_POST); usuń @. Wysyłasz w iso-8859-1?
diamondking
  1. <!-- Modal -->
  2. <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  3. <div class="modal-dialog modal-lg">
  4. <div class="modal-content">
  5. <div class="modal-header">
  6.  
  7. <h4 class="modal-title" id="myModalLabel">Napisz do nas</h4>
  8. </div>
  9. <div class="modal-body">
  10.  
  11. <?php
  12. if (isset($_POST['name'])) {
  13.  
  14. $nazwa = mysql_real_escape_string(htmlspecialchars($_POST['name']));
  15. $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
  16. $wiadomosc = mysql_real_escape_string(htmlspecialchars($_POST['wiadomosc']));
  17.  
  18. $errors = ''; // Zmienna przechowująca listę błędów które wystąpiły
  19.  
  20. if (!$nazwa || !$email || !$wiadomosc ) $errors .= '<div class="alert alert-danger">
  21. Musisz wypełnić wszystkie pola!
  22. </div>';
  23. if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email)) $errors .= '<div class="alert alert-danger">
  24. Podano niepoprawny ades e-mail!
  25. </div>';
  26.  
  27. if ($errors != '') {
  28. echo $errors;
  29. }
  30.  
  31. /**
  32.   * Jeśli nie ma żadnych błędów - kontynuuj rejestrację
  33.   */
  34. else {
  35.  
  36. //wysylanie maila
  37. $to = 'm.szymanski92@gmail.com';
  38. $subject = "Got To Music - Wiadomość";
  39.  
  40. $htmlContent = 'Tutaj jest treść kodu HTML';
  41.  
  42. $headers = "From: " . strip_tags($_POST['req-email']) . "\r\n";
  43. $headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
  44. $headers .= "CC: susan@example.com\r\n";
  45. $headers .= "MIME-Version: 1.0\r\n";
  46. $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
  47. // Send email
  48. if(@mail($to,$subject,$htmlContent,$headers)){
  49. echo '<div class="alert alert-success">
  50. Wiadomość została wysłana - odpowiemy tak szybko jak się da :)
  51. </div>';
  52. }else{
  53. echo '<div class="alert alert-danger">
  54. Wystąpił błąd :( - skontaktuj się z nami w inny sposób.
  55. </div>';
  56. }
  57. //koniec maila
  58. }
  59.  
  60. }
  61. ?>
  62.  
  63. <form method="post" action="" class="form-horizontal">
  64. <fieldset>
  65.  
  66.  
  67. <!-- Text input-->
  68. <div class="form-group">
  69. <label class="col-md-4 control-label" for="name">Imię i nazwisko</label>
  70. <div class="col-md-4">
  71. <input id="name" name="name" type="text" placeholder="" class="form-control input-md" >
  72.  
  73. </div>
  74. </div>
  75.  
  76. <!-- Text input-->
  77. <div class="form-group">
  78. <label class="col-md-4 control-label" for="email">Adres e-mail</label>
  79. <div class="col-md-4">
  80. <input id="email" name="email" type="text" placeholder="" class="form-control input-md" >
  81.  
  82. </div>
  83. </div>
  84.  
  85. <!-- Textarea -->
  86. <div class="form-group">
  87. <label class="col-md-4 control-label" for="wiadomosc">Wiadomość</label>
  88. <div class="col-md-4">
  89. <textarea class="form-control" id="wiadomosc" name="wiadomosc" rows="6"></textarea>
  90. </div>
  91. </div>
  92.  
  93. <!-- Button -->
  94. <div class="form-group">
  95. <label class="col-md-4 control-label" for="send"></label>
  96. <div class="col-md-4">
  97. <button type="send" class="btn btn-success">Wyślij</button>
  98. </div>
  99. </div>
  100.  
  101. </fieldset>
  102. </form>
  103.  
  104.  
  105. </div>
  106. <div class="modal-footer">
  107. <button type="send" class="btn btn-default" data-dismiss="modal">Zamknij</button>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112.  
  113. <script>
  114. $('#myModal').modal({
  115. backdrop: 'static',
  116. keyboard: false
  117. });
  118.  
  119. $(".modal").on("hidden.bs.modal", function () {
  120. window.location = "index.php";
  121. });
  122.  
  123. $('#myModal').modal('show');
  124. </script>


Dopóki nie zmienie
  1. strip_tags($_POST['req-email'])
na
  1. strip_tags($_POST['email'])
to maila wysyła poprawnie ;/
viking
Wywal linię z nagłówkiem CC
diamondking
Wyrzuciłem, jak zmienie na
  1. strip_tags($_POST['email'])
to nadal nie wysyła ;/
viking
U mnie działa. Jaka wersja PHP?
diamondking
5.6

TEMAT DO ZAMKNIĘCIA

Problem rozwiązałem tak:

  1. $charset = 'ISO-8859-1'; // Strona kodowa
  2. $reply= '<fafik297@wp.pl>'; // Reply-To
  3.  
  4. $headers =
  5. "MIME-Version: 1.0\r\n" .
  6. "Content-Type: text/html; charset=$charset\r\n" .
  7. "Reply-To: $reply\r\n" .
  8. "Content-Transfer-Encoding: 8bit";
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.