[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как изменить кодировку PHP файла?
ДиммКа
Поставил поиск на сайт (www.dimmka.my3space.ru), но на самом сайте стоит кодировка utf-8, а у формы похоже windows-1251 или другая! ну вообщем когда вот функция вызывает эту форму то получается неразбериха в буквах! а как можно исправить это? (есть панель администрирования но там про кодировку не слова!)


Код функции которая вызывает форму:
<?php

//Установка поиска по сайту
$strpath="search/form.php";
$adrself=getcwd();
for($i=0; $i<100; $i++)
{
if(file_exists("public_html"))break;
if (!file_exists($strpath)) chdir("..");
else break;
}
include ('search/form.php');
chdir($adrself);
?>


Код самой формы:
<?php
$config=file("search/admin/conf/mes.txt");
$n=0;
//Очищаем
foreach($config as $line)
{
$expl=explode("*", $line);
$conf[$n]=trim($expl[2]);
$n++;
}
?>
<style>
#search_button {
color:<?echo $conf[17]?>;
font-family:"Times New Roman", "serif";
font-size:<?echo $conf[18]?>pt;
font-weight:<?echo $conf[20]?>;
font-style:<?echo $conf[19]?>;
background-color:<?echo $conf[16]?>;
border-style:<?echo $conf[23]?>;
border-width:<?echo $conf[22]?>px;
border-color:<?echo $conf[21]?>;
}
#s_search {
color:<?echo $conf[8]?>;
font-family:"Times New Roman", "serif";
font-size:<?echo $conf[9]?>pt;
font-weight:<?echo $conf[11]?>;
font-style:<?echo $conf[10]?>;
background-color:<?echo $conf[7]?>;
padding:5px;
width:<?echo $conf[5]?>px;
border-style:<?echo $conf[14]?>;
border-width:<?echo $conf[13]?>px;
border-color:<?echo $conf[12]?>;
text-align:left;
}

#head_search {
color:<?echo $conf[1]?>;
font-family:"Times New Roman", "serif";
font-size:<?echo $conf[2]?>pt;
font-weight:<?echo $conf[4]?>;
font-style:<?echo $conf[3]?>;
text-align:left;

}

</style>

<?php
echo "<script language='JavaScript1.1' type='text/javascript'>
<!--

function ins(i)
{
var val=document.search.quit.value;
var p1="
; if ($conf[0]!="") echo "\"<div id=head_search>$conf[0]</div>\"+";
echo "\"<input name='quit' type='text' ID='quit' size=$conf[6]>  \"+
\" <input type='submit' value=$conf[15] id=search_button >  \"+
\"<a href='javascript:ins(2)'><img src='/search/img/down.png' alt='Подробный поиск' border=0></a>\";


var p2="
;if ($conf[0]!="") echo "\"<div id=head_search>$conf[0]</div>\"+";
echo "\"<input name='quit' type='text' ID='quit' size=$conf[6]>  \"+
\" <input type='submit' value=$conf[15] id=search_button >  \"+
\"<a href='javascript:ins(1)'><img src='/search/img/up.png' alt='Закрыть' border=0></a><br>\"+
\"<input name='toch' type='checkbox' value='ON'> \"+
\"точное совпадение<br>\"+
\"<input name='registr' type='checkbox' value='ON'> \"+
\"учитывать регистр<br>\"+
\"<input name=log type=radio value='1' > \"+
\"любое слово<br>\"+
\"<input name=log type=radio value='2' checked> \"+
\"фраза целиком\";

var insp;
switch (i)
{
case 1: insp=p1;
break;
case 2: insp= p2;
break;
}
document.getElementById('s_search').innerHTML = insp;
document.search.quit.value=val;

}


//--></script>"
;



echo"<div align=$conf[24]><form name='search' action='/search/search.php' method='post'>

