Поменяй метатег у страницы с формой и поставь кириллическую локаль в файлах с обработчиком. Должно работать.
Это один и тот же файл.. HTML: <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
PHP: <? setlocale(LC_ALL, "ru_RU.cp1251"); session_start(); $title = "Гостевая книга / Факультет Начальных Классов"; if ($sent == '1' && $bot == '') { if (($_POST['name'] == '') || ($_POST['message'] == '')) { $content = 'Заполнены не все поля отмеченеые знаком "*" !!!'; } else { if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']) { $_POST['name'] = str_replace('~','',htmlentities(trim($_POST['name']))); $_POST['e_mail'] = str_replace('~','',htmlentities(trim($_POST['e_mail']))); $_POST['message'] = str_replace('~','',htmlentities(trim($_POST['message']))); /* $_POST['name'] = convert_cyr_string ($_POST['name'], 'm', 'w'); $_POST['e_mail'] = convert_cyr_string ($_POST['e_mail'], 'm', 'w'); $_POST['message'] = convert_cyr_string ($_POST['message'], 'm', 'w'); */ $t1=chr(10); $t2=chr(13); $_POST['message'] = str_replace($t1,'<br>',$_POST['message']); $_POST['message'] = str_replace($t2,'<br>',$_POST['message']); if (file_exists('./service/guestbook/guest_base.txt')) { $output = "\n\r"; } $comment = fopen('./service/guestbook/guest_base.txt','a'); $output .= $_POST['name']."~".$_POST['e_mail']."~".$_POST['message']; fputs($comment,$output); fclose($comment); $content = 'Сообщение добавлено.<meta http-equiv="refresh" content="3; url=index.php?style={style}&page={page}"><br>Если Ваш браузер не поддерживает переадресацию, намите <a href="index.php?style={style}&page={page}">здесь</a>'; } else { $content = 'Не верный код подтверждения!!!'; } } unset($_SESSION['captcha_keystring']); } elseif ($_POST['sent'] == '1' && $_POST['bot'] != '') { $content = 'Ботам вход запрещен :)'; } else { $content .= ' <script language="JavaScript"> function makevisible(id) { id.style.position = \'\'; id.style.visibility = \'\'; } function makeinvisible(id) { id.style.position = \'absolute\'; id.style.visibility = \'hidden\'; } function change(id,id_img) { if (id.style.position == \'absolute\') { makevisible(id,id_img); } else { makeinvisible(id,id_img); } } if (self.screen) { width = screen.width height = screen.height } else if (self.java) { var jkit = java.awt.Toolkit.getDefaultToolkit(); var scrsize = jkit.getScreenSize(); width = scrsize.width; height = scrsize.height; }else{ width = height = \'100%\' } </script> <p align="center"><a onclick=javascript:change(guest); href="javascript:void(0)">Добавить запись</a> <p> <DIV id="guest" style="VISIBILITY: hidden; POSITION: absolute"> <form method="POST" acion="index.php?style={style}&ln={ln}&page=guestbook"> <table border="0"> <tr> <td>Введите Ваше имя*:</td> <td><input type="text" size="20" name="name"></td> </tr> <tr> <td>Введите Ваш E-Mail:</td> <td><input type="text" size="20" name="e_mail"></td> </tr> <tr> <td>Введите Ваше сообщение*:</td> <td><textarea name="message" rows="5" cols="20"></textarea></td> </tr> <tr> <td>Введите код подтверждения:*<p align="center"><img src="./service/captcha/?<?php echo session_name()?>=<?php echo session_id()?>"></td> <td><input type="text" name="keystring" size="15"></td> </tr> <tr> <td colspan="2"> <input type="hidden" size="1" name="bot" value=""> <input type="hidden" size="1" name="sent" value="1"> <input type="submit" name="sunmit" value="Отправить"> <input type="reset" name="reset" value="Сброс"> </td> </tr> </table> </form> </div>'; $read_file = @file('./service/guestbook/guest_base.txt'); //$read_file = iconv("MAC", "WINDOWS-1251", "$read_file"); //$read_file = charset_x_win ($read_file); $temp = count($read_file)-1; for ($i = $temp; $i>=0; $i--) { $element = explode('~',$read_file[$i]); $element[2] = str_replace (':)','<img src="./service/guestbook/img/01.gif">', $element[2]); $element[2] = str_replace (':-)','<img src="./service/guestbook/img/01.gif">', $element[2]); $element[2] = str_replace (':(','<img src="./service/guestbook/img/02.gif">', $element[2]); $element[2] = str_replace (':-(','<img src="./service/guestbook/img/02.gif">', $element[2]); $element[2] = str_replace (';)','<img src="./service/guestbook/img/03.gif">', $element[2]); $element[2] = str_replace (';-)','<img src="./service/guestbook/img/03.gif">', $element[2]); $content .= ' <table border="1" width="100%" cellspacing="1" style="border-collapse: collapse" bordercolor="#000000"> <tr> <td align="center"><b><font size="4">'.$element[0].'</font></b></td> <td align="center"><b><font size="4">'.$element[1].'</font></b></td> </tr> <tr> <td colspan="2" align="justify">'.$element[2].'</td> </tr> </table><hr>'; } } ?>
Она не совпадает. Узнайте исходную в файле и перекодируйте в рабочую. Посоветовался с Ti. Ti кретикует афтора: какова куя афтор в iconv и иже с ними пихает массиф, когда нада строку? $read_file ведь массиф!
PHP: <? for ($i = $temp; $i>=0; $i--) { $read_file[$i] = convert_cyr_string ($read_file[$i], 'm', 'w'); //$read_file[$i] = iconv("MAC", "WINDOWS-1251", $read_file[$i]); //$read_file[$i] = charset_x_win ($read_file[$i]);
поиграца с кодировками. $read_file[$i] = convert_cyr_string ($read_file[$i], 'k', 'w'); $read_file[$i] = convert_cyr_string ($read_file[$i], 'i', 'w'); $read_file[$i] = convert_cyr_string ($read_file[$i], 'a', 'w'); одна из строк может быть Вашей