MainRadiotalkCustom
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Ошибка и проблема кодировок!

 

28
Slash @Slash
Кто может сказать что это за ошибка??

Это висит постоянно, даже когда нету соединения с БД (если удалить к примеру)

Strict Standards: Declaration of metabase_mysql_class::AutoCommitTransactions() should be compatible with that of metabase_database_class::AutoCommitTransactions() in /opt/lampp/htdocs/sam/common/metabase/metabase_mysql.php on line 14

Эти пояляються уже с работющей БД и пишуться прямо по середине страници.

Strict Standards: Resource ID#16 used as offset, casting to integer (16) in /opt/lampp/htdocs/ra/common/metabase/metabase_mysql.php on line 133

И такое

Deprecated: Function eregi_replace() is deprecated in /opt/lampp/htdocs/ra/common/form.php on line 90
(90,91,92)


Раньше работал под Win сейчас решил поставить apach+php+mysql на linux соответственно конект идет туда.
Есть так же проблема подировки.. если ставлю кодировку БД ср1251, то песни семе просто не заливаються. При добавлении файла нечего не происходит.
Поставил latin1_general_ci в phpmyadmin руские буквы не отображаються, но в плеере и насайте вроде бы нормально.

6245
Тарас @tarasian666
отключите вывод ошибок в php.ini

28
Slash @Slash
В пхп.ини у меня вроде бы отключено ;error_reporting (0);

Правда есть еще такое

; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED

Как правильно отключить вывод, подскажите пожалуйста.

6245
Тарас @tarasian666
display_errors = Off

28
Slash @Slash
tarasian666 пишет:

display_errors = Off

Спасибо =) оказалось так банально.
Если не сложно, можете пояснить почему такое происходит? получаеться что код идет с ошибками или как (информация чисто для познания)))

Проблема с кодировками так и осталась.. поставил latin1_general_ci знаки вопроса на сайте наруские песни.
UTF8 тоже самое, а если ставить cp1251 , то сем просто не хочетья заливать песни в базу..

Отредактировано Slash - 02.02.2010
6245
Тарас @tarasian666
про ошибки - надо смотреть что именно в тех "линиях" ему не нравится
если сайт не UTF-8 то надо перекодировать скриптом

28
Slash @Slash
tarasian666 пишет:

если сайт не UTF-8 то надо перекодировать скриптом

Сайт по идее не УТФ. Стандартный.. тот что идет вместе с Семом и стандартный и тот что русифицированный (Deman version) оба показывают на руские буквы знаки вопроса.
Дело в том что база создана с кодировкой латин1. так как пролистав гугл везде пишут что надо ставить имено эту базу для решения данной проблемы. При установке кодировки ср1251 с которой по идее нету не каких проблем (на винде точно не было), песни сем просто не заливает.

Скрипт куда? для изменения БД или сайта??

6245
Тарас @tarasian666
для изменения сайта, или сайт в другой кодировке зделать

28
Slash @Slash
tarasian666 пишет:

для изменения сайта, или сайт в другой кодировке зделать

Не совсем понял.
Дело в том что сайт отображает все нормально, кроме песен с БД, которые в БД хранятся со знаками вопроса.
Разве это проблема сайта , а не БД???

И какой скрипт если что? или как перевести сайт в другую кодировку?

6245
Тарас @tarasian666
все страницы сделать в другой кодировке, в той что и БД.
или строчки с песнями на лету перекодировать в ту кодировку в которой страница
почитайте о функции iconv

Отредактировано tarasian666 - 02.02.2010
28
Slash @Slash
Полазил, почитал.
Большей частью прошарил тут, но и гуглом прошелся.
Не совсем понял. Поменял кодировку БД на UTF-8
В playing.php вставил
echo iconv('UTF-8','CP1251',$text); не помогло. Руский не видит.

Я не совсем разбираюсь в данном ( возможно проблема в $text , на данной странице оно не описано..

Отредактировано Slash - 02.02.2010
28
Slash @Slash
Вопрос был решен.
Я правда не знаю на сколько правильно, но все же теперь отображаеться правильно.

В раздел [mysqld] добавить: (если у кого такая же проблема, файл my.cnf)

default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

Две последние строки принудительно устанавливают кодировку cp1251 для всех запросов. И думаю это помогло.
Так как при обычном создании БД запросом CREATE DATABASE `название` DEFAULT CHARACTER SET ср1251 COLLATE ср1251_general_ci; музыка не заливалась в базу.

При редактировании конфигурационного файла все стало на место.

ПС Спасибо tarasian666 за отзычиость =))

