Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kodowanie [PHP,JS]
Osłomania > IT, Multimedia, Home Entertainment, Komunikacja > Webmastering
Klaudek
Witam,

Właśnie napisałem sobie skrypt obsługujący formularz.
I ...
Problem.
Treść maila (ponieważ formularz + załącznik są wysyłane mailem) jest poprawnie kodowana pod względem polskich znaków diakrytycznych, ale nazwa nadawcy i tytuł wiadomości już nie.
Moje pytanie, czy ktoś wie w czym tkwi problem?

Załączam treść skryptu:

KOD
<?='<?xml version="1.0" encoding="ISO-8859-2"?>' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"><head>
<link rel="shortcut icon" href="fiege.ico" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<title>Dziękujemy z wysłanie zgłoszenia - Dział IT *** Sp.z o.o.</title>
<style type="text/css"><!--
body { font-family:arial; font-size:13px; text-align:center; background:white url(tlo.gif) fixed;}

.srodek {
  position: absolute;
  height: 200px;
  width: 250px;
  margin-top: -100px;
  margin-left: -100px;
  top: 50%;
  left: 50%;
  border:1px solid black;
}
--></style>
</head>
<body>
<?

  srand((double)microtime()*1000000);
  $znacznik = md5(uniqid(rand()));

  // dane o odbiorcy, nadawcy
  $odbiorca="****@gmail.com";
  $tytul=" Zgłoszenie do Działu IT";
  $nadawca_imie = "$imie "."$nazwisko";
  $nadawca_email = "$adres";

  // treść listu
  $tresclistu = "
ZGŁOSZENIE DO DZIAŁU IT
============================================================
Zgłoszono następujący problem:
" . $_POST["pole1"]."
============================================================
Problem miał miejsce w: " . $_POST["lokalizacja"]."
============================================================
Opis załącznika (opcjonalne):
".$_POST["opis"]."
============================================================
Zgłoszenie wysłał:
$nadawca_imie
tel.: " . $_POST["telefon"]."
" . $_POST["lokalizacja"]."
";

  // definicja nagłówków
  $naglowki  = "From: $nadawca_imie <$nadawca_email>\n";
  $naglowki .= "MIME-Version: 1.0\n";
  $naglowki .= "Content-Type: multipart/mixed;\n";
  $naglowki .= "\tboundary=\"___$znacznik==\"";
  $naglowki .= "Content-Type: text/plain;\n";
$naglowki .= "\tcharset=\"iso-8859-2\"\n";
$naglowki .= "Content-Transfer-Encoding: 8bit\n";


  // nagłówki listu
  $tresc="--___$znacznik==\n";
  $tresc .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
  $tresc .="Content-Transfer-Encoding: 8bit\n";
  $tresc .="\n$tresclistu\n";

  // nagłówki i obsługa załącznika
  $plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
  $plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
  $plik_wielkosc = $_FILES["plik1"]["size"];

  if (is_uploaded_file($plik_nazwa_tmp)) {
    $tresc .="--___$znacznik==\n";
    $tresc .="Content-Type: image/gif\n";
    $tresc .="Content-Disposition: attachment;\n";
    $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
    $tresc .="Content-Transfer-Encoding: base64\n\n";
    $f = fopen($plik_nazwa_tmp,"rb");
    $dane = fread($f,filesize($plik_nazwa_tmp));
    fclose($f);
    $tresc .= chunk_split(base64_encode($dane));
    $tresc .="--___$znacznik==--\n";
  }

  // wysłanie listu
  mail($odbiorca,$tytul,$tresc,$naglowki);




?>
<table class="srodek"><tr>
  <td style="vertical-align:middle; text-align:center;">
  Dziękujemy,<br />Zgłoszenie znajduje się już na skrzynce IT.<br />
  Aktualnie pracujemy nad rozwiązaniem Twojego problemu.<br />
  Niedługo skontaktujemy się z Tobą.<br /><br /><input type="button" value="Powrót do formularza"
onclick="window.location='http://***.***/'" />
  </td>
  </tr></table>

</body></html>


Dodatkowo dodam, ze korzystam z PSPad (kodowanie ISO 8859-2), a poczta na której to testuje to GMAIL over http.

Dzięki z góry
Xahil
Tresc listy wysylasz z kodowaniem 8bitowym, natomiast odbiorca i temat jako ze nie sa trescia to powinny byc kodowane kodowaniem 7 bitowym i jesli zawieraja polskie znaki to powinny byc one zakodowane w base64 albo albo w quoted-printable. Na pewno sa jakies funkcje ktore to robia wink.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-2012 Invision Power Services, Inc.