mam taki problem. Na stronie mam formularz kontaktowy napisanyw php. Strona ustawiona ma utf-8. W skrypcie formularza mam ustawione konwertowanie z utf-8 na iso, no i konwerutuję dobrze tytuł, adresata, ale już sama treść znika po pierwszym polskim znaku. Czyli np. oryginalna wiadomość to "Nowa wiadomość ze strony", to na skrzynce pojawia mi się tylko "Nowa wiadomo". Tutaj kody formularza:
<?php class mirvanosContact { var $content = ''; var $template = ''; var $mail_email = ''; var $mail_name = ''; var $mail_content = ''; public function __construct() { $m = 'Brak pliku konfiguracyjnego mirvanos_contact_config.php !'; exit; } require_once('mirvanos_contact_config.php'); $m = 'Brak pliku szablonu mirvanos_contact_template.html !'; exit; } } // Uwaga ! $this->template = "\n".'<!-- Skrypt kontaktu by mirvanos.org -->'."\n".$this->template; $this->parse(); else $this->content .= $this->template; } private function parse() { $m = 'Proszę, podaj prawidłowy adres e-mail'; $this->content .= $this->errorMessage($m); $this->content .= $this->alertMessage($m); $this->content .= $this->template; return false; } $m = 'Proszę, podaj swoje imię i nazwisko'; $this->content .= $this->errorMessage($m); $this->content .= $this->alertMessage($m); $this->content .= $this->template; return false; } $m = 'Proszę, przepisać tekst z obrazka poprawnie'; $this->content .= $this->errorMessage($m); $this->content .= $this->alertMessage($m); $this->content .= $this->template; return false; } $this->mail_content = 'Nowa wiadomość od <b> '.$this->mail_name.' </b> <br />'."\n"; $this->mail_content .= 'Adres email <a href="'.$this->mail_email.'">'.$this->mail_email.' </a> <br />'."\n"; $this->mail_content .= 'Adres IP <b> '.$_SERVER["REMOTE_ADDR"].' </b> <br />'."\n\n"; $this->mail_content .= " <br /><br />\n\n "; if(USE_ICONV_CONVERT) { $this->mail_content = iconv('UTF-8', 'ISO-8859-2', $this->mail_content); $this->mail_name = iconv('UTF-8', 'ISO-8859-2', $this->mail_name); } if($this->sendMail()) { $this->mail_email = ''; $this->mail_name = ''; $this->mail_content = ''; $this->template = ''; } } private function checkEmail($email='') { } private function checkCode($code='') { return false; if($_SESSION['AntitokenID']!=$code) return false; return true; } private function sendMail() { require_once(CLASS_PHPMAILER); $mail = new PHPMailerLite(); $mail->isMail(); $mail->setFrom($this->mail_email, $this->mail_name); $mail->CharSet = 'iso-8859-2'; if(USE_ICONV_CONVERT) { $mail->Subject = iconv('UTF-8', 'ISO-8859-2', MAIL_SUBJECT); } else $mail->Subject = MAIL_SUBJECT; $mail->MsgHTML( $this->mail_content ); $mail->AddAddress(ADRES_EMAIL, TWOJA_NAZWA); if(!$mail->Send()) { $m = 'WystÄ‌piĹ‚ bĹ‚Ä‌d w wysyĹ‚ce maila :( '.$mail->ErrorInfo." <br /> \n"; $this->content .= $this->errorMessage($m); $this->content .= $this->alertMessage($m); return false; } // Clear all addresses and attachments $mail->ClearAddresses(); $mail->ClearAttachments(); $m = WIADOMOSC_ZOSTALA_WYSLANA; $this->content .= $this->errorMessage($m); $this->content .= $this->alertMessage($m); return true; } private function alertMessage($message='') { return '<script type="text/javascript"> alert(\''.$message.'\'); </script>'."\n"; } private function errorMessage($message='') { return '<b class="mirvanos_error">'.$message.'</b>'; } public function getHtml() { return $this->content; } public function getMailName() { return $this->mail_name; } public function getMailEmail() { return $this->mail_email; } public function getMailContent() { return $this->mail_content; } }
<?php // sciezka do styli formularza, mozna dac pusta // sciezka do klasy phpmailera //temat maila // Twoj adres email, na niego przyjda wiadomosci // Twoje Imie i nazwisko - aby mail ladnie wygladal :) // Komunikat na stronie po wyslaniu maila define('WIADOMOSC_ZOSTALA_WYSLANA', 'Dziękujemy! Wiadomość została wysłana - Postaramy się odpowiedzieć jak najszybciej. '); // czy uzywac obrazkow CAPTCHA do zabezpieczenia przed botami - zalecane // zmiana z utf8 na iso-8859-2