[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

mysio_pysio
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 13 wrz 2012, o 11:45
Płeć: Mężczyzna
Lokalizacja: Polska

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: mysio_pysio »

Witam,
jestem laikiem w tych sprawach więc proszę o pomoc.

Zbudowałem sobie formularz na stronie w formie tabelki z możliwościami wyboru i chciałbym aby jako wiadomość e-mail również odbierać tabelkę (obecnie wszystko jest jako zwykły tekst i można się łatwo pogubić i jest nieczytelne).

Skrypt pliku wysyłającego:

Kod: Zaznacz cały

<?
	$receiver="e@mail";

	$subject="formularz";
	$header="MIME-Version: 1.0\r\nContent-type: text/plain; charset=windows-1250\r\n";

	
	//'add every form element and its value to the email
	$body="";
	foreach (array_keys($_POST) as $el)
	{
		if (strcmp("subject",strtolower($el))==0) $subject=$subject." -- ".$_POST[$el];
		
		$value=$_POST[$el];
		$display="";
		if (is_array($value))
		{
			foreach ($value as $everydisplay)
			{
				$display.=$everydisplay." ";
			}
		}
		else
		{
			$display=$value;
		}
		$body=$body. $el . ": " . $display . "\r\n";
	}
	
	//mail($receiver,$subject,$body);
	if ($body!="") mail($receiver,$subject,$body,$header);

?>
Co należy w nim zmienić? Ewentualnie jak się w ogóle nie nadaje to może inny zaimplementować?
Ostatnio zmieniony 14 wrz 2012, o 17:43 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
bartek118
Użytkownik
Użytkownik
Posty: 5974
Rejestracja: 28 lut 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 15 razy
Pomógł: 1251 razy

Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: bartek118 »

Musisz sobie w odpowiednie znaczniki HTML ubrać wiadomość, tj. <TABLE>, <TR>, <TD> itp
mysio_pysio
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 13 wrz 2012, o 11:45
Płeć: Mężczyzna
Lokalizacja: Polska

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: mysio_pysio »

No tak,

cały formularz ustawiłem jako zmienną PHP jednak na maila przychodzi mi ciągle sam tekst a nie tabelka.

Pozdrawiam
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: Afish »

Wysyłasz wiadomość jako text/plain, czyli wszystko leci zwykłym tekstem. Musisz to zmienić na wiadomość html (bodaj text/html), wtedy klient poczty zacznie interpretować znaczniki.
mysio_pysio
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 13 wrz 2012, o 11:45
Płeć: Mężczyzna
Lokalizacja: Polska

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: mysio_pysio »

Kod: Zaznacz cały

$header="MIME-Version: 1.0
Content-type: text/html; charset=windows-1250
";
To też zmieniłem.
Jednak cały czas na skrzynkę przychodzi ciąg znaków.
Co prawda jest on sformatowany ale w jednej linijce.
Nie mam pojęcia jak ustawić aby każdy wers był osobno - a najlepiej w takiej tabelce jak skostruowany jest formularz na stronie.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: Afish »

Pokaż treść maila.
mysio_pysio
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 13 wrz 2012, o 11:45
Płeć: Mężczyzna
Lokalizacja: Polska

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: mysio_pysio »

Oto kod formularza:

Kod: Zaznacz cały

<TABLE border=1>
        <TBODY>
        <TR>
          <TD>
            <P><FONT color=#000000>Dane użytkownika: <i>pełna nazwa, adres, numer telefonu</i></FONT></P></TD>
          <TD><TEXTAREA style=WIDTH: 254px; HEIGHT: 84px name=Uzytkownik rows=4 cols=80 ></TEXTAREA>
		  <FONT color=#000000></FONT></TD></TR>
		  <br>
        <TR>
          <TD>
            <P><FONT color=#000000>Data rejestracji</FONT></P></TD>
          <TD><SELECT name=Data rejestracji - dzień ><OPTION value=1 selected>1</OPTION><OPTION value=2 >2</OPTION><OPTION value=3 >3</OPTION><OPTION value=4 >4</OPTION><OPTION value=5 >5</OPTION><OPTION value=6 >6</OPTION><OPTION value=7 >7</OPTION><OPTION value=8 >8</OPTION><OPTION value=9 >9</OPTION><OPTION value=10 >10</OPTION><OPTION value=11 >11</OPTION><OPTION value=12 >12</OPTION><OPTION value=13 >13</OPTION><OPTION value=14 >14</OPTION><OPTION value=15 >15</OPTION><OPTION value=16 >16</OPTION><OPTION value=17 >17</OPTION><OPTION value=18 >18</OPTION><OPTION value=19 >19</OPTION><OPTION value=20 >20</OPTION><OPTION value=21 >21</OPTION><OPTION value=22 >22</OPTION><OPTION value=23 >23</OPTION><OPTION value=24 >24</OPTION><OPTION value=25 >25</OPTION><OPTION value=26 >26</OPTION><OPTION value=27 >27</OPTION><OPTION value=28 >28</OPTION><OPTION value=29 >29</OPTION><OPTION value=30 >30</OPTION><OPTION value=31 >31</OPTION></SELECT>
          <SELECT name=Data rejestracji - miesiąc  ><OPTION value=nie_wybrano selected>---</OPTION><OPTION value=sierpień >sierpień</OPTION><OPTION value=wrzesień >wrzesień</OPTION><OPTION value=październik >październik</OPTION><OPTION value=listopad >listopad</OPTION><OPTION value=grudzień >grudzień</OPTION>
          </SELECT><b>2012</b></TD></TR>
          <TR>
          <TD>
            <P><FONT color=#000000>Miesiąc dostawy</FONT></P></TD>
          <TD><SELECT name=Miesiąc dostawy  ><OPTION value=nie_wybrano >---</OPTION>
          <OPTION value=wrzesień >wrzesień</OPTION><OPTION value=październik >październik</OPTION><OPTION value=listopad >listopad</OPTION><OPTION value=grudzień >grudzień</OPTION></SELECT></TD></TR>
          <TR>
          <TD>
            <P><FONT color=#000000><b>NAZWA USŁUGI</b></FONT></P></TD>
          <TD> <P><FONT color=#000000><b>ZAMAWIANA ILOŚĆ</b></FONT></P></TD></TR>
        <TR>
          <TD>
            <P><FONT color=#000000>1. Usługa 1</FONT></P></TD>
          <TD><table border=0 cellpadding=0 cellspacing=0>
<tr>
	<td><INPUT name=Usługa 1-ilosc style=WIDTH: 40px;><FONT color=#000000> szt.</FONT></TD>
	<td><SELECT name=Usługa 1-cena  ><OPTION value=bezplatnie >bezpłatnie</OPTION><OPTION value=platnie >płatnie</OPTION>
	</SELECT>cena</td>
	</tr>
  </table>
  </td>
	</TR>
        <TR>
          <TD>
            <P><FONT color=#000000>2. Usługa 2</FONT></P></TD>
            <TD><table border=0 cellpadding=0 cellspacing=0>
<tr>
	<td><INPUT name=Usłua 2-ilosc style=WIDTH: 40px;><FONT color=#000000> szt.</FONT></TD>
	<td><SELECT name=Usługa 2-cena  ><OPTION value=1 zł >1 zł</OPTION><OPTION value=2 zł >2 zł</OPTION></SELECT>cena</td>
	</tr>
  </table>
  </td></TR>
        <TR>
          <TD>
            <P><FONT color=#000000>3. Usługa 3</FONT></P></TD>
          	 <TD><table border=0 cellpadding=0 cellspacing=0>
<tr>
	<td><INPUT name=Usługa 3-ilosc style=WIDTH: 40px;><FONT color=#000000> szt.</FONT></TD>
	<td><SELECT name=Usłua 3-cena  ><OPTION value=1 zł >1 zł</OPTION><OPTION value=2 zł >2 zł</OPTION></SELECT>cena</td>
	</tr>
  </table>
  </td></TR>
        <TR>
          <TD>
            <P><FONT color=#000000>4. Usłua 4</FONT></P></TD>
            <TD><table border=0 cellpadding=0 cellspacing=0>
<tr>
	<td><INPUT name=Usługa 4-ilosc style=WIDTH: 40px;><FONT color=#000000> szt.</FONT></TD>
	<td><SELECT name=Usługa 4-cena  ><OPTION value=1 zł >1 zł</OPTION><OPTION value=2 zł >2 zł</OPTION></SELECT>cena</td>
	</tr>
  </table>
  </td></TR>
        <TR>
          <TD>
            <P><FONT color=#000000>5. Usługa 5</FONT></P></TD>
            <TD><table border=0 cellpadding=0 cellspacing=0>
<tr>
	<td><INPUT name=Usługa 5-ilosc style=WIDTH: 40px;><FONT color=#000000> szt.</FONT></TD>
	<td><SELECT name=Usługa 5-cena><OPTION value=1 zł >1 zł</OPTION><OPTION value=2 zł >2 zł</OPTION></SELECT>cena</td>
	</tr>
  </table>
  </td>;
          </TR>
          <TR>
          <TD>
            <P><FONT color=#000000><b>Podpis zamawiającego</b></FONT></P></TD>
          <TD><INPUT name=Podpis style=WIDTH: 264px;><FONT color=#000000> </FONT></TD>
          </TR>
        <TR>
          <TD align=center colSpan=2>
<div id=mysio_pysio>
<input name=wyslij type=submit value=Wyślij  />	</div><FONT color=#000000></FONT></TD></TR></TBODY></TABLE>
A oto treść maila jaki przychodzi:

Dane użytkownika: aaa Data rejestracji: sierpień Miesiąc dostawy: wrzesień Usługa 1: 1 Podpis: fgdgd wyslij: Wyślij

Ponadto nie przesyła wszystkich danych z formularza - nie mam pojęcia dlaczego.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: Afish »

Mail też musisz zapisać w HTMLu, musisz dać znacznik html, head, body i tak dalej. Magii nie ma, wiadomość sama się nie sformatuje.
mysio_pysio
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 13 wrz 2012, o 11:45
Płeć: Mężczyzna
Lokalizacja: Polska

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: mysio_pysio »

Ale w którym miejscu je dać? Nie mam pojęcia
Może mógłbym prosić o jakąś wskazówkę gdzie te znaczniki umieścić?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: Afish »

W treści wiadomości, u Ciebie zmienna $body
mysio_pysio
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 13 wrz 2012, o 11:45
Płeć: Mężczyzna
Lokalizacja: Polska

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: mysio_pysio »

A mógłbyś mi pokazać jak te znaczniki tam umieścić.
Nigdy tego nie robiłem i nawet nie wiem jak je tam wstawić.
Prosiłbym chociaż o umieszczenie znaczników<html><head><body>
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: Afish »



Po prostu zmień $body tak, aby zawierało znaczniki HTML:

Kod: Zaznacz cały

$body = '<html><body>
Moja super wiadomość<br>
Druga linia tejże<br>
</body></html>
Znaczników head nie umieszczasz w treści wiadomości, troszkę się zapędziłem poprzednio.
mysio_pysio
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 13 wrz 2012, o 11:45
Płeć: Mężczyzna
Lokalizacja: Polska

[HTML] Wysyłanie tabelki ze strony html na skrzynke e-mail

Post autor: mysio_pysio »

Załadowałem. Super. Całkiem inaczej wygląda wiadomość.
Tylko jeszcze jedno pytanie: w formularzu są pola które wypełnia użytkownik. W tych polach posłużyłem się zmiennymi. W skrypcie który wysyła wiadomość wywołałem te zmienne poprzez echo - jednak pola nadal pozostają puste? Co znowu nie tak zrobiłem?
ODPOWIEDZ