Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z tekstem maila
Forum PHP.pl > Forum > PHP
dekrzycho
Witam,
Z formularza przesyłam dane do skryptu ktory wysyła maila a treścią maila są właśnie te dane po spełnieniu pewnych założen. Mianowicie jeśli klient zaznaczy checkbox to dane powinny sie wyświetlić. Wartości checkboxów są w tablicy chex[]...
Skrypt wygląda następująco:
  1. <?php
  2. //jakies dane z formularza
  3. // produkty zamawiane
  4. $chex[]=$_POST['chex[]'];
  5. $Lp=0;
  6. $vat="22%";
  7.  
  8. // MSP422
  9. if ($chex[0]=="msp")
  10. {
  11. $msp422_p1i=$_POST['p1i'];
  12. $msp422_p1c=$_POST['p1c'];
  13. $msp422_p1l=$_POST['p1l'];
  14. $msp422_nazwa="MSP422 - Ultradźwiękowy przetwornik poziomu";
  15. $msp422_c_netto=$msp422_p1i*$msp422_p1c;
  16. $msp422_c_b=$msp422_c_netto*1.22;
  17. $msp422_c_brutto=number_format($msp422_c_b,2,',','');
  18. $Lp=$Lp+1;
  19. $tresc_1='<tr class="txt2">
  20. <td class="txt2" width="30" align="center" valign="middle">'.$Lp.'</td>
  21. <td class="txt2" align="center" valign="middle">'.$msp422_nazwa.'</td>
  22. <td class="txt2" width="100" align="center" valign="middle">'.$msp422_p1c.'</td>
  23. <td class="txt2" width="40" align="center" valign="middle">'.$msp422_p1i.'</td>
  24. <td class="txt2" width="100" align="center" valign="middle">'.$msp422_c_netto.'</td>
  25. <td class="txt2" width="50" align="center" valign="middle">'.$vat.'</td>
  26. <td class="txt2" width="100" align="center" valign="middle">'.$msp422_c_brutto.'</td>
  27. </tr>'; 
  28. }else
  29. {
  30. $tresc_1="";
  31. $Lp=$Lp;
  32. }
  33. // 003S2
  34. if ($chex[1]=="003s")
  35. {
  36. $s003s2_p1i=$_POST['p2i'];
  37. $s003s2_p1c=$_POST['p2c'];
  38. $s003s2_p1l=$_POST['p2l'];
  39. $s003s2_nazwa="003S2 - Ultradźwiękowy sygnalizator poziomu";
  40. $s003s2_c_netto =$s003s2_p1i*$s003s2_p1c;
  41. $s003s2_c_b=$s003s2_c_netto*1.22;
  42. $s003s2_c_brutto=number_format($s003s2_c_b,2,',','');
  43. $Lp=$Lp+1;
  44. $tresc_2='<tr class="txt2">
  45. <td class="txt2" width="30" align="center" valign="middle">'.$Lp.'</td>
  46. <td class="txt2" align="center" valign="middle">'.$s003s2_nazwa.'</td>
  47. <td class="txt2" width="100" align="center" valign="middle">'.$s003s2_p1c.'</td>
  48. <td class="txt2" width="40" align="center" valign="middle">'.$s003s2_p1i.'</td>
  49. <td class="txt2" width="100" align="center" valign="middle">'.$s003s2_c_netto.'</td>
  50. <td class="txt2" width="50" align="center" valign="middle">'.$vat.'</td>
  51. <td class="txt2" width="100" align="center" valign="middle">'.$s003s2_c_brutto.'</td>
  52. </tr>'; 
  53. }else
  54. {
  55. $tresc_2="";
  56. $Lp=$Lp;
  57. }
  58. //VT03
  59. if ($chex[2]=="vt03")
  60. {
  61. $vt03_p1i=$_POST['p3i'];
  62. $vt03_p1c=$_POST['p3c'];
  63. $vt03_p1l=$_POST['p3l'];
  64. $vt03_nazwa="MiniSquing - Wibracyjny sygnalizator poziomu, model VT03 (do bezpośredniego włączenia w obciążenie)";
  65. $vt03_c_netto =$vt03_p1i*$vt03_p1c;
  66. $vt03_c_b=$vt03_c_netto*1.22;
  67. $vt03_c_brutto=number_format($vt03_c_b,2,',','');
  68. $Lp=$Lp+1;
  69. $tresc_3='<tr class="txt2">
  70. <td class="txt2" width="30" align="center" valign="middle">'.$Lp.'</td>
  71. <td class="txt2" align="center" valign="middle">'.$vt03_nazwa.'</td>
  72. <td class="txt2" width="100" align="center" valign="middle">'.$vt03_p1c.'</td>
  73. <td class="txt2" width="40" align="center" valign="middle">'.$vt03_p1i.'</td>
  74. <td class="txt2" width="100" align="center" valign="middle">'.$vt03_c_netto.'</td>
  75. <td class="txt2" width="50" align="center" valign="middle">'.$vat.'</td>
  76. <td class="txt2" width="100" align="center" valign="middle">'.$vt03_c_brutto.'</td>
  77. </tr>'; 
  78. }else
  79. {
  80. $tresc_3="";
  81. $Lp=$Lp;
  82. }
  83.  
  84.  
  85. $vat="22%";
  86.  
  87. $url=$_POST['url'];
  88.  
  89. $tresc='
  90. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  91. - cos tam dalej -
  92. -i sedno-
  93. </tr>'.$tresc_1.''.$tresc_2.''.$tresc_3.'
  94. </table>
  95. </body>
  96. </html>';
  97. $naglowki = "From: bla@bla.com.pl\n"; 
  98. $naglowki = $naglowki . "Reply-To: bla@bla.com.pl\n"; 
  99. $naglowki = $naglowki . "X-Sender: bla@bla.com.pl\n"; 
  100. $naglowki = $naglowki . "Return-Path: bla@bla.com.pl\n"; 
  101. $naglowki = $naglowki . "MIME-Version: 1.0\r\n";
  102. $naglowki = $naglowki . "Content-type: text/html; charset=iso-8859-2\r\n";
  103.  
  104. mail("bla@bla.com.pl",$temat,$tresc,$naglowki);
  105.  
  106. ?>


