Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Brak polskich znaków w formularzu - again, Laik prosi o pomoc
surow
post 11.09.2018, 11:06:24
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.11.2008

Ostrzeżenie: (0%)
-----


Witam,

Na wstępie przyznam się ze jestem laikiem w PHP a stronę robię dla siebie.
Przeczytałem chyba z 20 stron z różnymi rozwiązaniami niestety nie dzialaja dla mnie bądź coś robię źle.

Próbowałem wklejać w rożne miejsca:

  1. $headers.= "Content-Type: text/plain;charset=utf-8 \r\n";


Będę wdzieczny za każdą pomoc.
Poniżej wycinek ze strony HTML i z skryptu PHP

  1. <form method="post" action="kontakt.php" accept-charset="utf-8">
  2. <label>Imię i nazwisko</label>
  3. <input name="name" placeholder="Jan Kowalski">
  4.  
  5. <label>Email</label>
  6. <input name="email" type="email" placeholder="Podaj swój adres email">
  7.  
  8. <label>Wiadomość</label>
  9. <textarea name="message" placeholder="Napisz tu wiadomość"></textarea>
  10. <label>Wpisz kod z obrazka</label>
  11. <input name="token" type="text" value="" placeholder="Wpisz kod z obrazka">
  12. <img src="token.php" alt="token" />
  13. <input id="submit" name="submit" type="submit" value="Wyślij">
  14.  
  15. </form>


oraz PHP

  1. <?php
  2. if ($_POST['token']==$_SESSION['captcha'])
  3. {
  4. echo "Wpisałeś poprawny kod.";
  5.  
  6. // Tworzymy zmienną dla imienia i nazwiska
  7. $name = $_POST['name'];
  8.  
  9. // Tworzymy zmienną dla adresu email
  10. $email = $_POST['email'];
  11.  
  12. // Tworzymy zmienną dla wiadomości
  13. $message = $_POST['message'];
  14.  
  15. // Podajesz adres email z którego ma być wysłana wiadomość
  16. $odkogo = " info@test.pl";
  17.  
  18. // Podajesz adres email na który chcesz otrzymać wiadomość
  19. $dokogo = " info@test.pl";
  20.  
  21. // Podajesz tytuł jaki ma mieć ta wiadomość email
  22. $tytul = "Formularz kontaktowy";
  23.  
  24. // Przygotowujesz treść wiadomości
  25. $wiadomosc = "";
  26. $wiadomosc .= "Imie i nazwisko: " . $name . "\n";
  27. $wiadomosc .= "Email: " . $email . "\n";
  28. $wiadomosc .= "Wiadomosc: " . $message . "\n";
  29. // Wysyłamy wiadomość
  30.  
  31. $sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");
  32. }
  33. else
  34. {
  35. echo "Wpisany kod jest niepoprawny.";
  36. }
  37.  
  38. // Przekierowywujemy na potwierdzenie
  39. if ($sukces){
  40. print "<meta http-equiv=\"refresh\" content=\"0;URL=contact.html\">";
  41. }
  42. else{
  43. print "<meta http-equiv=\"refresh\" content=\"0;URL=contacts.html\">";
  44. }
  45. ?>


Ten post edytował surow 11.09.2018, 11:08:37
Go to the top of the page
+Quote Post
trueblue
post 11.09.2018, 11:58:00
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


https://www.google.pl/search?q=php+brak+pol...te:forum.php.pl


--------------------
Go to the top of the page
+Quote Post
surow
post 11.09.2018, 12:11:33
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.11.2008

Ostrzeżenie: (0%)
-----


To żeś się wysilił, już przeczytałem całego googla i nada nie wiem jak to ogarnąć.
Myślałem ze forum jest po to żeby pomagać a nie wklejać link do google thumbsdownsmileyanim.gif
Go to the top of the page
+Quote Post
viking
post 11.09.2018, 12:19:35
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A dokumentację czytałeś? Bo masz tam pełno przykładów jak prawidłowo zakodować znaki w mailu utf-8.


