Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz - brak polskich znaków
Forum PHP.pl > Forum > PHP
Diablotic
Witam,

Tworzę swoją pierwszą stronę internetową i nie mogę przebrnąć przez stworzenie formularza który poprawnie by wysyłał emaila (brak polskich znaków).

Kod strony na ktorej jest formularz wyglada tak:
Kodowanie
Kod
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">

oraz formularz
Kod
<form id="form" action="wyslij.php" method="post" >
                    <div class="h_f">
                      <input type="text" name="imie" value="Imię i nazwisko" onfocus="if (this.value == 'Imię i nazwisko') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Imię i nazwisko';}" />
            </div>
                    <div class="h_f"><input type="text" name="email" value="Email" onfocus="if (this.value == 'Email') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Email';}" /> </div>
                    <div>
                      <textarea name="tresc" cols="2" onfocus="if (this.value == 'Wiadomość') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Wiadomość';}">Wiadomość</textarea>
    </div>
                    <div><strong style="margin:0 15px 0 0px;">
                    <input type="submit" value="Wyślij" />
                    <input type="reset" value="Reset"></strong></div>
              </form>


Kod formularza w pliku php wyglada tak
Kod
<?php
if (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
    $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
    $header = "From: $_POST[imie] <$_POST[email]>";
    @mail("moj@email.pl","Wiadomość ze strony WWW","$message","$header")
    or die('Nie udało się wysłać wiadomości');
    echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
}
else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
?>




Polskie znaki na stronie sie wyswietlaja poprawnie ale po wyslaniu formularza dochodzi do mnie email bez polskich znaków. Prosze o pomoc.
Blame
Do $header dodaj jeszcze:

  1. $header .= "MIME-Version: 1.0\n";
  2.  
  3. $header .= "Content-type: text/html; charset=UTF-8\n";
  4.  
  5. $header .= "Content-Transfer-Encoding: 8bit\n";
erix
A przeszukałeś forum? Było tyle wątków o polskich znakach, że naprawdę nie ma sensu rozpoczynanie kolejnego.
Diablotic
Uwierz mi ze przeszukalem. Siedze juz przy tym ponad 3 godziny wiec postanowilem zalozyc nowy temat bo nie znalazlem nigdzie rozwiazania ktore by dzialalo na mojej stronie.
erix
Zależy, czego użyłeś, pokaż co kombinujesz.
Diablotic
Kombinuje z tym kodowaniem w pliku php i na stronie. Probowalem rozne opcje ale zadna nie dziala sad.gif
erix
To daj jakiś kawałek kodu, który wg Ciebie nie działa, najlepiej kilka wersji. Za Ciebie tego nikt nie napisze.
Diablotic
Wyzej jest kod ktory dziala tylko kodowanie jest spsute.
A probowalem takze z:
Kod
charset=iso-8859-2
na stronie ale sie krzaczyly literki w boxach w formularzu.
Probowalem takze ustawic "charset=iso-8859-2" w pliku php ale bez rezulatatu.
Probowalem takze na końcu w zmiennej header dodać "Content-type: text/html; charset=utf-8" - rowniez bez rezultatu.
Kod
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
$header .= "$_POST[imie] <$_POST[email]>\r\n";

Takze bez rezultatu.

Wiecej pomyslow nie mam a i w internecie nic nie moge wyszukac co by dzialalo dlatego pytam na forum ale teraz sie czuje jakbym byl na przesluchaniu.
erix
A same znaki też przekodowałeś?
Diablotic
Tak, udało sie ale czesciowo, miałem przypadkowo ustawione kodowanie ANSI zamiast UTF-8. Tresc wiadomosci juz ładnie przychodzi z polskimi znakami ale nadawca i temat nadal bez polskich znakow.
erix
A tam znaki też masz przekodowane?
Diablotic
Tam tzn gdzie?
erix
W nagłówkach.
Diablotic
Tak, strony sie wyswietalaja bez problemow w UTF-8
erix
Mam na myśli zawartość tych pól... dry.gif
Diablotic
Cytat
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<title></title>
<link href="style.css" rel="stylesheet" type="text/css" />
<link href="layout.css" rel="stylesheet" type="text/css" />
<script src="rollover.js" type="text/javascript"></script>
<script src="maxheight.js" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
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.