<div id=s_search>"
;
if ($conf[0]!="") echo "<div id=head_search>$conf[0]</div>";
echo "<input name='quit' type='text' ID='quit' size=$conf[6]>
<input type='submit' value=
$conf[15] id=search_button >";
if($conf[25]==1) echo
<a href=
\"javascript:ins(2);\"><img src='/search/img/down.png' alt='Подробный поиск' border=0></a>";
echo"</div>
</form></div>"
;

?>










Спустя 31 минута, 7 секунд (20.06.2010 - 20:15) Lenarfate написал(а):
поставьте в form.php

header("Content-type:text/html; charset='utf-8'");

и пропишите кодировку в .htaccess

Спустя 7 дней, 17 часов, 32 минуты, 27 секунд (28.06.2010 - 13:48) linker написал(а):
Откройте файл с формой в редакторе, который могет работать с utf-8 и тупо пересохраните с этой кодировкой. И не забываем про соответствующие заголовки header();

Спустя 8 месяцев, 13 дней, 8 минут, 3 секунды (11.03.2011 - 14:56) Dmitri написал(а):
Цитата (linker @ 28.06.2010 - 10:48)
Откройте файл с формой в редакторе, который могет работать с utf-8 и тупо пересохраните с этой кодировкой. И не забываем про соответствующие заголовки header();

Работает! Тупо пересохранил в другой кодировке! Спасибо, несколько часов искал солюшн.

Спустя 6 месяцев, 11 дней, 59 минут, 53 секунды (22.09.2011 - 14:55) Гость_Игорь написал(а):
Посмотрел что решаете проблему в два счета. Помогите с такой проблемой. Есть форма, есть обработчик. Когда приходят письма с формы, то значения, которые заносит пользователь приходят в непонятной кодировке. А те заголовки, которые прописал я остаются в русской раскладке. А в поле ввода текста вообще ни в одном случае информ не приходит
это приходит если в обработчике windows-1251

ФИО Соискателя: РїРїРїРїРїРї
Электронный адрес: РїРїРїРїРїРї
Адрес прописки: РїРїРїРїРї
Адрес проживания: РїРїРїРїРї
Контактный номер тел.: РїРїРїРїРї
Наличие инструментов: yes
Какие инструменты есть в наличии и каких нет:
Перфоратор: Нет
Дрель: Нет
Интересующая вакансия: Отделочник
Введите сообщение:



Когда меняю кодировку на utf-8 в обработчике
то те данные которые заносят прописываются на русском,а текст формы вообще исчезает

: пппппп
: пппппп
: ппппп
: ппппп
.: ппппп
: yes
:
:
:
: Отделочник
:


и где прописать это - header("Content-type:text/html; charset='utf-8'");

Вот обработчик

<?php

if (isset($_POST['fio'])) {$fio=$_POST['fio'];}
if (isset($_POST['email'])) {$email=$_POST['email'];}
if (isset($_POST['adresprop'])) {$adresprop=$_POST['adresprop'];}
if (isset($_POST['adrespog'])) {$adrespog=$_POST['adrespog'];}
if (isset($_POST['tel'])) {$tel=$_POST['tel'];}
if (isset($_POST['format'])) {$format=$_POST['format'];}
if (isset($_POST['perf'])) {$perf=$_POST['perf'];}
if (isset($_POST['drel'])) {$drel=$_POST['drel'];}
if (isset($_POST['dilivery'])) {$dilivery=$_POST['dilivery'];}
if (isset($_POST['message'])) {$message=$_POST['message'];}

if (isset($_POST['perf'])) {$perf="Да";} else {$perf="Нет";}
if (isset($_POST['drel'])) {$drel="Да";} else {$drel="Нет";}

$fio = htmlspecialchars(trim($fio));
$email = htmlspecialchars(trim($email));
$adresprop = htmlspecialchars(trim($adresprop));