--------------------
Go to the top of the page
+Quote Post
nospor
post 11.09.2018, 12:26:42
Post #5





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
już przeczytałem całego googla
I tym o to sposobem wiemy juz, ze klamiesz smile.gif No i po co tak? A internet pewnie CALY tez juz zgrales na dyskietke? wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
surow
post 11.09.2018, 14:06:21
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.11.2008

Ostrzeżenie: (0%)
-----


Panowie bez nerw, jestem elektronikiem nie programista niewiele z tego kumam a korzystałem z gotowców.
Strona jest prywatna i nie robię tego zarobkowo.
Liczyłem ze ktoś powie wklej to tu i będzie git wink.gif

dodałem na początku ale dalej krzaczy, co robię nie tak??

  1. <?php
  2. header("Content-Type: text/html; charset=utf-8");
  3. if ($_POST['token']==$_SESSION['captcha'])
  4. {
  5. echo "Wpisałeś poprawny kod.";
  6.  
  7. // Tworzymy zmienną dla imienia i nazwiska
  8. $name = $_POST['name'];
  9.  
  10. // Tworzymy zmienną dla adresu email
  11. $email = $_POST['email'];
  12.  
  13. // Tworzymy zmienną dla wiadomości
  14. $message = $_POST['message'];
  15.  
  16. // Podajesz adres email z którego ma być wysłana wiadomość
  17. $odkogo = " info@test.pl";
  18.  
  19. // Podajesz adres email na który chcesz otrzymać wiadomość
  20. $dokogo = " info@test.pl";
  21.  
  22. // Podajesz tytuł jaki ma mieć ta wiadomość email
  23. $tytul = "Formularz kontaktowy";
  24.  
  25. // Przygotowujesz treść wiadomości
  26. $wiadomosc = "";
  27. $wiadomosc .= "Imie i nazwisko: " . $name . "\n";
  28. $wiadomosc .= "Email: " . $email . "\n";
  29. $wiadomosc .= "Wiadomosc: " . $message . "\n";
  30. // Wysyłamy wiadomość
  31.  
  32. $sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");
  33. }
  34. else
  35. {
  36. echo "Wpisany kod jest niepoprawny.";
  37. }
  38.  
  39. // Przekierowywujemy na potwierdzenie
  40. if ($sukces){
  41. print "<meta http-equiv=\"refresh\" content=\"0;URL=contact.html\">";
  42. }
  43. else{
  44. print "<meta http-equiv=\"refresh\" content=\"0;URL=contacts.html\">";
  45. }
  46. ?>
Go to the top of the page
+Quote Post
leonpro778
post 11.09.2018, 14:28:33
Post #7





Grupa: Zarejestrowani
Postów: 146
Pomógł: 19
Dołączył: 1.03.2012

Ostrzeżenie: (0%)
-----


Temat: Funkcja mail a polskie znaki
Go to the top of the page
+Quote Post
surow
post 12.09.2018, 10:32:48
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.11.2008

Ostrzeżenie: (0%)
-----


okey poddaje się dwa dni walki wystarczy. Próbowałem wklejać w rożne miejsca i albo się nie wysyła albo dostaje ten text w mailu.
Go to the top of the page
+Quote Post
trzczy
post 12.09.2018, 11:33:11
Post #9





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Warto spytać support hostingu, bo wiele zależy od konfiguracji programu pocztowego.
Go to the top of the page
+Quote Post
Czikusek
post 12.09.2018, 11:53:13
Post #10





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 11.07.2018

Ostrzeżenie: (0%)
-----


Dodaj zaraz po <?php

ob_start();

dodatkowo pamiętaj, żeby pliki zapisywać w formacie UTF-8 BEZ BOM (np. przez notepad).

to: mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>"); zamień na:
Kod
$from = $od_kogo;
$naglowek = "From: $from\r\n";
$naglowek .= "Reply-To: $from\r\n";
$naglowek .= "MIME-Version: 1.0\r\n";
$naglowek .= 'Content-type: text/html; charset=utf-8' . "\r\n";

mail($dokogo, $tytul, $wiadomosc, $naglowek);


pozdro aarambo.gif