Wszystko działa jeśli tyrzy checkboxy są zaznaczone lub pierwsze 2 lub pierwszy. Jeśli nie chce zamawiać pierwszego elementu i nie zaznacze checkboxu to nic mi sie nie wyświetla....

nie wiem gdzie jest problem. Sprawdziłem wartości w tablicy chex[] i są poprawne w każdej sytuacji. Prawdopodobnie chodzi o warunek if gdy nie jest spełniony wtedy
  1. <?php
  2. $tresc_*="";
  3. ?>
ale nie wiem jak to zapisać żeby było ok w kodzie html...

Moży znajdziecie jakieś rozwiązanie...

Z góry dzięki
nospor
Twoj skrypt nie ma nic wpolnego z php5, prócz moze tego, ze na piątce go wykonujesz. PRzenoszę

ps: czy ta ilosc kodu jest nam potrzebna? nie da sie wyodrębnic tylko to co niezbędne?
dekrzycho
Cytat(dekrzycho @ 2006-03-29 11:39:18)
Witam,
Z formularza przesyłam dane do skryptu ktory wysyła maila a treścią maila są właśnie te dane po spełnieniu pewnych założen. Mianowicie jeśli klient zaznaczy checkbox to dane powinny sie wyświetlić. Wartości checkboxów są w tablicy chex[]...
Skrypt wygląda następująco:
  1. <?php
  2. //jakies dane z formularza
  3. // produkty zamawiane
  4. $chex[]=$_POST['chex[]'];
  5. $Lp=0;
  6. $vat="22%";
  7.  
  8. // MSP422
  9. if ($chex[0]=="msp")
  10. {
  11. $msp422_p1i=$_POST['p1i'];
  12. $msp422_p1c=$_POST['p1c'];
  13. $msp422_p1l=$_POST['p1l'];
  14. $msp422_nazwa="MSP422 - Ultradźwiękowy przetwornik poziomu";
  15. $msp422_c_netto=$msp422_p1i*$msp422_p1c;
  16. $msp422_c_b=$msp422_c_netto*1.22;
  17. $msp422_c_brutto=number_format($msp422_c_b,2,',','');
  18. $Lp=$Lp+1;
  19. $tresc_1='<tr class="txt2">
  20. <td class="txt2" width="30" align="center" valign="middle">'.$Lp.'</td>
  21. <td class="txt2" align="center" valign="middle">'.$msp422_nazwa.'</td>
  22. <td class="txt2" width="100" align="center" valign="middle">'.$msp422_p1c.'</td>
  23. <td class="txt2" width="40" align="center" valign="middle">'.$msp422_p1i.'</td>
  24. <td class="txt2" width="100" align="center" valign="middle">'.$msp422_c_netto.'</td>
  25. <td class="txt2" width="50" align="center" valign="middle">'.$vat.'</td>
  26. <td class="txt2" width="100" align="center" valign="middle">'.$msp422_c_brutto.'</td>
  27. </tr>'; 
  28. }else
  29. {
  30. $tresc_1="";
  31. $Lp=$Lp;
  32. }
  33. // 003S2
  34. if ($chex[1]=="003s")
  35. {
  36. $s003s2_p1i=$_POST['p2i'];
  37. $s003s2_p1c=$_POST['p2c'];
  38. $s003s2_p1l=$_POST['p2l'];
  39. $s003s2_nazwa="003S2 - Ultradźwiękowy sygnalizator poziomu";
  40. $s003s2_c_netto =$s003s2_p1i*$s003s2_p1c;
  41. $s003s2_c_b=$s003s2_c_netto*1.22;
  42. $s003s2_c_brutto=number_format($s003s2_c_b,2,',','');
  43. $Lp=$Lp+1;
  44. $tresc_2='<tr class="txt2">
  45. <td class="txt2" width="30" align="center" valign="middle">'.$Lp.'</td>
  46. <td class="txt2" align="center" valign="middle">'.$s003s2_nazwa.'</td>
  47. <td class="txt2" width="100" align="center" valign="middle">'.$s003s2_p1c.'</td>
  48. <td class="txt2" width="40" align="center" valign="middle">'.$s003s2_p1i.'</td>
  49. <td class="txt2" width="100" align="center" valign="middle">'.$s003s2_c_netto.'</td>
  50. <td class="txt2" width="50" align="center" valign="middle">'.$vat.'</td>
  51. <td class="txt2" width="100" align="center" valign="middle">'.$s003s2_c_brutto.'</td>
  52. </tr>'; 
  53. }else
  54. {
  55. $tresc_2="";
  56. $Lp=$Lp;
  57. }
  58. //VT03
  59. if ($chex[2]=="vt03")
  60. {
  61. $vt03_p1i=$_POST['p3i'];
  62. $vt03_p1c=$_POST['p3c'];
  63. $vt03_p1l=$_POST['p3l'];
  64. $vt03_nazwa="MiniSquing - Wibracyjny sygnalizator poziomu, model VT03 (do bezpośredniego włączenia w obciążenie)";
  65. $vt03_c_netto =$vt03_p1i*$vt03_p1c;
  66. $vt03_c_b=$vt03_c_netto*1.22;
  67. $vt03_c_brutto=number_format($vt03_c_b,2,',','');
  68. $Lp=$Lp+1;
  69. $tresc_3='<tr class="txt2">
  70. <td class="txt2" width="30" align="center" valign="middle">'.$Lp.'</td>
  71. <td class="txt2" align="center" valign="middle">'.$vt03_nazwa.'</td>
  72. <td class="txt2" width="100" align="center" valign="middle">'.$vt03_p1c.'</td>
  73. <td class="txt2" width="40" align="center" valign="middle">'.$vt03_p1i.'</td>
  74. <td class="txt2" width="100" align="center" valign="middle">'.$vt03_c_netto.'</td>
  75. <td class="txt2" width="50" align="center" valign="middle">'.$vat.'</td>
  76. <td class="txt2" width="100" align="center" valign="middle">'.$vt03_c_brutto.'</td>
  77. </tr>'; 
  78. }else
  79. {
  80. $tresc_3="";
  81. $Lp=$Lp;
  82. }
  83.  
  84.  
  85. $vat="22%";
  86.  
  87. $url=$_POST['url'];
  88.  
  89. $tresc='
  90. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  91. - cos tam dalej -
  92. -i sedno-
  93. </tr>'.$tresc_1.''.$tresc_2.''.$tresc_3.'
  94. </table>
  95. </body>
  96. </html>';
  97. $naglowki = "From: bla@bla.com.pl\n"; 
  98. $naglowki = $naglowki . "Reply-To: bla@bla.com.pl\n"; 
  99. $naglowki = $naglowki . "X-Sender: bla@bla.com.pl\n"; 
  100. $naglowki = $naglowki . "Return-Path: bla@bla.com.pl\n"; 
  101. $naglowki = $naglowki . "MIME-Version: 1.0\r\n";
  102. $naglowki = $naglowki . "Content-type: text/html; charset=iso-8859-2\r\n";
  103.  
  104. mail("bla@bla.com.pl",$temat,$tresc,$naglowki);
  105.  
  106. ?>


Wszystko działa jeśli tyrzy checkboxy są zaznaczone lub pierwsze 2 lub pierwszy. Jeśli nie chce zamawiać pierwszego elementu i nie zaznacze checkboxu to nic mi sie nie wyświetla....

nie wiem gdzie jest problem. Sprawdziłem wartości w tablicy chex[] i są poprawne w każdej sytuacji. Prawdopodobnie chodzi o warunek if gdy nie jest spełniony wtedy
  1. <?php
  2. $tresc_*="";
  3. ?>
ale nie wiem jak to zapisać żeby było ok w kodzie html...

Moży znajdziecie jakieś rozwiązanie...

Z góry dzięki

Chodzi o to że zaznaczjąc 3 checkboxy mamy 3 elementy w tablicy chex[]. Jeśli nie zaznaczymy pierwszego liczba elementów się zmienia na dwa. I wynika z tego że zaznaczone dwa przesuwają sie o jedno miejsce w tablicy.

TO JEST PROBLEM.

Może wiecie jak go rozwiązać....questionmark.gifquestionmark.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.