logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

php/html - brak polskich znakow po wyslaniu wiadomosci

sebbcio 19 Sie 2015 13:07 1797 13
REKLAMA
  • #1 14931985
    sebbcio
    Poziom 9  
    Posty: 8
    Witam...
    Niezbyt orietuje sie w programowaniu dlatego prosze o pomoc

    wszystkie strony napisane sa w html-u procz podstrony contact
    ona jest zapisana jako php
    wszystko ladnie dziala, sa polskie znaki, lecz w momencie wyslania wiadomosci na skrzynke trafia tekst bez polskich znakow

    moze ktos wie co nalezalo by umiescic i w ktorym miejscu by wszystko dzialalo

    Kod: HTML, XML
    Zaloguj się, aby zobaczyć kod


    dalej jest srodek strony i na koncu chcialem umiescic formularz wysylania maili ktory znalazlem w necie
    dziala lecz po otrzymaniu wiadomosci brak polskich znakow

    Kod: PHP
    Zaloguj się, aby zobaczyć kod


    Z gory dziekuje za pomoc
  • REKLAMA
  • #3 14932148
    mondo90
    Poziom 13  
    Posty: 165
    Pomógł: 2
    Ocena: 2
    Dwie sprawy,

    pierwsza, plik przed wgraniem na server musi być odpowiednio zapisany (z odpowiednim kodowaniem), może być UTF-8. Bez tego, nawet poprawny charset w HTML nie pomoże.
    Druga kwestia to ustaw kodowanie najlepiej na: ISO 8859-16.

    Mam nadzieję, że pomogło ;)
  • #4 14932190
    rufek90
    Poziom 25  
    Posty: 463
    Pomógł: 106
    Ocena: 58
    mondo90 napisał:
    Dwie sprawy,

    pierwsza, plik przed wgraniem na server musi być odpowiednio zapisany (z odpowiednim kodowaniem), może być UTF-8. Bez tego, nawet poprawny charset w HTML nie pomoże.
    Druga kwestia to ustaw kodowanie najlepiej na: ISO 8859-16.

    Mam nadzieję, że pomogło ;)


    Raczej nie pomogło. Autorowi chodzi o to, że wiadomość wysłana przez użytkownika zawierająca polskie znaki, na mail już przychodzi bez polskich znaków.

    Prawdopodobnie problem jest w linii:

    Kod: PHP
    Zaloguj się, aby zobaczyć kod



    Ale tu powinien ktoś od PHP poradzić, jakich funkcji należy użyć aby nie zabierały polskich znaków.

    Autor może jedynie na razie wpisać TESTOWO takie coś zamiast powyższej linii i sprawdzić, czy działa:

    Kod: PHP
    Zaloguj się, aby zobaczyć kod


    Edit: Możesz też dla testu wyświetlić sobie $_POST['your_message'];
  • REKLAMA
  • #5 14932225
    sebbcio
    Poziom 9  
    Posty: 8
    mondo90 napisał:
    Dwie sprawy,

    pierwsza, plik przed wgraniem na server musi być odpowiednio zapisany (z odpowiednim kodowaniem), może być UTF-8. Bez tego, nawet poprawny charset w HTML nie pomoże.
    Druga kwestia to ustaw kodowanie najlepiej na: ISO 8859-16.

    Mam nadzieję, że pomogło :wink:


    teraz przechodza polskie znaki lecz na stronie pojawily sie teraz te zle

    rufek90 napisał:
    Prawdopodobnie problem jest w linii:


    Kod: php [rozwiń]
    [zaznacz wszystko]

    $yourmessage = stripslashes(strip_tags($_POST['your_message']));




    Ale tu powinien ktoś od PHP poradzić, jakich funkcji należy użyć aby nie zabierały polskich znaków.

    Autor może jedynie na razie wpisać TESTOWO takie coś zamiast powyższej linii i sprawdzić, czy działa:


    Kod: php [rozwiń]
    [zaznacz wszystko]

    $yourmessage = $_POST['your_message'];




    niestety nie dziala ta zamiana
  • #6 14932247
    mondo90
    Poziom 13  
    Posty: 165
    Pomógł: 2
    Ocena: 2
    sebbcio napisał:

    teraz przechodza polskie znaki lecz na stronie pojawily sie teraz te zle


    *Te złe* to znaczy jakie ? Co wysyłasz, a co otrzymujesz ?

    PS: Ustawiłeś kodowanie po stronie servera SMTP odpowiednio, tak jak pisałem ?
  • REKLAMA
  • #7 14932271
    sebbcio
    Poziom 9  
    Posty: 8
    wiec tak:
    gdy jest kodowanie UTF-8 wszystko wyglada dobrze
    wysylasz polskie znaki żźć otrzymujesz Ĺź Ĺş ć

    gdy przestawisz na ISO 8859-16 te znaki sa widoczne na stronie zamiast polskich znaków a wiadomosc przechodzi z dobrymi znakami

    kodowania po stronie serwera nie ustawialem bo wiadomosc odbierana jest na portalu
  • #8 14933711
    LED5W
    Poziom 34  
    Posty: 2302
    Pomógł: 264
    Ocena: 162
    A gdzie masz nagłówek maila informujący o kodowaniu?
  • REKLAMA
  • #9 14934172
    sebbcio
    Poziom 9  
    Posty: 8
    nagłówek tez nic nie zmienia... chyba ze w zlym miejscu wstawiam, lecz próbowałem w kilku i nic to nie zmieniało
  • #10 14936310
    LED5W
    Poziom 34  
    Posty: 2302
    Pomógł: 264
    Ocena: 162
    W kilku miejscach? Pokaż kod.
  • #11 14936618
    sebbcio
    Poziom 9  
    Posty: 8
    strona zapisana z rozszerzeniem .php
    początek kodu strony

    Kod: HTML, XML
    Zaloguj się, aby zobaczyć kod


    dalej tresc strony

    ten kod .php umieszczalem kilku miejscach

    Kod: PHP
    Zaloguj się, aby zobaczyć kod



    Kod: PHP
    Zaloguj się, aby zobaczyć kod
  • #12 14938308
    LED5W
    Poziom 34  
    Posty: 2302
    Pomógł: 264
    Ocena: 162
    Czy serwer w nagłówku HTTP wysyła kodowanie zgodne z określonym w HTML?

    sebbcio napisał:
    ten kod .php umieszczalem kilku miejscach
    Przecież nie ma znaczenia, w którym z tych miejsc umieścisz ten kod... :|

    Zamień
    Kod: PHP
    Zaloguj się, aby zobaczyć kod
    na
    Kod: PHP
    Zaloguj się, aby zobaczyć kod
  • #13 14943134
    sebbcio
    Poziom 9  
    Posty: 8
    dzieki... po lekkich modyfikacjach ruszylo

    nie wiem czemu teraz w skrzynce odbiorczej w kolumnie "od" pojawia sie dziwny nadawca "ktos@domena.pl"
    wczesniej nadawca byl to adres osoby ktora wysylala maila

    dolozylem pole adresata do wyswietlanej zawartosci maila bo znikl
    kod po zmianach wyglada tak

    Kod: PHP
    Zaloguj się, aby zobaczyć kod


    jakis pomysl by w skrzynce odbiorczej w kolumnie "od" pojawial sie adres nadawcy
  • #14 14944261
    LED5W
    Poziom 34  
    Posty: 2302
    Pomógł: 264
    Ocena: 162
    sebbcio napisał:
    Kod: PHP
    Zaloguj się, aby zobaczyć kod
    Nie zmieniłeś tego tak, jak napisałem. Dodatkowo masz pewnie gdzieś wcześniej zbędnie zdefiniowaną zmienną $headers.

Podsumowanie tematu

✨ Użytkownik zgłosił problem z brakiem polskich znaków w wiadomościach wysyłanych z formularza kontaktowego na stronie PHP. Po wysłaniu wiadomości z polskimi znakami, tekst dociera do skrzynki odbiorczej w niepoprawnej formie. W odpowiedziach zasugerowano, aby upewnić się, że plik jest zapisany w kodowaniu UTF-8 oraz aby ustawić odpowiednie nagłówki w wiadomości e-mail. Po kilku próbach i modyfikacjach kodu, problem z polskimi znakami został częściowo rozwiązany, jednak pojawił się nowy problem z adresem nadawcy w wiadomości e-mail. Użytkownik został poinstruowany, aby poprawić sposób definiowania nagłówków, aby adres nadawcy był zgodny z adresem osoby wysyłającej wiadomość.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA