Strona 1 z 1

Problem z polskimi znakami

: 10 grudnia 2014, 09:07
autor: sereknr1
Witajcie, znalazłem w sieci skrypt php prostego formularza pocztowego działającego bez klienta pocztowego, lekko go zmodyfikowałem dodając poszczególne elementy jednakże nie znam się na php a mam problem z polskimi znakami. Przy wpisywaniu w poszczególne pola danych oraz treści wiadomości gdy odbieram outlookiem ze skrzynki w miejscach "ó" itp jak się domyślacie widnieją różne dziwne symbole. Chciałbym was prosić o poradę bądź o drobną modyfikację kodu tak aby wiadomość powracała do mnie "niezaszyfrowana" :D Oto kod w/w formularza:
Główny plik html wyświetlany na stronie: /*jak się domyślam to nie w nim tkwi problem */ :D

Kod: Zaznacz cały

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1250" />
<meta http-equiv="Content-Language" content="pl">
<title>Formularz Kontaktowy - Tytuł naszej strony</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
<div id="formularz">
<form method="post" action="kontakt.php">
        
    <label>Imię i nazwisko</label>
    <input name="name" placeholder="np. Karol Serówka">

    <label>Telefon</label>
    <input name="tel" placeholder="np. 785595952">
            
    <label>Email</label>
    <input name="email" type="email" placeholder="np. metalsk@metal-sk.xaa.pl">

    <label>Tytuł wiadomości</label>
    <input name="tytul" placeholder="">
            
    <label>Wiadomość</label>
    <textarea name="message" placeholder="Napisz tu wiadomość"></textarea>
            
    <input id="submit" name="submit" type="submit" value="Wyślij">
        
</form>
</div>
</body>
</html> 

Plik kontakt.php: 
<?php

// Tworzymy zmienną dla imienia i nazwiska
$name = $_POST['name'];

// Tworzymy zmienną dla imienia i nazwiska
$tel = $_POST['tel'];

// Tworzymy zmienną dla adresu email
$email = $_POST['email'];

// Tworzymy zmienną dla wiadomości
$message = $_POST['message'];

// Podajesz adres email z którego ma być wysłana wiadomość
$odkogo = "TwojAdresEmail1@gmail.com";

// Podajesz adres email na który chcesz otrzymać wiadomość
$dokogo = "metalsk@metal-sk.xaa.pl";

// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = $_POST['tytul'];

// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie i nazwisko: " . $name . "\n";
$wiadomosc .= "Telefon: " . $tel . "\n";
$wiadomosc .= "Email: " . $email . "\n";
$wiadomosc .= "Tytuł: " . $tytul . "\n";
$wiadomosc .= "Wiadomość: " . $message . "\n";

// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");

// Przekierowywujemy na potwierdzenie
if ($sukces){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
 
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>
Dysponuje jeszcze plikiem poprawny.php, error.html no i style.css ale wydaje mi się że błąd nie tkwi w żadnym z tych jednakże jeśli się mylę dajcie znać. Proszę was o pomoc. Dzięki

Re: Problem z polskimi znakami

: 10 grudnia 2014, 11:34
autor: Aviator

Kod: Zaznacz cały

 charset=windows-1250 
zamień na

Kod: Zaznacz cały

charset=utf-8

Re: Problem z polskimi znakami

: 10 grudnia 2014, 13:22
autor: sereknr1
Zmieniałem i kombinowałem na kilka sposobów:
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-type" content="text/html; charset=windows-1250" />
żaden z w/w sposobów nie działa tak jak bym tego oczekiwał. W wiadomości wciąż są krzaki przy polskich znakach

Re: Problem z polskimi znakami

: 30 grudnia 2014, 22:32
autor: enforces
utf powinien załątwić spawę. Przed wklejeniem tekstu warto przepuścić tekst przez notatnik

Re: Problem z polskimi znakami

: 30 grudnia 2014, 22:55
autor: drooid
W notepad2 (lub notepad++) otwórz pliki html i zmień im kodowanie na utf8. Jeśli teksty pobierane są z innych plików - również zmień im kodowanie.