$address = "primer@mail.ru";
$sub = "Анкета соискателя с сайта компании";
$mes = "ФИО Соискателя: $fio \nЭлектронный адрес: $email \nАдрес прописки: $adresprop \nАдрес проживания: $adrespog \nКонтактный номер тел.: $tel \nНаличие инструментов: $format \nКакие инструменты есть в наличии и каких нет: \nПерфоратор: $perf \nДрель: $drel \nИнтересующая вакансия: $dilivery \nВведите сообщение: $message";
$verify = mail($address,$sub,$mes,"Content-type:text/plain;charset=windows-1251\r\n");

if ($verify == "true") {echo "Ваша анкета успешно отправленна!";}

?>

Спустя 34 минуты, 51 секунда (22.09.2011 - 15:30) caballero написал(а):
пересохрани все файлы в UTF-8
и везде заголовки header

Спустя 1 час, 3 минуты, 33 секунды (22.09.2011 - 16:34) Гость_Игорь написал(а):
Цитата (caballero @ 22.09.2011 - 12:30)
пересохрани все файлы в UTF-8
и везде заголовки header

Пересохранил обработчик в UTF-8, но при этом оставил в самом обработчике windows-1251
И всё получилось, но немного некоректно. Дело в том, что письмо на почту пришло в кодировке UTF-8 непонятными символами. Пришлось перекодировать письмо в почтовом клиенте.

Какие действия выполнить, чтоб приходило сразу письмо на русском, и не преходилось каждый раз менять кодировку почтовой кореспонденции

и ещё ... где конкретно прописывать этот header и как он должен выглядеть.

Зарание благодарю за ответ.

ПС Да и ещё, это единственный форум в котором реально помогают.
Три дня голову ломал, где только не спрашивал везде одни "умники"

Спустя 10 минут, 24 секунды (22.09.2011 - 16:44) caballero написал(а):
header("Content-type:text/html; charset='utf-8'");

в начале каждого файла

Цитата
но при этом оставил в самом обработчике windows-1251

на фига?

Спустя 2 минуты, 5 секунд (22.09.2011 - 16:46) caballero написал(а):
Цитата
Дело в том, что письмо на почту пришло в кодировке UTF-8 непонятными символами.


так убедись что файл и текст которые отправляют его тоже в UTF-8

и в заголшовке письма тоже кодировка UTF-8

Спустя 16 минут, 17 секунд (22.09.2011 - 17:03) Guest написал(а):
Цитата (caballero @ 22.09.2011 - 13:46)
Цитата
Дело в том, что письмо на почту пришло в кодировке UTF-8 непонятными символами.


так убедись что файл и текст которые отправляют его тоже в UTF-8

и в заголшовке письма тоже кодировка UTF-8

Вот так?

Форма:

header("Content-type:text/html; charset='utf-8'");

<form action="obrabotka22.php" method="POST">

<p><stromg>Введите своё ФИО:</strong><br>
<input type="text" name="fio">
</p>

<p><stromg>Введите свой E-mail:</strong><br>
<input type="text" name="email">
</p>

<p><stromg>Адрес прописки:</strong><br>
<input type="text" name="adresprop">
</p>

<p><stromg>Адрес проживания:</strong><br>
<input type="text" name="adrespog">
</p>

<p><stromg>Контактный номер тел.:</strong><br>
<input type="text" name="tel">
</p>

<p><stromg>Имеются ли в наличии инструменты.:</strong><br>
<input type="radio" name="format" value="yes">Да<br>
<input type="radio" name="format" value="no">Нет<br>
</p>

<p><stromg>Укажите данные инструменты:</strong><br>
<input type="checkbox" name="perf" value="1">Перфоратор<br>
<input type="checkbox" name="drel" value="1">Дрель<br>
</p>

<p><stromg>Выберите интересующию Вас вакансию:</strong><br>
<select name="dilivery">
<option>Отделочник</option>
<option>Сантехник</option>
<option>Плиточник</option>
<option>Гипсокартонщик</option>
<option>Электрик</option>
</select>
</p>

