Problem z polskimi znakami

Forum poświęcone skryptom, językom programowania, serwerom i hostingowi, domenom itp.
sereknr1
Posty: 7
Rejestracja: 10 grudnia 2014, 08:56

Problem z polskimi znakami

Post autor: sereknr1 » 10 grudnia 2014, 09:07

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
Ostatnio zmieniony 10 grudnia 2014, 11:36 przez Aviator, łącznie zmieniany 1 raz.
Powód: Kod zamieszczamy w znaczniki [code][/code]

Aviator
Administrator
Posty: 2089
Rejestracja: 07 czerwca 2011, 22:14
Lokalizacja: ZS

Re: Problem z polskimi znakami

Post autor: Aviator » 10 grudnia 2014, 11:34

Kod: Zaznacz cały

 charset=windows-1250 
zamień na

Kod: Zaznacz cały

charset=utf-8
-=Jeżeli w moim poście brakuje znaków diakrytycznych, oznacza to, że posta wyklepałem przez telefon=-

sereknr1
Posty: 7
Rejestracja: 10 grudnia 2014, 08:56

Re: Problem z polskimi znakami

Post autor: sereknr1 » 10 grudnia 2014, 13:22

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

enforces
Posty: 2
Rejestracja: 30 grudnia 2014, 22:28

Re: Problem z polskimi znakami

Post autor: enforces » 30 grudnia 2014, 22:32

utf powinien załątwić spawę. Przed wklejeniem tekstu warto przepuścić tekst przez notatnik

drooid
Posty: 23
Rejestracja: 27 grudnia 2014, 15:06
Kontakt:

Re: Problem z polskimi znakami

Post autor: drooid » 30 grudnia 2014, 22:55

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.

ODPOWIEDZ

Wróć do „Webmastering”