Warning: Unexpected character in input: ''' (ASCII=39) state=1

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Че это за хрень такая? Пока сидел на windows1251 не было, перешел на utf это вылезать стало..
Ниже было написано, что это в 33 строке.. посмарел, там нифига нету, просто к переменной добавляется текст:
Код:
$text .= 'какой-то текст';
И главное не всегда вылезает этот варнинг, когда захочет - тогда вылезает и независимо от пользователя.. примерно так раз в сутки бывает у каждого пользователя..
 

Volter9

defined('SURRENDER') or die(); // StarWars
Регистрация
27.05.2012
Сообщения
1 145
Покажите пожалуйста где? А как вы сайт на UTF-8 перестроили?
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Покажите пожалуйста где? А как вы сайт на UTF-8 перестроили?
Как показать? Выложить часть кода где выходит ошибка?

- Все файлы переделал в utf-8 без BOM через notepad++
- Заменил названия кодировок с windows1251 на utf-8 в htaccess
- Изменил кодировку в <head> на utf-8
- Изменил локаль
- Изменил кодировку в базе и её таблицах
 

Volter9

defined('SURRENDER') or die(); // StarWars
Регистрация
27.05.2012
Сообщения
1 145
Покажите пожалуйста где? А как вы сайт на UTF-8 перестроили?
Как показать? Выложить часть кода где выходит ошибка?

- Все файлы переделал в utf-8 без BOM через notepad++
- Заменил названия кодировок с windows1251 на utf-8 в htaccess
- Изменил кодировку в <head> на utf-8
- Изменил локаль
- Изменил кодировку в базе и её таблицах
Верно, там где ошибка, тут проблема с самим PHP, меня только интересовало три из этих:
Код:
AddDefaultCharset UTF-8 # хтаккесс
1. ".htaccess"

Код:
<head>
<meta charset="utf-8" />
<!-- ... -->
</head>
2. index(.php || .html)
3. База данных
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Покажите пожалуйста где? А как вы сайт на UTF-8 перестроили?
Как показать? Выложить часть кода где выходит ошибка?

- Все файлы переделал в utf-8 без BOM через notepad++
- Заменил названия кодировок с windows1251 на utf-8 в htaccess
- Изменил кодировку в <head> на utf-8
- Изменил локаль
- Изменил кодировку в базе и её таблицах
Верно, там где ошибка, тут проблема с самим PHP, меня только интересовало три из этих:
Код:
AddDefaultCharset UTF-8 # хтаккесс
1. ".htaccess"

Код:
<head>
<meta charset="utf-8" />
<!-- ... -->
</head>
2. index(.php || .html)
3. База данных
htaccess - стоит там это:
Код:
AddDefaultCharset UTF-8
php_value default_charset UTF-8
<IfModule mod_charset.c>
CharsetDefault UTF-8
CharsetSourceEnc UTF-8
</IfModule>
в <head> это:
Код:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Вот код:
Код:
if($_GET['loc'] && $_GET['id']) {
$id = intval($_GET['id']);
$loc = min_text($_GET['loc'], 30);
$res = select("select * from `table` where `id_login` = '$us_id' and `id` = '$id' and `loc` = '$loc'", 'fetch');
if(is_array($res)) {
$text .= 'Вхождение найдено: '.%res['name'];
}
else {
$text .= 'Ошибка, не найдено ни одной строки';
}
}
функция min_text - для обработки текста, там вырезаются некоторые символы и переводятся в безопасный вид
 

Volter9

defined('SURRENDER') or die(); // StarWars
Регистрация
27.05.2012
Сообщения
1 145
Покажите пожалуйста где? А как вы сайт на UTF-8 перестроили?
Как показать? Выложить часть кода где выходит ошибка?

- Все файлы переделал в utf-8 без BOM через notepad++
- Заменил названия кодировок с windows1251 на utf-8 в htaccess
- Изменил кодировку в <head> на utf-8
- Изменил локаль
- Изменил кодировку в базе и её таблицах
Верно, там где ошибка, тут проблема с самим PHP, меня только интересовало три из этих:
Код:
AddDefaultCharset UTF-8 # хтаккесс
1. ".htaccess"

Код:
<head>
<meta charset="utf-8" />
<!-- ... -->
</head>
2. index(.php || .html)
3. База данных
htaccess - стоит там это:
Код:
AddDefaultCharset UTF-8
php_value default_charset UTF-8
<IfModule mod_charset.c>
CharsetDefault UTF-8
CharsetSourceEnc UTF-8
</IfModule>
в <head> это:
Код:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Вот код:
Код:
if($_GET['loc'] && $_GET['id']) {
$id = intval($_GET['id']);
$loc = min_text($_GET['loc'], 30);
$res = select("select * from `table` where `id_login` = '$us_id' and `id` = '$id' and `loc` = '$loc'", 'fetch');
if(is_array($res)) {
$text .= 'Вхождение найдено: '.%res['name'];
}
else {
$text .= 'Ошибка, не найдено ни одной строки';
}
}
функция min_text - для обработки текста, там вырезаются некоторые символы и переводятся в безопасный вид
А в этой функции eval()'d не используется? А на какой строке из этого кода выходит ошибка?
 

blackcot

Well-Known Member
Регистрация
10.09.2009
Сообщения
439
В какой именно строке и полный текст ошибки, пожалуйста...
Хотя... Если код копипастили, то, на сколько я знаю, знак % в обозначении переменной не используется.
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
А в этой функции eval()'d не используется? А на какой строке из этого кода выходит ошибка?
Нет, не используется..
В какой именно строке и полный текст ошибки, пожалуйста...
Вот седня пришло письмо от пользователя с текстом ошибки:
Код:
Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/f/fr13541/public_html/config_user.php on line 33
Вот обработка:
Код:
$simv_textarea = 1200;
	 if(!is_array($molcha)) {
	 if($_POST['go'] && $_POST['text'] && !$pers->blok && !$pers->noactivated && $_SESSION['form_rand'] == $_POST['form_rand']) {
	 if($_POST['trans']) $text = translit($text);
	 $text = min_text($_POST['text'],$simv_textarea);
	 if(mb_strlen($text) > 1) {
		 $count = select("select count(`id`) from `chat` where `id_login` = '$us_id' and ((`text` = '$text' and `data` > '".(time() - 300)."') or (`data` > '".(time() - 3)."'))",'result');
		 if($count == 0) {
		 select("insert into `chat` set `room` = '$room' ,`id_login` = '$us_id', `text` = '$text', `data` = '".time()."'");
		 update("update `user` set `s_post_chat` = `s_post_chat` + '1' where `id` = '$us_id' limit 1");
		 $str_text .= '<div class="otch">Сообщение успешно добавлено</div>';
		 }
	 }
	 else {
		 $str_text .= '<div class="err">Сообщение слишком короткое</div>';
	 }
	 }
Ошибка указывает на:
Код:
select("insert into `chat` set `room` = '$room' ,`id_login` = '$us_id', `text` = '$text', `data` = '".time()."'");
мб проблема в функции обработки текста, она что-то не так делает и пропускает что-то ненужное? Я про это:
Код:
$text = min_text($_POST['text'],$simv_textarea);
Код функции:
Код:
function min_text($min_text,$simv) {
$tbl = array('\\'=>'', "\s"=>'','\n'=>'',"\n"=>'','\r'=>'',"\r"=>'');
$min_text = htmlspecialchars($min_text, ENT_QUOTES);
$min_text = trim($min_text);
$min_text = mb_substr($min_text,0,$simv);
$min_text = strtr($min_text,$tbl);
return $min_text;
}
Вобщем я не знаю(( Про кодировку в базе ещё спрашивали, из-за нее тоже может быть такая ошибка?
 
Статус
Закрыто для дальнейших ответов.
Верх Низ