<p><stromg>Введите сообщение:</strong><br>
<textarea "message" cols="40" rows="5">
</textarea>
</p>

<p>
<input type="submit" value="Отправить анкету">
</p>

</form>

обработчик:

<?php

header("Content-type:text/html; charset='utf-8'");

if (isset($_POST['fio'])) {$fio=$_POST['fio'];}
if (isset($_POST['email'])) {$email=$_POST['email'];}
if (isset($_POST['adresprop'])) {$adresprop=$_POST['adresprop'];}
if (isset($_POST['adrespog'])) {$adrespog=$_POST['adrespog'];}
if (isset($_POST['tel'])) {$tel=$_POST['tel'];}
if (isset($_POST['format'])) {$format=$_POST['format'];}
if (isset($_POST['perf'])) {$perf=$_POST['perf'];}
if (isset($_POST['drel'])) {$drel=$_POST['drel'];}
if (isset($_POST['dilivery'])) {$dilivery=$_POST['dilivery'];}
if (isset($_POST['message'])) {$message=$_POST['message'];}

if (isset($_POST['perf'])) {$perf="Да";} else {$perf="Нет";}
if (isset($_POST['drel'])) {$drel="Да";} else {$drel="Нет";}

$fio = htmlspecialchars(trim($fio));
$email = htmlspecialchars(trim($email));
$adresprop = htmlspecialchars(trim($adresprop));

$address = "primer@mail.ru";
$sub = "Анкета соискателя с сайта компании: veterperemen-omsk.ru";
$mes = "ФИО Соискателя: $fio \nЭлектронный адрес: $email \nАдрес прописки: $adresprop \nАдрес проживания: $adrespog \nКонтактный номер тел.: $tel \nНаличие инструментов: $format \nКакие инструменты есть в наличии и каких нет: \nПерфоратор: $perf \nДрель: $drel \nИнтересующая вакансия: $dilivery \nВведите сообщение: $message";
$verify = mail($address,$sub,$mes,"Content-type:text/plain;charset='utf-8\r\n");

if ($verify == "true") {echo "Ваша анкета успешно отправленна!";}

?>

и текст из окна "Введите сообщение" вообще неприходит.??


Спустя 1 минута, 18 секунд (22.09.2011 - 17:04) Гость_Игорь написал(а):
или я ошибаюсь? blink.gif

Спустя 2 минуты, 23 секунды (22.09.2011 - 17:06) caballero написал(а):
проверь и убедись ошибаешся или нет

Спустя 13 минут, 14 секунд (22.09.2011 - 17:20) Гость_игорь написал(а):
))))))))))) Проверил блин..... Извените за выражение.....
Вот результат такой пришёл

п╓п≤п· п║п╬п╦я│п╨п╟я┌п╣п╩я▐: п╦пЁп╬я─я▄
п╜п╩п╣п╨я┌я─п╬п╫п╫я▀п╧ п╟п╢я─п╣я│: п╦пЁп╬я─я▄
п░п╢я─п╣я│ п©я─п╬п©п╦я│п╨п╦: п╦пЁп╬я─я▄
п░п╢я─п╣я│ п©я─п╬п╤п╦п╡п╟п╫п╦я▐: п╦пЁп╬я─я▄
п п╬п╫я┌п╟п╨я┌п╫я▀п╧ п╫п╬п╪п╣я─ я┌п╣п╩.: п╦пЁп╬я─я▄
п²п╟п╩п╦я┤п╦п╣ п╦п╫я│я┌я─я┐п╪п╣п╫я┌п╬п╡: yes
п п╟п╨п╦п╣ п╦п╫я│я┌я─я┐п╪п╣п╫я┌я▀ п╣я│я┌я▄ п╡ п╫п╟п╩п╦я┤п╦п╦ п╦ п╨п╟п╨п╦я┘ п╫п╣я┌:
п÷п╣я─я└п╬я─п╟я┌п╬я─: п■п╟
п■я─п╣п╩я▄: п■п╟
п≤п╫я┌п╣я─п╣я│я┐я▌я┴п╟я▐ п╡п╟п╨п╟п╫я│п╦я▐: п⌠п╦п©я│п╬п╨п╟я─я┌п╬п╫я┴п╦п╨
п▓п╡п╣п╢п╦я┌п╣ я│п╬п╬п╠я┴п╣п╫п╦п╣:


