Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie maili w html przez mail();
Forum PHP.pl > Forum > Przedszkole
MOniToR
Cześc wysyłająca zawartość
  1. <?php
  2. $sql="SELECT * FROM eng_newsletter2";
  3. $result=mysql_query($sql);
  4. $headers = "MIME-Version: 1.0rn";
  5. $headers .= "Content-type: text/html; charset=iso-8859-2rn";
  6.  
  7. $headers .= "From: Ofensiva<info@ofensiva.pl>rn";
  8.  
  9.  
  10. while($row= mysql_fetch_array($result)) {
  11. mail($row["email"], 'Ofensiva 2006', $_POST["tresc"], $headers);
  12.  
  13. }
  14. ?>

Część generująca zawartość
  1. <?php
  2. if($_FILES['obrazek1']['size'] !==0) {
  3.  $img1=dodaj_obrazek1($_FILES['obrazek1']);
  4.  $tr1="<tr><td colspan="2"><center><h2>".$_POST["temat1"]."</h2></center></td></tr><tr><td><img src="http://beta.ofensiva.pl/eng/wyslane/".$img1."" hspace="10" align="left"></td><td valign="top" style="text-align:justify;font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; font-weight: normal;">".$_POST["tresc1"]."<br></td></tr>";
  5. }
  6.  if($_FILES['obrazek2']['size'] !==0) {
  7.  $img2=dodaj_obrazek2($_FILES['obrazek2']);
  8.  $tr2="<tr><td colspan="2"><center><h2>".$_POST["temat2"]."</h2></center></td></tr>
  9.  <tr><td><img src="http://ofensiva.pl/eng/wyslane/".$img2."" hspace="10" align="left"></td><td valign="top" style="text-align:justify;font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; font-weight: normal;">".$_POST["tresc2"]."<br></td></tr>";
  10.  }
  11.  if($_FILES['obrazek3']['size'] !==0) {
  12.  $img3=dodaj_obrazek3($_FILES['obrazek3']);
  13.  $tr3="<tr><td colspan="2"><center><h2>".$_POST["temat3"]."</h2></center></td></tr><tr><td><img src="http://ofensiva.pl/eng/wyslane/".$img3."" hspace="10" align="left"></td><td valign="top" style="text-align:justify;font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; font-weight: normal;">".$_POST["tresc3"]."<br></td></tr>";
  14.  }
  15. if($_FILES['obrazek4']['size'] !==0) {
  16.  $img4=dodaj_obrazek4($_FILES['obrazek4']);
  17.  $tr4="<tr><td colspan="2" style="text-align:left; padding-left:15px;"><br><span style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 20px; font-weight: normal; color: #A8A8AA; text-align:left;">".$_POST["temat02"]."</span></td></tr><tr><td colspan="2"><center><h2>".$_POST["temat4"]."</h2></center></td></tr><tr><td><img src="http://ofensiva.pl/eng/wyslane/".$img4."" hspace="10" align="left"></td><td valign="top" style="text-align:justify;font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; font-weight: normal;">".$_POST["tresc4"]."<br></td></tr>";
  18.  }
  19. if($_FILES['obrazek5']['size'] !==0) {
  20.  $img5=dodaj_obrazek5($_FILES['obrazek5']);
  21.  $tr5="<tr><td colspan="2"><center><h2>".$_POST["temat5"]."</h2></center></td></tr><tr><td><img src="http://ofensiva.pl/eng/wyslane/".$img5."" hspace="10" align="left"></td><td valign="top" style="text-align:justify;font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; font-weight: normal;">".$_POST["tresc5"]."<br></td></tr>";
  22.  }
  23.  if($_FILES['obrazek6']['size'] !==0) {
  24.  $img6=dodaj_obrazek6($_FILES['obrazek6']);
  25.  $tr6="<tr><td colspan="2"><center><h2>".$_POST["temat6"]."</h2></center></td></tr><tr><td><img src="http://ofensiva.pl/eng/wyslane/".$img6."" hspace="10" align="left"></td><td valign="top" style="text-align:justify;font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; font-weight: normal;">".$_POST["tresc6"]."<br></td></tr>";
  26.  }
  27.  $naglowek="<html>
  28. <body>
  29. <a name="top"></a><table background="http://ofensiva.pl/eng/obrazki/newsletter/bg.gif" bgcolor="#FFFFFF" width="693" border="0" cellpadding="0" cellspacing="0" align="center">
  30. <tr ><td height="284" width="693" background="http://ofensiva.pl/eng/obrazki/newsletter/eng_logo.jpg"></td></tr>
  31. <tr><td height="41" width="693" style="padding-left:35px;" background="http://ofensiva.pl/eng/obrazki/newsletter/eng_title_bg.jpg">
  32.  <span style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 20px; font-weight: normal; color: #A8A8AA; text-align:left;">".$_POST["temat01"]."</span>
  33. </td></tr><tr><td style="padding-left:30px;padding-right:30px;"><table align="center" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; font-weight: normal; text-align:justify;">";
  34.  
  35.  $trescx="$naglowek $tr1 $tr2 $tr3 $tr4 $tr5 $tr6 $stopka";
  36.  
  37. echo"<form method="POST" ENCTYPE="multipart/form-data" action="sendmail.php">
  38. <input type="hidden" name="tresc" value="$trescx">
  39. <center><input TYPE="submit" name="send" style="background-color: #EF0001; border-color: #EEEEEE; color: white; font-family: Verdana; font-size: 10px" border="0" value="Wyslij"></center>
  40. </form>";
  41. ?>

