Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz kontaktowy - proszę o pomoc
Forum PHP.pl > Forum > Przedszkole
kamilk2
Mam problem z formularzem kontaktowym i bardzo proszę o pomoc Problem polega na tym że nie rozpoznaje polskich znaków w wiadomości którą wyślę a odbiorca ją otworzy Drugi problem choć mniej kłopotliwy (ale fajnie by było go wyeliminować) jest taki że po wysyłce wiadomości komunikat o treści "Dziękujemy, formularz został wysłany" lub też "Wprowadzony adres E-Mail jest niepoprawny!!! wyświetla mi na nowej stronie a nie na tej na której znajduje się formularz Bardzo proszę o pomoc gdyż sam nie dam rady.

oto kod :

<?php
if(empty($_POST['submit'])){
?>
<form action="aform.php" method="post"> <!--nazwa strony na której znajduje się formularz-->
Wybierz e-mail odbiorcy :<br />
<select name="odbiorca" style="width:72%;">
<option></option>
<option>kkrupka@dartns.pl</option>

</select>
<br />
Imię i Nazwisko :<br />
<input type="text" name="imienazwisko" style="width:70%;"/><br />
Podaj e-mail nadawcy :<br />
<input type="text" name="email" style="width:70%;"/><br />
Treść wiadomości :<br />
<textarea name="trescwiadomosci" cols="30" rows="6" style="width:80%;"></textarea><br />
<input type="submit" name="submit" value="Wyślij formularz"/>
<input type="reset" value="Wyczyść"/>
</form>
<?php
/*sprawdzenie wypełnienia wszystkich pól*/
}elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
/* Funkcja sprawdzająca poprawność E-Maila */
function SprawdzEmail($email) {
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
return false;
}
return true;
}
if(SprawdzEmail($_POST['email'])){
/* Tworzymy szkielet wysyłanej wiadomości */
$adresemail=$_POST['odbiorca'];
$ip=$_SERVER['REMOTE_ADDR'];
/* Wybierz kodowanie znaków usuwając // */
$charset = 'iso-8859-2';
$charset = 'utf-8';
$host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
$wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]";
$nadawca="From: $_POST[email]";
@mail($adresemail, "Formularz kontaktowy z www.dartns.pl", "$wiadomosc", "$nadawca");
echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>";
}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>"; }
?>

nospor
Witaj na forum, gdy wstawiasz kod, uzywaj BBCODE.

$charset = 'iso-8859-2';
$charset = 'utf-8';
Moze sie zdecyduj jakie kodowanie ostatecznie masz?

ps: przenosze

ps2: no i skoro juz ustawiasz ten $charset w zmiennej, to moze zapodaj go tez do maila, by client pocztowy wiedzial w jakim kodowaniu ma to odczytac.
kamilk2
Dzięki za powitanie i szybką odpowiedz ale....

1.wybierałem zarówno 'iso-8859-2' jak i utf-8 i dalej bylo to samo

2."ps2: no i skoro juz ustawiasz ten $charset w zmiennej, to moze zapodaj go tez do maila, by client pocztowy wiedzial w jakim kodowaniu ma to odczytac". -- czyli gdzie mam dołożyć?


nospor
ad1) Wstawiales tylko to do zmiennej a potem nic z tym nie robiles, rownie dobrze mogles wpisac "chinski" i efekt bylby taki sam
ad2) http://php.net/manual/en/function.mail.php
Masz tam w przykladach pokazane jak sie ustawia w email kodowanie
kamilk2
jestem początkujący..... mógłbyś mi to dopisać jak to ma wyglądać?
nospor
otworz link co ci podalem, wpisz fraze "charset" i znajdziesz wybrany kawalek kodu o ktorym mowie
viking
Funkcja eregi jest przestarzała i cała ta funkcji walidująca mail to nieporozumienie. Jakie kodowanie ma w końcu ten mail? unicode czy iiso?
kamilk2
chodzi o ten kawałek kodu? :

// To send HTML mail, the Content-type header must be set
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';


w którym miejscu go wkleić

odp do viking :
" Funkcja eregi jest przestarzała i cała ta funkcji walidująca mail to nieporozumienie. Jakie kodowanie ma w końcu ten mail? unicode czy iiso?"
a jak można ją przekształcić aby było ok? kodowanie chyba iiso (wiem w kodzie jest nie wybrane)


czy ktoś jeszcze poratuje?
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.