Спустя 6 минут, 54 секунды (22.09.2011 - 17:26) Гость_Игорь написал(а):
И теперь когда отправляешь форму, выдаёт:

п»ї
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\prorab\obrabotka22.php:1) in Z:\home\localhost\www\prorab\obrabotka22.php on line 3
Ваша анкета успешно отправленна!

Спустя 16 минут, 46 секунд (22.09.2011 - 17:43) Гость_Игорь написал(а):
Разобрался ))
В обработчике прописал Content-Type: text/plain; charset=utf-8

поменял html на plain

и header("Content-type:text/html; charset='utf-8'"); непрописовал нигде

и вот результат всё приходит как положенно, только последнее поле, там где вводят сообщение, вообще где-то потерялось... dry.gif

ФИО Соискателя: Проверка
Электронный адрес: Проверка
Адрес прописки: Проверка
Адрес проживания: Проверка
Контактный номер тел.: Проверка
Наличие инструментов: yes
Какие инструменты есть в наличии и каких нет:
Перфоратор: Да
Дрель: Да
Интересующая вакансия: Гипсокартонщик
Введите сообщение:


Спустя 14 часов, 47 минут, 52 секунды (23.09.2011 - 08:31) Гость_Игорь написал(а):
А как реализовать следующий момент.
После того, как пользователь, после заполнения формы, нажимает на кнопку "Отправить". На экране появляется информация что отправка прошла успешно.
Так вот, вопрос в следующем: Как зделать, чтоб после отправки формы, пользователь попадал на странницу сайта, а не на белый лист удачной отправки? huh.gif

Спустя 1 час, 53 минуты, 25 секунд (23.09.2011 - 10:24) Invis1ble написал(а):
Гость_Игорь
А тебе не кажется, что вопрос не по теме? И вообще писать в чужих темах свои вопросы как-то не очень, а? Ладно с предыдущим вопросм - там все было в тему, но этот уже точно никак не относится.
Создай отдельный топик и там опиши свою проблему.

Спустя 1 час, 26 минут, 55 секунд (23.09.2011 - 11:51) caballero написал(а):
Цитата
Как зделать, чтоб после отправки формы, пользователь попадал на странницу сайта, а не на белый лист удачной отправки?


Перенаправить на страницу сайта

Спустя 12 дней, 19 часов, 36 минут, 53 секунды (6.10.2011 - 07:28) NoEx!T® написал(а):
ПОМОГИТЕ!!!
У меня такая форма-

<?php



/* Your email adress should be here*/

$sendTo = "youremail@yourdomain.com";


/* Mail Topic */

$subject = "Message From Your Website";



$email =$_POST["emails"];


$header .= "Reply-To: <" . $email . ">\r\n";
$header .= "Return-Path: <" . $email . "> \r\n";
$header .= "From: <" . $email . "> \r\n";
$header .= "Organization: E-Bosch Servisi\r\n";
$header .= "Content-Type: text/plain\r\n";




$name = $_POST["namest"];
$name = mb_convert_encoding($name ,"iso-8859-9","utf-8\n");
$phone = $_POST["phones"];
$message = $_POST["messages"];
$message = mb_convert_encoding($message ,"iso-8859-9","utf-8\n");






$body = " Your Message \n \n Name: $name\n Phone: $phone\n Email: $email\n Message: $message\n";
mail($sendTo, $subject, $body, $headers);

?>

Русские буквы при заполнении естественно на "албанском" user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.