Po wysłaniu maila uzywajac tego skryptu dostaje maila zawierajacego tylko "<a name=" . Czemu to blokuje mi wysyłanie maila? I czy coś sie stanie jezeli ten mail bedzie wysyłany do duzej ilosc uzytkownikow? Czemu zmienna $trescx jest widoczna tak jakbym uzył echo? Prosze o pomoc, z góry dzieki.

Edit// hmm troche nie jasno napisałem, problem polega na tym, że nie dostaję całej zawartości ktora wpisalem w formularzu i która jest w zmiennej $trescx a tylko jej kruciutki poczatek do pierwszego slasha w naglowku (zmienna $naglowek) a dokładniej dostaję tylko tekst '<a name'. Prosze o pomoc.
yavaho
Po pierwsze to sprawdz ktory zapis zmiennych tablicowych jest poprawny
$_POST["tresc"]
czy
$_POST['tresc']

I polecam oczyścić ten kod html z tych wszystkich backslashów "\" . bedzie czytelniejszy i szybciej przetrawiony przez parser.
kszychu
Cytat(yavaho @ 2006-01-12 16:43:52)
Po pierwsze to sprawdz ktory zapis zmiennych tablicowych jest poprawny
$_POST["tresc"]
czy
$_POST['tresc']

blink.gif A to któryś z nich jest niepoprawny?..
Nie pisz tylko czym się różnią, bo wiem czym się różnią, powiedz tylko, dlaczego uważasz jeden z nich za niepoprawny i który?
MOniToR
Cytat(kszychu @ 2006-01-12 17:51:20)
Cytat(yavaho @ 2006-01-12 16:43:52)
Po pierwsze to sprawdz ktory zapis zmiennych tablicowych jest poprawny
$_POST["tresc"]
czy
$_POST['tresc']

blink.gif A to któryś z nich jest niepoprawny?..
Nie pisz tylko czym się różnią, bo wiem czym się różnią, powiedz tylko, dlaczego uważasz jeden z nich za niepoprawny i który?

fajnie ale może byś mi pomógł a nie sie czepiasz kogoś kto chce to zrobic tongue.gif co to jest ten parser questionmark.gif
kszychu
Cytat(MOniToR @ 2006-01-12 16:54:02)
fajnie ale może byś mi pomógł a nie sie czepiasz kogoś kto chce to zrobic tongue.gif co to jest ten parser questionmark.gif

Skoro uważasz, że pomógł Ci ktoś, kto nie napisał nic konstruktywnego to przepraszam, że się wtrącam. Chciałem tylko, by ktoś, kto komuś radzi - radził dobrze.
MOniToR
heh pomoze mi ktoś? sad.gif przeciez napewno nie jeden z Was wysylal maile w htmlu :/
sf
napewno ktos wysylal i napewno to juz bylo gdzies opisane, wiec po co sie powtarzac? ;-) wpisalem w google i znalazlem na pierwszej pozcyji...
yavaho
Opieram sie na wiedzy z manuala a nie na pierwotnych wersjach skladni php ktore mozna znalezc w starych ksiazkach.
array string
Wszystko co daje sie pomiędzy cudzysół to zmusza parser php aby sprawdził najpierw czy to zmienna czy to tylko tekst. I dlatego chcialem polecic uzywanie apostrofów co bedzie chyba lepszym nawykiem na przyszłość.

@MOniToR uzyj takiego łączenia stringów, a cudzysłów uzywaj tylko w koniecznosci
  1. <?php
  2. $trescx = $naglowek . $tr1 . $stopka;
  3. echo '<input type="hidden" name="tresc" value="'.$trescx.'" />'."rn";
  4. ?>


@kszychu nie powinienes uzywac swojego immunitetu moderatora tylko do nabijania postów.
MOniToR
Cytat(yavaho @ 2006-01-12 20:12:02)
Opieram sie na wiedzy z manuala a nie na pierwotnych wersjach skladni php ktore mozna znalezc w starych ksiazkach.
array string
Wszystko co daje sie pomiędzy cudzysół to zmusza parser php aby sprawdził najpierw czy to zmienna czy to tylko tekst. I dlatego chcialem polecic uzywanie apostrofów co bedzie chyba lepszym nawykiem na przyszłość.

@MOniToR uzyj takiego łączenia stringów, a cudzysłów uzywaj tylko w koniecznosci
  1. <?php
  2. $trescx = $naglowek . $tr1 . $stopka;
  3. echo '<input type="hidden" name="tresc" value="'.$trescx.'" />'."rn";
  4. ?>


@kszychu nie powinienes uzywac swojego immunitetu moderatora tylko do nabijania postów.

kurde to nic nie pomaga, jeżeli w tresci sa " " to mi wyswietla mail do peirwszego cudzyslowia a jezeli zastapie je ' ' to dodaje mi do kazdego \ i wtedy nie wyswietla mi sie zawartos html w mailu bo jest zasmiecona slashami \'
yavaho
Jeżeli przed kazdym cudzyslowiem dodaje ci backslasch "\" to podejrzewam ze przed wyslaniem tekst przechodzi przez skrypt w ktorym moga byc zastosowane np: takie polecenia strip_tags" title="Zobacz w manualu php" target="_manual htmlspecialchars" title="Zobacz w manualu php" target="_manual
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.