Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Обращаюсь к профессионалам.


Автор: mihai 13.12.2009, 17:29
Господа программисты помагите.
писал на трёх форумах,
ответа не получил,
писал в суппорт хостингов,
там одни отписки
обращаюсь к ВАМ професионалам.

Есть скрипт гостевой книги,
на текстовых файлах.
на локалке всё работает хорошо,
на хостинге 
с английским текстом всё работает
РУССКИЙ ТЕКСТ НЕ ОТОБРАЖАЕТСЯ

сохраняю и работаю в Notepade
сохранил все файлы UTF-8
Format - Convert UTF-8
при открытии файла в Notepade
показывает
Encode in  UTF-8 


написал хостеру
хостер говорит
что сайт в UTF-8 
а 
что в скрипте у меня запись в CSVfile.txt 
произведена
в windows-1251

НО

если в форме заполнения сообщений 
перед вводом текста 
и адреса сайта 
поставить точку 
то русский текст появляется

где ошибка помогите пожалуйста

ЧТО ДЕЛАТЬ 
как сделать чтобы русский текст отображался


код страницы guest.php

даю весь скрипт помогите


http://adminint.ru/guest1.rar



http://adminint.ru/111.jpg

---------
Код



<? include "config.php";?>
<html>

<head>
<title>Гостевая книга с капчой.</title>
</head>
<body>
<table border="0" align="center">
<tr><td>
<!--начало php кода гостевой книги-->
<?php

if(!$_GET['i'])
{
$i=1;
}
else
{
$i=$_GET[i];
}
$chislo=$chisloconfig;
include "func.php";
$csv="CSVfile.txt";
$m=read($csv, "|");
      
echo "<br><br><br>";

if($m!=NULL)
{
krsort($m);
foreach($m as $stroka)
{
$n++;
if(($n>$i*$chislo-$chislo)&&($n<=$i*$chislo))
{
//разбиваем строку их БД на слова по 20 букв
$text = "$stroka[5]";
$newtext = wordwrap($text, 20, " ", 1);
echo "<b>&nbsp;$stroka[1]</b>&nbsp;&nbsp;&nbsp;$stroka[2]<br>
      <b>e-mail:&nbsp;</b><a href='mailto:$stroka[3]' target='_blank'>$stroka[3]</a>
      <b>сайт:&nbsp;</b><a href='http://$stroka[4]' target='_blank'>$stroka[4]</a><br>
      <table border='1'bordercolor='#000000' width='$colsconfiga' height='$rowsconfiga' bgcolor='$tbcolor'><tr><td valign='top'>$newtext</td></tr><table><br><br>";

}
}
echo "Колличество записей: $n<br>";
}
echo "<center><p>";



for($k=1; $k<=$n/$chislo+1; $k++)
{
if($k==$i)
{
echo "<b>$k</b>";
}
else
{
echo "<a href='guest.php?i=$k'><b>$k</b></a>";
}
}
echo "</p></center>";

$num = mt_rand(10,9999);
echo "Сообщение не должен быть длиннее, чем $testconfigmax символов.";
?>
<form action='guest.php' method='POST'>
<b>ваше имя:*&nbsp;&nbsp;&nbsp;</b><input type=text size=<? echo "$sizecounter";?> name=imja 
value="<?php echo $_POST['imja'] ?>" maxlength='32'><br>
<b>ваш e-mail:*&nbsp;&nbsp;</b><input type=text size=<? echo "$sizecounter";?> name=email
value="<?php echo $_POST['email'] ?>" maxlength='32'><br>
<b>ваш сайт:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b><input type=text size=<? echo "$sizecounter";?> name=url
value="<?php echo $_POST['url'] ?>" maxlength='32'><br>
<b>текст вашего сообщения:*</b><br>
<textarea name=text rows=<? echo "$rowsconfig"?> cols=<? echo "$colsconfig";?>><?php echo $_POST["text"] ?></textarea><br><br>
Для того чтобы добавить сообщение введите число: <? echo "$num";?> <br><br><input type='text' name='kontrol' size='10'>
<? echo "<input name='nov' type='hidden' value='$num'>";?>
<input type='submit' name='knopka' value='Отправить'>
</form>
<?
if($_POST['knopka']) 
{
if($_POST['imja'] != '') 
{
if($_POST['email'] !='') 
{
if(preg_match("/^[a-z0-9_.-]+@([a-z0-9_]+.)+[a-z]{2,4}$/i",$_POST['email']))
{
if($_POST['text'] != '') 
{
$text= $_POST['text'];
if (strlen($text) > $testconfigmax)
{exit ("<center>Сообщение не должен быть длиннее, чем $testconfigmax символов.");}
$num = trim($_POST['kontrol']);
$nov = $_POST['nov'];

if($_POST['knopka'] and ($num == $nov))

{

$csv="CSVfile.txt";

$imja= $_POST['imja'];
$email= $_POST['email'];
$url= $_POST['url'];
$text= $_POST['text'];

$imja= stripslashes ($imja);
$email= stripslashes ($email);
$url= stripslashes ($url);
$text= stripslashes ($text);



//убираем пробелы в файле при записи
$text = str_replace(array("\n", "\r", "\t"), '', $text);
$data=date("d.m.Y");

$strok="| -".strip_tags($imja)."|".$data."|".strip_tags($email)."|".strip_tags($url)."|".
strip_tags($text).".|<<end topik>>";
$strok=$strok.chr(13).chr(10);

include "blok.php";
blokir($csv, $strok);
echo "<center>Ваше сообщение добавленно.<br><a href='guest.php'>Вернуться на главную.</a><br></center>";


}
else
echo "Не верное число <a href='guest.php'>повторите.</a>";
}
else {echo "Введите коментарий";}
}
else {echo "Не верный мэйл";}
}
else {echo "Введите мэйл";}
}
else {echo "Введите имя.";}
}

?>
<!--конец php кода гостевой книги-->
</td></tr></table>
</body>
</html>


user posted image



Автор: Ипатьев 13.12.2009, 17:38
Во-первых, это явно вопрос не для профессионалов.
Во-вторых, не отображаетя, или отображается неправильно? Это, ообще-то, две очень большие разницы.

Автор: mihai 13.12.2009, 17:43
английский отображается
реусский не отображается

Автор: Ипатьев 13.12.2009, 17:51
кодировка файлов в приложенном архиве - 1251

Автор: nerezus 13.12.2009, 20:27
Прямо стихи какие-то... белые.

По теме: пора бы в вебе забыть про однобайтные кодировки.

Добавлено через 1 минуту и 10 секунд

 ! 
nerezus
Тема должна отражать смысл вопроса

Автор: gibbzy 14.12.2009, 13:45
существует 4 вещи которыми определяется кодировка 
1. то что прописанно у вас в meta 
2. то что у вас прописанно в файле .htaccess 
3. в какой кодировке у вас сохранён исходный код
4. то какая кодировка стоит в  базе данных / читайте в текстовых файлах.

если все эти 4 пункта выполняются то проблем с кодировкой быть не должно.
Иначе iconv вам в руки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)