Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Kodowanie ogonków w formularzu
Forum PHP.pl > Forum > PHP
TheArt
Witam.

Może kto zerknąć co mam za mistejk bo mi już oczopląs się wdarł.

  1. <?php
  2.  
  3. global $kontakt;
  4.  
  5. $puste = "";
  6.  
  7. $header .= "MIME-Version: 1.0\n";
  8. $header .= "Content-Type: text/plain; charset=\"utf-8\"\n";
  9. $header .= "Content-transfer-encoding: 8bit\n";
  10.  
  11. $Nazwa_firmy = htmlentities ($Nazwa_firmy);
  12. $Osoba_kontaktowa = htmlentities ($Osoba_kontaktowa);
  13. $Numer_telefonu = htmlentities ($Numer_telefonu);
  14. $Adres_email = htmlentities ($Adres_email);
  15. $Zapytanie = htmlentities ($Zapytanie);
  16.  
  17.  
  18. if ($Adres_email != $puste)
  19. {
  20.  
  21. $msg = "Nazwa firmy: $Nazwa_firmy\n";
  22. $msg.= "Osoba kontaktowa: $Osoba_kontaktowa\n";
  23. $msg.= "Numer telefonu: $Numer_telefonu\n";
  24. $msg.= "Adres e-mail: $Adres_email\n";
  25. $msg.= "Zapytanie: $Zapytanie\n";
  26.  
  27. $msg = ereg_replace("?", "?", $msg);
  28. $msg = ereg_replace("?", "?", $msg);
  29. $msg = ereg_replace("?", "?", $msg);
  30. $msg = ereg_replace("?", "?", $msg);
  31. $msg = ereg_replace("?", "?", $msg);
  32. $msg = ereg_replace("ó", "ó", $msg);
  33. $msg = ereg_replace("?", "?", $msg);
  34. $msg = ereg_replace("?", "?", $msg);
  35. $msg = ereg_replace("?", "?", $msg);
  36. $msg = ereg_replace("?", "?", $msg);
  37. $msg = ereg_replace("?", "?", $msg);
  38. $msg = ereg_replace("?", "?", $msg);
  39. $msg = ereg_replace("?", "?", $msg);
  40. $msg = ereg_replace("?", "?", $msg);
  41. $msg = ereg_replace("Ó", "Ó", $msg);
  42. $msg = ereg_replace("?", "?", $msg);
  43. $msg = ereg_replace("?", "?", $msg);
  44. $msg = ereg_replace("?", "?", $msg);
  45.  
  46. $naglowki .= "From: <$Adres_email>\r\n";
  47.  
  48. $send = mail("$toemail", "Zapytanie ze strony www", "$msg", "$naglowki", "$header");
  49. if ($send)
  50. echo ("<br><br><br>Dziękujemy za wysłanie zapytania.<br>");
  51. else
  52. echo ("<center><br><br><br>Zgłoszenie nie zostało wysłane.<br><br> <br>
  53. <a onclick=history.back() style=\"cursor: hand\"><b><font color='#990000'>Prosimy sprawdzić dane.</font></b></a></CENTER>");
  54. }
  55. else
  56. {
  57. echo ("<center><br><br><br>Zgłoszenie nie zostało wysłane.<br><br><br>
  58. <a onclick=history.back() style=\"cursor: hand\"><b><font color='#990000'>Prosimy sprawdzić dane.</font></b></a>
  59. </CENTER>");
  60. }
  61. ?>


oczywiscie chodzi o ogonki, zamiast nich pojawia się &Auml
blooregard
Cytat
Krzaczory w formularzu

Proszę zmienić temat i dodać odpowiedni tag, inaczej post wyląduje w "traszu"
TheArt
Chętnie zmienie temat niestety ten skrypt to dopiero krzaki wstawia. Czy ty mógłbyś to zrobić.

Temat: [PHP] Kodowanie ogonków w formularzu

PS. Robiąc Edytuj zamiast kodu PHP skrypt forum wstawia dziwne znaki przez co później twierdzi że post jest zbyt długi. W sumie to nie da się w tym skrypcie forum edytować.
DiH
Zawsze dziwiły mnie tego typu problemy, więc spytam. Czy masz ustawione kodowanie na stronie z formularzem i na stronie wyświetlającej jego dane? Nie mówię o sekcji meta, tylko o zwykłym ustawieniu kodowania dokumentu. W Notepad ++ jest to np. Format -> Character sets -> Eastern European -> ISO 8859-2.

Być może wystarczy tak zadeklarować nagłówek Twojej strony, a potem po prostu przekonwertować kodowanie dokumentu?
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  5. </head>
TheArt
Chyba nie rozumiem, mówisz żeby spróbować przekonwertować wszystko na iso.
DiH
Wykonać żołnierzu!

edit: Tak, przekonwertować na iso-8859-2 zarówno meta, jak i sam dokument.
TheArt
To jakby cofać się do epoki kamienia, kto teraz pisze cokolwiek w ISO.

Zrobiłem inaczej.

Kod
global $kontakt;
          
           $puste = "";
          
           if ($Adres_email != $puste)
           {
            
           $msg = "Nazwa firmy: $Nazwa_firmy\r\n";
           $msg.= "Osoba kontaktowa: $Osoba_kontaktowa\r\n";
           $msg.= "Numer telefonu: $Numer_telefonu\r\n";
           $msg.= "Adres e-mail: $Adres_email\r\n";
           $msg.= "Zapytanie: $Zapytanie\r\n";
            
            
            /* dodatkowe nagłówki */
            
            $naglowki  = 'MIME-Version: 1.0' . "\r\n";
            $naglowki .= 'Content-type: text/html; charset=utf-8' . "\r\n";
            $naglowki .= "From: <$Adres_email>\r\n";
            
            
            $send = mail("$toemail", "Zapytanie ze strony www", "$msg", "$naglowki");
                            if ($send)
                              echo ("<br><br><br>Dziękujemy za wysłanie zapytania.<br>");
                            else
                               echo ("<center><br><br><br>Zgłoszenie nie zostało wysłane.<br><br>        <br>
                             <a onclick=history.back() style=\"cursor: hand\"><b><font color='#990000'>Prosimy sprawdzić dane.</font></b></a></CENTER>");                
                               }
                                   else
                               {
                                 echo ("<center><br><br><br>Zgłoszenie nie zostało wysłane.<br><br><br>
                        <a onclick=history.back() style=\"cursor: hand\"><b><font color='#990000'>Prosimy sprawdzić dane.</font></b></a>
                        </CENTER>");
           }
                            ?>


Tylko teraz w przeglądarce nie wypisuje znaków końca linii tylko wszystko leje jednym ciągiem, ma kto idee.
DiH
Cóż, patrząc na Twój kod - wybacz, ale nie masz prawa wypowiadać się na temat kodowania "jak w epoce kamienia". Bez urazy, ale zanim zaczniesz myśleć o kontynuowaniu czegokolwiek związanego z php (o twoich html'owych tworach nie wspominając) poczytaj proszę jak złączyć zmienną ze stringiem, lub inną zmienną.

Edit: A najlepiej przejrzyj kurs php od podstaw. Polecam: www.w3schools.com/PHP/DEfaULT.asP
darophp
A żebyś wiedział, że ja pisze w ISO-8859-2 tongue.gif Co do kodu- okropny, jak już było powiedziane, zmień na 1.0 Strict
TheArt
Akurat ten form to dawny zakup, zresztą przechodzi walidację.
tomeknh
<?php
header('Content-Type: text/html; charset=utf-8');
?>

+

odpowiedni header w html

+

odpowiednie kodowanie przy zapisie pliku

=

100% dobre ogonki :-)
TheArt
Stary opowiadasz, czytaj co pisaliśmy wyżej to się dowiesz jak zrobić by były ogonki, to co opisałeś to tylko część, resztę patrz kodzik number 7.
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.