Ten post edytował Czikusek 12.09.2018, 11:57:04
Go to the top of the page
+Quote Post
surow
post 12.09.2018, 13:28:47
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.11.2008

Ostrzeżenie: (0%)
-----


Czikusek jesteś wielki!!!!!!!!!! Ale looknij bo może coś skopałem wink.gif

Dostaje maila, we From brakuje adresu email, ponadto można to posortować aby info było?:

Imie i nazwisko: ąą
Email: ww@ki.pl
Wiadomosc: ąąśś



  1. <?php
  2. if ($_POST['token']==$_SESSION['captcha'])
  3. {
  4. echo "Wpisałeś poprawny kod.";
  5.  
  6. // Tworzymy zmienną dla imienia i nazwiska
  7. $name = $_POST['name'] ;
  8.  
  9. // Tworzymy zmienną dla adresu email
  10. $email = $_POST['email'];
  11.  
  12. // Tworzymy zmienną dla wiadomości
  13. $message = $_POST['message'];
  14.  
  15. // Podajesz adres email z którego ma być wysłana wiadomość
  16. $odkogo = " info@test.pl";
  17.  
  18. // Podajesz adres email na który chcesz otrzymać wiadomość
  19. $dokogo = " info@test.pl";
  20.  
  21. // Podajesz tytuł jaki ma mieć ta wiadomość email
  22. $tytul = "Formularz kontaktowy";
  23.  
  24. // Przygotowujesz treść wiadomości
  25. $wiadomosc = " ";
  26. $wiadomosc .= "Imie i nazwisko: " . $name . "\r\n" ;
  27. $wiadomosc .= "Email: " . $email . "\r\n";
  28. $wiadomosc .= "Wiadomosc: " . $message . "\r\n";
  29. // Wysyłamy wiadomość
  30. $from = $od_kogo;
  31. $naglowek = "From: $from\r\n";
  32. $naglowek .= "Reply-To: $from\r\n";
  33. $naglowek .= "MIME-Version: 1.0\r\n";
  34. $naglowek .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  35.  
  36. $sukces = mail($dokogo, $tytul, $wiadomosc, $naglowek);
  37. }
  38. else
  39. {
  40. echo "Wpisany kod jest niepoprawny.";
  41. }
  42.  
  43. // Przekierowywujemy na potwierdzenie
  44. if ($sukces){
  45. print "<meta http-equiv=\"refresh\" content=\"0;URL=contact.html\">";
  46. }
  47. else{
  48. print "<meta http-equiv=\"refresh\" content=\"0;URL=form.html\">";
  49. }
  50. ?>


Okey ogarnąłem łamanie linij zmieniając na plain:

  1. $naglowek .= 'Content-type: text/plain; charset=utf-8' . "\r\n";


Jeszcze tylko ten email w From wink.gif

Ten post edytował surow 12.09.2018, 13:29:30
Go to the top of the page
+Quote Post
nospor
post 12.09.2018, 14:36:35
Post #12





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




ten ob_start jest tu totalnie zbedny. Nie dosc ze ma sie nijak do wysylki email to i ma sie nijak do calosci kodu tutaj.

Co do brakujacego from to znajdz 10 roznic
$od_kogo;
$odkogo;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
surow
post 12.09.2018, 14:48:13
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.11.2008

Ostrzeżenie: (0%)
-----


10 punktów za spostrzegawczość nospor.
Wywaliłem ob_start i działa tez bez tego.
Tylko ze w polu From dostaje mój adres info@test.pl można jakoś przechwycić i wkleić adres z formularza??
Nie wiem czy dobrze bedzie ale np:
zamiast

$from = $odkogo;

na

$from = $email;

Czy tak będzie dobrze?? Tzn wygląda mail okey tylko czy to zgodnie ze sztuka?
Go to the top of the page
+Quote Post
nospor
post 12.09.2018, 15:01:10
Post #14





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Tak, to jest ok


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
surow
post 12.09.2018, 15:03:53
Post #15





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.11.2008

Ostrzeżenie: (0%)
-----


Dziękuje wszystkim za pomoc mój problem został rozwiązany.
specool.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 15:06