6245
Тарас @tarasian666
хм.. тоже вариант, но поскольку ненавижу кодировку cp1251 то такого не делал с базой ))

28
Slash @Slash
tarasian666 пишет:

хм.. тоже вариант, но поскольку ненавижу кодировку cp1251 то такого не делал с базой ))

ну за не умением правильно использовать iconv пришлось юзать данный вариант.

28
Slash @Slash
Кстати появилась проблема описанная в этой теме - **********
Решить ее так и не удалось (скорее из-за кривизны рук).
Вот привожу код вывода стат.

<?php

echo iconv ('UTF-8','CP-1251',$text)

///////////////////////////////////////////////////
//icecast2 status refined v1.1 xsl refined
// Author: that dude over there at casterclub.com
// Bugs: post in the forums at casterclub
//////////////////////////////////////////////////
//start the madness already
//////////////////////////////////////////////////
//start the configurations
$ip = "мой ип"; //your server address in the form of mydomain.com or 192.161.1.1
$port = "8000"; //the port of your server
$ice2_station = "Radio"; // your station or stream name






////////////////start the parsin action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//opening socket
$fp = fsockopen("$ip", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
$success=2; //set if no connection



//edit html to fit your stations site, this display is for offline status
echo'<table>
<tr>
<td width="100%" colspan="2">
<img border="0" src="images/offline.gif" width="22" height="22">
<b><font face="Arial" size="2" color="#FF0000">'.$ice2_station.' в данный момент не работает</font></b></td>
</tr>
</table>';
}




if($success!=2){ //if connection
fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n"); //get status2.xsl
while(!feof($fp)) {
$page .= fgets($fp, 1000);
}
fclose($fp); //close connection
$page = ereg_replace(".*<pre>", "", $page); //extract data
$page = ereg_replace("</pre>.*", ",", $page); //extract data

$numbers = explode(",",$page); //bomb it and extract data
$mount = $numbers[0];
$connections = $numbers[1];
$stream_n = $numbers[2];
$listeners = $numbers[3];
$desc = $numbers[4];
$cur_song = $numbers[5];
$str_url = $numbers[6];
$client_info = $numbers[7];
$test1 = $numbers[8]; //set vars that where empty and still dont know what the heck those values are ;-)
$test2 = $numbers[9]; //set vars that where empty and still dont know what the heck those values are ;-)
$test3 = $numbers[10]; //set vars that where empty and still dont know what the heck those values are ;-)
$mount = $numbers[11];
$connections = $numbers[12];
$station =$numbers[13];
$listeners = $numbers[14];
$description = $numbers[15];
$cur_song = $numbers[16];
$www_url = $numbers[17];


//edit html to fit your stations site, this display is for online status
echo'
<table width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<tr>
<td width="100%"><b><font face="Arial" size="2">
<img border="0" src="images/ice2_status/icecast.gif" width="22" height="22">
Powered By Icecast2</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="1"><a href="'.$www_url.'">
'.$station.'</a> - '.$description.'</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="1">
<img border="0" src="images/ice2_status/listeners.gif" width="22" height="18">
Listeners: '.$listeners.'</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="1">
<img border="0" src="images/ice2_status/tunes.gif" width="21" height="21">
Now Playing: '.$cur_song.'</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="2">
<img border="0" src="images/ice2_status/play.gif" width="15" height="15">
<a target="_blank" href="http://'.$ip.':'.$port.''.$mount.'.m3u">Listen Now</a></font></b></td>
</tr>
</table>';
}


?>

iconv заюзал вначале.

В конфиге айскаста (icecast.xml) добавилстрочку <charset>1251</charset>

Что не так?
ПС Опять же мои познания в данном разделе на низком уровне. =)

6245
Тарас @tarasian666
Slash пишет:

Что не так?

учить php
править руки ))
второй раз вижу такой бред и дальше с него ржу )))
во порвых синтаксис - нет ; в конце ряда
ну и дальше...
echo iconv ('UTF-8','CP-1251',$text);
echo - команда вывода строки, в даном случае вывод перекодированого текста переменной $text
по скольку переменная не задана то ни чего и не будет выводить
а вам надо перекодировать ту переменную в которой есть название песни и тп

