Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz kontaktowy - "krzaczki" zamiast PL
Forum PHP.pl > Forum > PHP
mkrupinski
Witam, bardzo proszę o pomoc co zrobić, żeby formularz kontaktowy wysyłał wiadomość z polskimi znakami, a nie z "krzaczkami" ?


Kod
<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
    $error.="Invalid email address entered";
    $errors=1;
}
if($errors==1) echo $error;
else{
    $values = array ('name','email','message');
    $required = array('name','email','message');
    
    $your_email = "nazwa@domena.pl";
    $email_subject = "Wiadomość z formularza www: ".$_POST['subject'];
    $email_content = "new message:\n";
    
    foreach($values as $key => $value){
      if(in_array($value,$required)){
        if ($key != 'subject' && $key != 'company') {
          if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
        }
        $email_content .= $value.': '.$_POST[$value]."\n";
      }
    }
    
    if(@mail($your_email,$email_subject,$email_content)) {
        echo 'Message sent!';
    } else {
        echo 'ERROR!';
    }
}
?>


Z góry dzięki wielkie za pomoc snitch.gif
Rid
Krzaczki podczas wysłania ,to nie jest wina kodu ,ale strony kodowej której używasz -jeśli używasz latin1 a mianowicie strony kodowej ISO-8859-1 to polskich znaków nie będziesz miał, ponieważ w tablicy znaków tegoż kodowania,polskich znaków nie ma.Jak masz w latin 1 to musisz skonwertować pliki do UTF-8 albo iso-8859-2.W metatagach jak header'ach poustawiać na utf-8 lub ISO-8859-2 w zależności co wybierzesz
www.aukcje.fm
Hej, dodaj to gdzie masz łączenie z bazą (config.php)

mysql_query ('SET NAMES latin2');

lub jak masz utf-8 to


mysql_query ('SET NAMES utf-8');


Może pomoże... smile.gif
modern-web
A gdzie ustawiłeś kodowanie wysyłanej wiadomości!?
Przytoczę Ci pewien przykład na podstawie którego będziesz mógł rozwiązać swój problem:

  1. skrypt...//
  2.  
  3. $charset = 'ISO-8859-2';
  4.  
  5. skrypt...//
  6.  
  7. $head =
  8. "MIME-Version: 1.0\r\n" .
  9. "Content-Type: text/plain; charset=$charset\r\n" .
  10. "Content-Transfer-Encoding: 8bit";
  11.  
  12. skrypt...//


Musisz zdefiniować charset winksmiley.jpg
Pozdrawiam!
toaspzoo
W sekcji head
wpisz
  1. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
magu112
w kodzie html w nagłówku daj
  1. <meta http-equiv="Content-Language" content="pl">
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

i w kodzie php daj header na początku kodu
  1. header('Content-type: text/html; charset=iso-8859-2');
lord2105
zwróć jeszcze uwagę na edytor, w ktorym edytujesz pliki czy on zapisuje w ISO
krzysztof_kf
@mkrupinski a przed założeniem tematu użyłeś Wyszukiwarki
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.