Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]podwójne wysyłanie maila.
GoOx
post
Post #1





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


Witam,
Jak w temacie mam problem z funkcją mail()
Wszystko ładnie ale wiadomość email jest wysyłana 2 razy. Czy wysyłaniu wiadomości możesz przeszkadzać zastosowanie sesji i przekierowanie javascript?

kod wysyłający email jest standardowy:
  1. mail($for, $topic, $message, $headers);
Go to the top of the page
+Quote Post
-Gość-
post
Post #2





Goście







Może wywołujesz funkcję mail 2 razy. Przed i po przekierowaniu. Najlepiej będzi jak pokażesz iwęcej kodu.
Go to the top of the page
+Quote Post
GoOx
post
Post #3





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


  1. <?
  2. echo "<form action='$http_g&send' method='post'>";
  3.  
  4. echo "<tr><td><b>$lang_od:</b></td> <td>";
  5. if($logged == true) {
  6. echo $E_mail;
  7. }
  8. else {
  9. echo "$lang_unlogged";
  10. }
  11. echo "</td></tr>";
  12. echo "<tr><td><b>$lang_do:</b></td><td>GoOx (<b>GoOx@goox.pl</b>)</td></tr>
  13. <tr><td><b>$lang_topic:</b></td><td><input type='text' name='email_topic' class='styl'></td></tr>
  14. <tr><td style='vertical-align:text-top;'><b>$lang_email_message:</b></td><td><textarea name='email_message' cols='60' rows='9' class='styl_txt'></textarea></td></tr>";
  15. if($logged == true) {
  16. echo "<tr><td></td><td><p align='right'><input type='submit' name='send_email' class='in' value='$lang_send'>";
  17. }
  18. else {
  19. echo "<tr><td></td><td><p align='right'>$lang_not_send_email</p></td></tr>";
  20. }
  21. echo "</table>";
  22.  
  23. $email_ses = $_SESSION['send_email_ses'];
  24. if(isset($email_ses)) {
  25. if($email_ses == 1) {
  26. echo "$lang_email_send";
  27. }
  28. else {
  29. if($email_ses == 2) {
  30. echo "$lang_not_check_all";
  31. }
  32. }
  33. }
  34.  
  35. $send_email = $_POST['send_email'];
  36. if(isset($send_email) && $logged == true) {
  37. $email_topic = $_POST['email_topic'];
  38. $email_message = $_POST['email_message'];
  39.  
  40. $i = 0;
  41. if(empty($email_message)) {
  42. $i++;
  43. }
  44. if(empty($email_topic)) {
  45. $i++;
  46. }
  47.  
  48. $get = explode('&send', $get);
  49. $get = $get[0];
  50. $url_send_email = $http."?".$get;
  51.  
  52. if($i == 0) {
  53. $email_topic = htmlspecialchars($email_topic);
  54. $email_message = htmlspecialchars($email_message);
  55. $email_message = nl2br($email_message);
  56.  
  57.  
  58. $for = "goox@goox.pl";
  59. $topic = $email_topic;
  60. $message = $email_message;
  61.  
  62. $headers = "MIME-Version: 1.0"."\r\n";
  63. $headers .= "Content-type: text/html; charset=windows-1250"."\r\n";
  64.  
  65. $headers .= "To: GoOx@goox.pl"."\r\n";
  66. $headers .= "From: $E_mail "."\r\n";
  67.  
  68.  
  69. mail($for, $topic, $message, $headers);
  70. $_SESSION['send_email_ses'] = 1;
  71. ?><script>location.href="<? echo $url_send_email; ?>";</script> <?
  72. }
  73. else {
  74. $_SESSION['send_email_ses'] = 2;
  75. ?><script>location.href="<? echo $url_send_email; ?>";</script> <?
  76. }
  77.  
  78. }
  79. ?>


no raczej 2 razy to nie jest wywoływana.
Go to the top of the page
+Quote Post
-Gość-
post
Post #4





Goście







Nie widać tu gdzie przekierowujesz usera bo nie widać wartości wszystkich zmiennych. Jeśli nie przekierowujesz do tego samego skryptu to może go includujesz 2 razy.
Go to the top of the page
+Quote Post
GoOx
post
Post #5





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


Właśnie w tym problem.

To jest jedyny plik z tym kodem a include on posiada tylko innych plików reszta zmiennych to tekty językowe $http to tam przetrzymuję rożne dane związane z linkiem w tym przypadku nazwastrony.pl+plik+zmienne get

W dodatku jest zabezpieczenie że gdy naciśnięty + &send czyli jeśli potem przekierowanie następuje nie na &send to nie ma prawa kod uruchamiać się 2 razy.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #6





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----



$get = explode('&send', $get);
$get = $get[0];
$url_send_email = $http."?".$get;


Co to ma być ?
Zero filtracji tak jak w twoim byłym serwisie smile.gif


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

LS Easter egg <
Go to the top of the page
+Quote Post
GoOx
post
Post #7





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


A jak inaczej pozbyc sie z lini jednej zmiennej? Zastosowalem explode...

Poza tym i tak nadal nie wiem dlaczgo email jest wysylany 2 razy.

Ten post edytował GoOx 25.06.2012, 20:35:32
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 Aktualny czas: 19.08.2025 - 20:31