За последние 24 часа нас посетили 16307 программистов и 1581 робот. Сейчас ищут 1542 программиста ...

Проблема с кодировкой

Тема в разделе "Работа с почтой", создана пользователем ilion, 9 янв 2010.

  1. ilion

    ilion Активный пользователь

    С нами с:
    9 янв 2010
    Сообщения:
    1
    Симпатии:
    0
    Всем привет. В php понимаю мало... просто нужно скрипты использовать в html сайте ... Скрипт гостевой php работает нормально, только вот письма с уведомлением на почту приходят иероглифами

    post: кЕМНВЙЮ!!! оНГДПЮБКЪЧ бЮЯ Я мНБШЛ ЦНДНЛ
    name: еКЕМЮ

    На серваке есть 2 файла в директории гостевой книги: adrecc.php и config.php.
    В файле adrecc.php прописано include "config.php";

    Вот содержимое config.php:

    <?php
    // Число сообщений на странице
    $pnumber = 10;
    // Отпрвлять письмо на e-mail при добавлении нового сообщения
    // в гостевую книгу? Для включениея данного сервиса исправте на true
    $sendmail = true;
    // em-mail на который следует отправлять сообщение
    $valmail = "elesha@voliacable.com";
    // Ограничивать число сообщений в гостевой книге?
    $catmessage = false;
    // Максимальное число сообещний в гостевой книге
    $nummessage = 50;
    ?>

    В форме обратной связи проблему решил посредсвом команды $message =convert_cyr_string("Имя отправителя: - $name\n",w,k); Кодировка koi8 подошла. Но там был только один файл mail.php.

    А тут где прописать команду не знаю. Всем спасибо! Вот еще файл adrec.php

    <?
    // Включаем конфигурационный файл
    include "config.php";
    $error = "";
    $action = $_POST["action"];
    if (!empty($action))
    {
    $lenmsg = strlen($_POST["msg"]);
    $templen = 0;
    $temp = strtok($_POST["msg"], " ");
    if (strlen($_POST["msg"])>60) {
    while ($templen < $lenmsg) {
    if (strlen($temp)>60) {
    $action = "";
    $error = $error."<LI>Текст сообщения содержит слишком много символов без пробелов\n";
    break;
    } else {
    $templen = $templen + strlen($temp) + 1;
    }
    $temp = strtok(" ");
    }
    }

    $name = trim($_POST["name"]);
    $msg = trim($_POST["msg"]);
    $email = trim($_POST["email"]);

    if (empty($msg))
    {
    $action = "";
    $error = $error."<LI>Вы не ввели сообщение\n";
    }
    if (empty($name))
    {
    $action = "";
    $error = $error."<LI>Вы не ввели имя\n";
    }
    if(!empty($email))
    {
    if (!preg_match("/^[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,3}$/i", $email))
    {
    $action = "";
    $error = $error."<LI>Неверно введен е-mail.&nbsp Введите e-mail в виде <i>something@server.com</i> \n";
    }
    }


    $name = substr($_POST["name"],0,32);
    $name = htmlspecialchars(stripslashes($name));
    $city = substr($_POST["city"],0,32);
    $city = htmlspecialchars(stripslashes($city));
    $email = substr($_POST["email"],0,32);
    $email = htmlspecialchars(stripslashes($email));
    $url = substr($_POST["url"],0,36);
    $url = htmlspecialchars(stripslashes($url));
    $msg = substr($msg,0,1024);

    $url = strtr($url, "HTPF", "htpf");
    if (trim($url)!="") {
    if (strtolower((substr($url, 0, 7))!="http://") && (strtolower(substr($url, 0, 7))!="ftp://")) $url="http://".$url;
    }



    $search_bad_words = array("'фиг'si","'пизд'si","'ёб'si",
    "'сука'si","'суки'si","'дроч'si","'фига'si","'ссуч'si");
    $replace = array("*","*","*","*","*","*","*","*");
    $msg = preg_replace($search_bad_words,$replace,$msg);
    $name = preg_replace($search_bad_words,$replace,$name);
    $city = preg_replace($search_bad_words,$replace,$city);

    $msg = htmlspecialchars(stripslashes($msg));

    if (empty($error))
    {
    $msg = nl2br($msg);

    $msg = str_replace("","<u>",$msg);
    $msg = str_replace("","<u>",$msg);
    $msg = str_replace("","<i>",$msg);
    $msg = str_replace("","<i>",$msg);
    $msg = str_replace("","<B>",$msg);
    $msg = str_replace("","<B>",$msg);
    $msg = str_replace("[sub]","<SUB>",$msg);
    $msg = str_replace("[SUB]","<SUB>",$msg);
    $msg = str_replace("[sup]","<SUP>",$msg);
    $msg = str_replace("[SUP]","<SUP>",$msg);
    $msg = str_replace("
    ","</u>",$msg);
    $msg = str_replace("
    ","</u>",$msg);
    $msg = str_replace("
    ","</i>",$msg);
    $msg = str_replace("
    ","</i>",$msg);
    $msg = str_replace("
    ","</B>",$msg);
    $msg = str_replace("
    ","</B>",$msg);
    $msg = str_replace("[/SUB]","</SUB>",$msg);
    $msg = str_replace("[/sub]","</SUB>",$msg);
    $msg = str_replace("[/SUP]","</SUP>",$msg);
    $msg = str_replace("[/sup]","</SUP>",$msg);
    $msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg);
    $msg = str_replace("\n"," ",$msg);
    $msg = str_replace("\r"," ",$msg);

    $file = fopen("records/rec.".time(),"w");
    fputs($file,$name."\n");
    fputs($file,$city."\n");
    fputs($file,$email."\n");
    fputs($file,$url."\n");
    fputs($file,$msg."\n");
    fclose($file);
    // Если $sendmail = true отправляем уведомление
    if($sendmail)
    {
    $thm = "guestbook - a new post";
    $msg = "post: $msg\nname: $name";
    mail($valmail, $thm, $msg);
    }
    // Если $catmessage = true органичиваем число
    // сообщений в гостевой книге $nummessage
    if($catmessage)
    {
    // Открываем директорию records
    $dir = opendir("records");
    while(($file = readdir($dir)))
    {
    // Помещаем названия файлов в массив $array_file[]
    if(is_file("records/$file")) $array_file[] = $file;
    }
    // Проверяем количество файлов в директории
    if(count($array_file)>$nummessage)
    {
    // Производим обратную сортировку массива
    @rsort($array_file);
    // Удаляем лишние файлы
    for($i=$nummessage; $i<count($array_file); $i++) unlink("records/".$array_file[$i]);
    }
    // Закрываем директорию
    closedir($dir);
    }
    print "<HTML><HEAD>\n";
    print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n";
    print "</HEAD></HTML>\n";
    }
    }

    if (empty($action))
    {
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title></title>
    <link rel="StyleSheet" type="text/css" href="guestbook.css">
    </head>
    <body bottommargin="0" marginheight="0" marginwidth="0" rightmargin="0" leftmargin="0" topmargin="0">



    <table width="100%">
    <tr align="right">
    <td>
    <a class=link href="../gb/" title="Вернуться в гостевую книгу"><b>Гостевая книга</b></a>&nbsp;&nbsp;
    <a class=link href="../../index.html" title="Вернуться на сайт"><b>Главная</b></a>
    </td>
    <td width="10%">&nbsp;</td>
    </tr>
    </table>
    <form action=addrec.php method=post>
    <input type=hidden name=action value=post>
    <table><tr valign="top"><td width="25%">&nbsp;</td><td>
    <table border="0" align="center" cellpadding="6" cellspacing="0">
    <tr valign="top">
    <td colspan="3" height="60">
    <font color="#8B3626" size="4"> <i> Добавление сообщения </i> </font>
    </td>
    </tr>
    <tr>
    <td width="50"><font color="#8B3626" size="3">Имя* </font> </td>
    <td><input type=text name=name maxlength=32 size=25 value='<? echo $name; ?>'></td>
    <td rowspan="3" width="120">
    <font color="#8B3626" size="2"> * - поля, обязательные для заполнения </font>
    </td>
    </tr>
    <tr>
    <td><font color="#8B3626" size="3">Город</font></td>
    <td><input type=text name=city maxlength=32 size=25 value='<? echo $city; ?>'></td>
    </tr>
    <tr>
    <td><font color="#8B3626" size="3">E-mail</font></td>
    <td><input type=text name=email size=25 maxlength=32 value='<? echo $email; ?>'></td>
    </tr>

    <tr>
    <td colspan="3" height="10"><nop></td>
    </tr>
    <tr>
    <td colspan="3">
    <font color="#8B3626" size="3">Сообщение* </font> <br>
    <textarea cols=42 rows=5 name=msg><? echo $msg; ?></textarea>
    </td>
    </tr>
    <tr>
    <td colspan="3">
    <input type="submit" value="Добавить">&nbsp;&nbsp;&nbsp;
    <input type="submit" value="Отменить">
    </td>
    </tr>
    </table>
    </td>

    <tr>

    <td colspan="2">

    <center>
    <table border="0" cellspacing="1" cellpadding="4">
    <tr align="left">
    <td>



    <i><b><nobr> <font color="#8B3626" size="2"> Текстовые эффекты: </font> </nobr></b></i></u></td></tr>
    <tr><td> <font color="#8B3626" size="2"> <b> Жирный </b></font> </td></tr>
    <tr><td> <font color="#8B3626" size="2"> <i> Наклонный </i></font> </td></tr>
    <tr><td> <font color="#8B3626" size="2"> <u> Подчеркнутый</u></font></td></tr>


    </table>
    </center>

    </td>
    </tr>

    </tr></table>
    </form>
    </body>
    </html>
    <?
    if (!empty($error))
    {
    print "<P><font color=green>Во время добавления записи произошли следующие ошибки: </font></P>\n";
    print "<UL>\n";
    print $error;
    print "</UL>\n";
    }
    ?>
    <?
    }
    ?>