Отредактировано tarasian666 - 04.02.2010
28
Slash @Slash
Ну я как бы согласен что в этом я полный ноль.
Из прочитаного я понял что нужно сделать так?

<?php

echo iconv ('UTF-8','CP-1251',$cur_song);

///////////////////////////////////////////////////
//icecast2 status refined v1.1 xsl refined
// Author: that dude over there at casterclub.com
// Bugs: post in the forums at casterclub
//////////////////////////////////////////////////
//start the madness already
//////////////////////////////////////////////////
//start the configurations
$ip = "мой ип"; //your server address in the form of mydomain.com or 192.161.1.1
$port = "8000"; //the port of your server
$ice2_station = "Radio"; // your station or stream name

6245
Тарас @tarasian666
нет не совсем
<?php

///////////////////////////////////////////////////
//icecast2 status refined v1.1 xsl refined
// Author: that dude over there at casterclub.com
// Bugs: post in the forums at casterclub
//////////////////////////////////////////////////
//start the madness already
//////////////////////////////////////////////////
//start the configurations
$ip = "мой ип"; //your server address in the form of mydomain.com or 192.161.1.1
$port = "8000"; //the port of your server
$ice2_station = "Radio"; // your station or stream name






////////////////start the parsin action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//opening socket
$fp = fsockopen("$ip", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
$success=2; //set if no connection



//edit html to fit your stations site, this display is for offline status
echo'<table>
<tr>
<td width="100%" colspan="2">
<img border="0" src="images/offline.gif" width="22" height="22">
<b><font face="Arial" size="2" color="#FF0000">'.$ice2_station.' в данный момент не работает</font></b></td>
</tr>
</table>';
}




if($success!=2){ //if connection
fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n"); //get status2.xsl
while(!feof($fp)) {
$page .= fgets($fp, 1000);
}
fclose($fp); //close connection
$page = ereg_replace(".*<pre>", "", $page); //extract data
$page = ereg_replace("</pre>.*", ",", $page); //extract data

$numbers = explode(",",$page); //bomb it and extract data
$mount = $numbers[0];
$connections = $numbers[1];
$stream_n = $numbers[2];
$listeners = $numbers[3];
$desc = $numbers[4];
$cur_song = $numbers[5];
$str_url = $numbers[6];
$client_info = $numbers[7];
$test1 = $numbers[8]; //set vars that where empty and still dont know what the heck those values are ;-)
$test2 = $numbers[9]; //set vars that where empty and still dont know what the heck those values are ;-)
$test3 = $numbers[10]; //set vars that where empty and still dont know what the heck those values are ;-)
$mount = $numbers[11];
$connections = $numbers[12];
$station =$numbers[13];
$listeners = $numbers[14];
$description = $numbers[15];
$cur_song = iconv ('UTF-8','CP-1251',$numbers[16]);
$www_url = $numbers[17];


//edit html to fit your stations site, this display is for online status
echo'
<table width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<tr>
<td width="100%"><b><font face="Arial" size="2">
<img border="0" src="images/ice2_status/icecast.gif" width="22" height="22">
Powered By Icecast2</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="1"><a href="'.$www_url.'">
'.$station.'</a> - '.$description.'</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="1">
<img border="0" src="images/ice2_status/listeners.gif" width="22" height="18">
Listeners: '.$listeners.'</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="1">
<img border="0" src="images/ice2_status/tunes.gif" width="21" height="21">
Now Playing: '.$cur_song.'</font></b></td>
</tr>
<tr>
<td width="100%"><b><font face="Arial" size="2">
<img border="0" src="images/ice2_status/play.gif" width="15" height="15">
<a target="_blank" href="http://'.$ip.':'.$port.''.$mount.'.m3u">Listen Now</a></font></b></td>
</tr>
</table>';
}


?>

что то типа

Отредактировано tarasian666 - 04.02.2010
28
Slash @Slash
Емм... вроде понял, хотя почитать придеться =))

Но теперь вместо вывода информации про песню, просто пустая строка...

6245
Тарас @tarasian666
windows-1251 (windows) or cp1251(Linux/Unix)