Mam nastepujący problem:Wpisując tekst w formularz kontaktowy z polskimi znakami tekst coprawda dochodzi z prawidłowymi polskimi znakami do adresata, lecz jeżeli wpisuję się kod captcha niepoprawnie to stronka ładuje sie ponownie i pojawia się komunikat że kod się nie pokrywa. Wtedy z polskich znaków robią się dziwolągi i ukazuję się znak zapytania przed tymi dziwolągami.
Niestety nie udało mi się znaleźść rozwiązania szukając w googlach oraz na forum php.pl.
Wielkie dzięki za każdą porade! (IMG:
style_emoticons/default/biggrin.gif)
Użyłem kodowania utf-8 (bez BOM) do wszystkich stron.
Kod formularza kontaktowego:<?php
header( 'content-type: text/html; charset=utf-8' ); include 'mail.php';
?>
<form id="ContactForm" method="POST" name="contact_form" action="
<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<div class="column1 col-indent">
<label>Imię i nazwisko:<br /><span class="input"><input type="text" name="name" value="
<?php echo htmlentities($name) ?>" size="25" maxlength="50" /></span></label>
<label>Email:<br /><span class="input"><input type="text" name="mail" value="
<?php echo htmlentities($visitor_email) ?>" size="25" maxlength="50" /></span></label>
<label>Telefon:<br /><span class="input"><input type="text" name="phone" value="
<?php echo htmlentities($phoneno) ?>" size="25" maxlength="50" /></span></label>
</div>
<div class="column2">
Tekst:<br /><div class="text"><textarea name="message" onclick="this.select()" rows="15" cols="30">
<?php echo htmlentities($user_message) ?></textarea></div>
</div>
<div style="margin-top:5px;" class="column1 col-indent">
<img src="captcha_code_file.php?rand=
<?php echo rand(); ?>" id='captchaimg' ><br>
<label style="height:20px;" for='message'>Proszę wpisać kod:</label>
<input id="6_letters_code" name="6_letters_code" type="text" value="" size="25" maxlength="10" ><br>
<small>Nie możesz odczytać? Kliknij <a href='java script: refreshCaptcha();'>tutaj</a> aby odświeżyć</small>
</div> <input style="cursor: pointer; margin-top:72px;" type="submit" value="Wyślij" name='submit'>
</form>
Kod "mail.php":<?php
$your_email ='moj@mail.pl';
//send the email
$to = $your_email;
$subject="Nowy formularz";
$from = $your_email;
$ip = isset($_SERVER['REMOTE_ADDR']) ?
$_SERVER['REMOTE_ADDR'] : '';
$body = "Imie i nazwisko: $name\n".
"Adres mejlowy: $visitor_email \n".
"Numer telefonu: $phoneno \n".
"Wiadomosc: \n ".
"$user_message\n".
"IP: $ip\n";
$headers = "From: $from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
$headers .= "Content-Type: text/plain; charset=utf-8' \r\n";
mail($to, $subject, $body, $headers);
header('Location: thank-you.html'); }
}
?>
Plik ".htaccess" zawiera kod:AddDefaultCharset Off
AddDefault utf-8 .html .htm .php
AddDefaultCharset On
Wielkie dzięki za każdą porade! (IMG:style_emoticons/default/biggrin.gif)