126

Re: Как увеличить количество строк/знаков?

Victor2008
Содержимое файлов может иметь любую кодировку и с названиями папок никак не связано.

127

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Вот конфигурационный файл MySQL my.cnf:
# The following options will be passed to all MySQL clients
[client]
user        = root
#password    = your_password
port        = 3306
socket        = /var/lib/mysql/mysql.sock

# The MySQL server
[mysqld]
user        = mysql
datadir        = /var/lib/mysql
port        = 3306
socket        = /var/lib/mysql/mysql.sock
pid-file    = /var/run/mysqld/mysqld.pid
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
collation_server = utf8_unicode_ci
#collation_server = cp1251_general_ci # если сдесь включить, то MySQL небудет рабовать вообще
character_set_server = utf8
#character_set_server = cp1251  # если сдесь включить, то MySQL небудет рабовать вообще
init-connect="SET NAMES cp1251"

old_passwords

skip-networking

server-id    = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
#default-character-set = utf8
default-character-set=cp1251

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

# MySQL Instance Manager options section
[manager]
user=mysql
default-mysqld-path=/usr/sbin/mysqld
socket=/var/lib/mysql/mysqlmanager.sock
pid-file=/var/run/mysqld/mysqlmanager.pid
password-file=/etc/mysqlmanager.passwd
run-as-service
monitoring-interval=20
port=2273
#bind-address=192.168.100.1

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

С благодарностью за ответ.

128

Re: Как увеличить количество строк/знаков?

Victor2008
В какой кодировке таблицы в MySQL?
Как кириллица выглядит в phpMyAdmin?
В какой кодировке html страницы? Смотрите мета-теги и кодировку самих файлов.
Как производится выборка данных из БД? Если это какой-то скрипт, то какой.
Для определения кодировки соединения с MySQL смотрите вывод запроса:

SHOW GLOBAL VARIABLES LIKE 'char%';

129

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Выкладываю информацию которую мне выдал MySQL в Linux
mysql> show global variables like 'char%';                                 
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql>

Таблицы базы в кодировке:
cp1251_general_ci

В phpMyAdmin кирилический текст читается корректно.

В index.php кодировка:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Правда, когда посмотрел остальные php-файлы, которые подключаются посредством includes обнаружилось что по большей части в php and html теги дополнительно кодировка не вписана. Эпизодически между тэками php and html етсь  "Рекламодателю", (при перечислении).

Далее вопрос. Есть бегущая строка код php запроса к MySQL. В код кодировку не вставлял т.к. кодировка есть в index.php, а php файл присоединяется с помощью includes, далее нужна ли строка кодировки <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> в php файле с бегущей строкой?

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

130

Re: Как увеличить количество строк/знаков?

Victor2008
Глобальная кодировка соединения с MySQL у вас utf8, при таких настройках используя windows-1251 надо обязательно принудительно устанавливать кодировку соединения в cp1251. Делается это двумя способами:

1. Глобально.
В my.cnf в раздел [mysqld] добавить строку:
init-connect="SET NAMES cp1251"

2. Либо локально.
Во всех скриптах сразу после функции соединения mysql_connect добавить строку:
mysql_query('SET NAMES cp1251');

В подключаемых с помощью include() файлах кодировку прописывать не надо, она указывается мета тегом только внутри тега head.
Следует обязательно проследить, чтобы сами файлы были в кодировке windows-1251, что можно увидеть в любом текстовом редакторе, например Notepad++. Варианта только два ANSI и UTF8. windows-1251 - это ANSI.

131

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Высылаю my.cnf посмотрите пожалуйста кодировки, правельно ли?

Дело в том что с этими кодировками кирилица неработает. Возможно ли написать отдельный php файл только с кодировкой подключаемой ко всему сайту сразу?

Дело в том что после подключения mysql_query('SET NAMES cp1251'); после строки mysql_connect как Вы и писали - это работает, но только в одной части сайта где файл с этой кодировкой работает на сайте. В остальных частях кирилица попрежнему не работает.

Пример. На сайте самая первая информация - это дата с названием месяца на кирилице и вот строка с которой начинается подключение к базе:
$res = $conn->Execute( "SELECT year FROM $userstable WHERE year='$yr' GROUP BY year ORDER BY year DESC" );
Так вот База подключена и если после нее написать:
mysql_query('SET NAMES cp1251');
то эта строка неработает.

С благодарностью за ответ.

132

Re: Как увеличить количество строк/знаков?

Victor2008
В my.cnf у вас все правильно прописано, но скрипты нельзя подключать под root, обязательно заведите отдельного пользователя назначив ему только необходимые привилегии, важно не проставлять привилегии из раздела "Администрирование".

На root не действует установка кодировки соединения, она всегда latin1 для него.

Что касается установки кодировки соединения с MySQL в скрипте.
$conn->Execute() - Это означает, что в переменной $conn находится класс, который и отвечает за соединение с MySQL. Ищите функцию mysql_connect именно внутри класса. Кодировку соединения с MySQL необходимо обязательно установить сразу после функции mysql_connect.

133

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Вы говорите что права rwx недолжны стоять для root для выполнения скриптов - это понятно.

Благодаря Вашей помощи мне удалось на моей машине установить права rwx для пользователя user(до изменения прав rwx для папки в которой находится virtualhost с которым мне нужно работать пользователем и группой были оба root-ы, мной было изменено только имя пользователя и задание пользователю user прав rwx) на virtualhost для папки где лежат php скрипты с которыми мне нужно работать и которые нужно запускать.
В данный момент несовсем понятно как закрыть доступ для пользователя root и группы root для папки с php скриптами в virtualhost с которыми нужно постоянно работать. Ведь когда заходишь из-под root доступно все.
Обьясните пожалуйста такое:
вот есть шесть заданий прав доступа: drwxr-xr-x где:
d - катаолог
(первая пара) rwx - для пользователя
(вторая пара)  r-x  - для группы
(третья пара)  r-x  - для остаьлных прользователей системы  Кто они? Для кого?
Тоесть для пользователя root везде должны стоять прочерки --- ?

На папки в которых находятся конфигурационные файлы Apache and MySQL права стоят дефолтные(на все действия только для root) права. Это значит что каки бы кирилические кодировки мной бы не устанавливались эти кодинровки работать не будут, если исходить из Вашего комментария:
>На root не действует установка кодировки соединения, она всегда latin1 для него.

Да, но в период настройки конфигурационного файла Apahce благодаря Вашей помощи отображение кирилицы на localhost заработало, а ведь доступ к файлам настройки из-под root и ведь для Apache заработало.

С благодарностью за ответ.

134

Re: Как увеличить количество строк/знаков?

Victor2008
Вы путаете root операционной системы и учетную запись root в MySQL. Скрипты нельзя запускать под учетной записью root MySQL, именно эти данные вы прописываете в функции mysql_conntct, или в конфигурационном файле скрипта.

root в операционной системе - это администратор имеющий права абсолютно на все. В каталогах виртуального хоста не должно быть папок и файлов принадлежащих root, но права chmod здесь уже ни при чем.

Victor2008 сказал:

(третья пара)  r-x  - для остаьлных прользователей системы  Кто они? Для кого?

Все, кто смотрят страницы сайта, например, оказываются под учетной записью Apache. Еще файл может запускаться планировщиком Cron, у которого тоже есть своя учетная запись в операционной системе. Все они и будут отнесены к третьей группе пользователей.

Для пользователя root никакие прочерки стоять не должны, надо только установить отдельного пользователя, у которого будет доступ только к принадлежащим ему файлам.

135

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Как создать дополинтельного пользователя user в MySQL и запускать MySQL из-под дополнительного пользователя user если MySQL по умолчанию после установки в "Панель управления/Администрирование/Службы" MySQL запускается только с пользователем root и под другим пользователем незапускается (пробовал создать дополнительного пользователя user посредством phpMyAdmin и из-под user зайти. Не заходит. Запущенный же сервис в службах стоит root).

И еще что это за ошибка и как ее исправить?
Есть две php страницы:
rekv.php
Этот фвайл имеет такой код в коммандной строке браузера:
http://slava.ua/?cnt=rekv&yr=2009&a … amp;day=27

afisha.php
Этот фвайл имеет такой код в коммандной строке браузера:
http://slava.ua/?cnt=afisha&yr=2009 … amp;day=27

Оба файла подключены через файл includes.inc(по этому поводу ошибки невыскакивают) Первый(rekv.php) файл-страничку браузер выдает корректно, а вторую(afisha.php) белым листиком(в середине самого файла есть таблица с текстом), а в верху страницы надпись на сером фоне которая в шаблоне расположена в подвале.
В файле access.log(сайта) такие строки:
127.0.0.1 - - [29/Oct/2009:12:02:05 +0200] "GET /?cnt=rekv&yr=2009&mnt=6&day=27 HTTP/1.1" 200 46907
127.0.0.1 - - [29/Oct/2009:12:02:05 +0200] "GET /image/rubr_triangl.gif HTTP/1.1" 404 293
127.0.0.1 - - [29/Oct/2009:12:02:10 +0200] "GET /?cnt=afisha&yr=2009&mnt=6&day=27 HTTP/1.1" 200 1285
Пожалуйста скажите что не так.

Заранее благодарен за помощ.

136

Re: Как увеличить количество строк/знаков?

Victor2008
Чтобы создать для скриптов отдельного пользователя сделайте следующее: зайдите в phpMyAdmin на страницу привилегий, создайте пользователя, установите для этого пользователя права на ту БД с которой будет работать скрипт. Права надо задавать по необходимости (обычно хватает SELECT, UPDATE, INSERT, DELETE), но нельзя выставлять галочки в разделе "Администрирование". Установите в скриптах данные нового пользователя.

Ошибки в лог файле нет. Код 200 означает загруженную страницу. Код 404 означает, что картинка не найдена. Возможно ошибка в файле afisha.php.

137

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо большое, получилось. Создал нового пользователя и сопоставил ему host-localhost. Теперь заходит пез проблем и работает.

Такое дело, как сделать так чтобы когда нажимаешь на ссылку на сайте в том же окне открывалась страница-переход по ссылке, а не старница переход(по ссылке) открывалась бы во вновь созданном окне?

И еще как сделать в стилях старницы так чтобы например - есть перечень времени допустим 10:20 12:40 14:40. Посетитель зашедший на сайт до 10:20 видел бы все числа времени черным цветом, потом посетитель зашол на сайт около 12:40 и увидел бы что цифры времени 10:20 серого цвета. Т.е. чтобы на сайте было бы видно как по прошествии времени автоматически менялся бы стиль для времени. Как это сделать?

С благодарностью за ответ.

138

Re: Как увеличить количество строк/знаков?

Victor2008 сказал:

Такое дело, как сделать так чтобы когда нажимаешь на ссылку на сайте в том же окне открывалась страница-переход по ссылке, а не старница переход(по ссылке) открывалась бы во вновь созданном окне?

Не смог понять.

Victor2008
В css прописываете цвет и при генерации страницы устанавливаете такой класс, который соответствует определенному времени.

139

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

1. Допустим на сайте есть гипер-ссылка посетитель нажимает на сылку и по ссылке переходит на другую страницу. Т.в. как сделать чтобы страница на которую перешол по гипер-ссылке посетитель открылась в том же окне, а не запускалось бы еще одно окно браузера?

2. Правильно, в css создаю два стиля для времени .time{ color:#000000; } .old_time{ color:#919090; }, сами цифры времени: 10:20 12:40 14:40 находятся в базе в ячейке TXT (возможно нужно каждое число времени вставлять в отдельную ячейку базы TXT). В php файле есть код:
<p class="*">сеансы: '.$row[ "time" ].'</p>
Возможно здесь нужно чтобы сервер по прошествии времени сам вставлял определенный стиль из двух предложенных исходя из текущего времени и цифры-времени времени которая в ячейке базы. Такое возможно?

140

Re: Как увеличить количество строк/знаков?

Victor2008 сказал:

1. Допустим на сайте есть гипер-ссылка посетитель нажимает на сылку и по ссылке переходит на другую страницу. Т.в. как сделать чтобы страница на которую перешол по гипер-ссылке посетитель открылась в том же окне, а не запускалось бы еще одно окно браузера?

Для этого тег <a> не должен иметь параметра target. Например target="_blank" означает открытие ссылки в новом окне.

Для времени надо было создать поле соответствующего типа. Для времени можно использовать TIME, которое содержит часы:минуты:секунды.
Выделить в запросе час из времени можно так:
HOUR("10:20") - это даст 10.
Затем делать проверку: если 10 часов, то такой-то стиль, если 12, то другой и т. д.

141

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Вы пишите:
>Для этого тег <a> не должен иметь параметра target. Например target="_blank" означает
>открытие ссылки в новом окне.

Момент в том что нужно чтоб открытие ссылки происходило в том же окне, в моем случае  target="_blank" уже стоял. Попробовал его снять и никакого эффекта, открытие ссылки происходит в новом окне, а нужно чтоб в томже.

По поводу стилей для времени, спасибо, на выходных буду пробовать, потом напишу.

С благодарностью за ответ.

142

Re: Как увеличить количество строк/знаков?

Victor2008 сказал:

Момент в том что нужно чтоб открытие ссылки происходило в том же окне, в моем случае  target="_blank" уже стоял. Попробовал его снять и никакого эффекта, открытие ссылки происходит в новом окне, а нужно чтоб в томже.

Больше никак открыть в новом окне ссылку нельзя.

Если такую ссылку открыть будет новое окно? Попробуйте.
<a href="">test</a>

143

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо за ответ.

Вы знаете как раз когда убрал target="_blank", ссылка открывается в тойже странице, новое окно уже неоткрывается. Сапсибо.

Далее по поводу времени и стиля к времени. В базе поля TIME уже созданы и заполнены(для каждого времени отдельное поле TIME). Покопался в интернете, нашел функцию для даты checkdate(), а для времени checktime()? Если вообще с того конца начал.
Глядя на ваш пример:
>HOUR("10:20") - это даст 10.
>Затем делать проверку: если 10 часов, то такой-то стиль, если 12, то другой и т. д.
Вдохновился следующим:
for ( hour("10:20") ) //для времени 10:20
{
      if checktime( hour(10:20) ) // если времени 10:20 верно
         {
            else .time{ color:#000000; } //стиль такой-то (незнаю как задать код для обращения к стилю который находится в файле stile.scc)
          }
      if (TIME > 10:20) //Здесь TIME -время сервера(если вообще думаю в нужно направлении) если время больше чем есть то стиль ниже(время сравнивается с настоящим-если это вообще правельный подход)
         {
          else style .old_time{ color:#919090; }; //стиль для времени другой
          }
}
Думаю что в этом черновике ошибки неизбежны. Буду признателен за пример.

С благодарностью за ответ.

144

Re: Как увеличить количество строк/знаков?

Victor2008
Я пока не понял логику по которой у времени должен меняться цвет. В какое-то определенное время, или еще как?

Покажите тот кусок кода, который отвечает за вывод времени. Начиная с SQL запроса.

145

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо за ответ.

На мой взгляд цифры времени(которые лежат в ячейке базы) как для сеансов кинотеатров, так и для спектаклей театров должны сравниваться с текущим временем сервера(сайт находится на сервере в моем регионе) и в случае когда время сеанса совпадает с текущим временем сервера(или больше) то стиль один, а если время для сеансов устарело то стиль другой.

Если писать для каждого времени отдельно, то получится ка мне кажется довольно громоздко(ведь тогда нужно для каждого времени что хранится в ячейке писать отдельный скрипт, а когда разных сеансов много, то для каждого нужно будет писать отдельный код) это как мне кажется, возможно я заблуждаюсь.

Вот кусок кода с запросом на вывод времени из базы:
function kino_moskva()
  {
        $usertable = "kino_moskva";
        $text_out = "";               
        @mysql_connect ( $hostname, $username, $password );
        mysql_query('set names cp1251');
        @mysql_select_db ("slava_sebastopol_ua")
        or die(mysql_error());
        $r = @mysql_query( "select * from $usertable ORDER BY id ASC" );
        while ($row = mysql_fetch_assoc ( $r ))
                {
                       $text_time = '<p>'.$row["time"].'</p>';
                        $text_out .= '<tr><td>'.
                                            $text_time.
                                            '</td></tr>';
                 }
               $text_out = '<table border="0">'.$text_out.'</table>';
               return( $text_out );
}
Этот код отображает время. Привожу Вам только участок кода с временем, вырезал код который вывродит название фильма/спектакля, дня недели и т.д.

С благодарностью за ответ.

146

Re: Как увеличить количество строк/знаков?

Предполагаю, что поле time имеет тип TIME, то есть такой вид 'HH:MM:SS' (хотя мне кажется, что лучше было бы с датой DATETIME).

Надо переделать запрос: select * from $usertable ORDER BY id ASC;

Теперь он будет выглядеть так:
SELECT *, IF (`time` >= CURTIME(), "css_active", "css_old") AS `css_style` FROM $usertable ORDER BY `id` ASC;

Теперь при выполнении этого запроса у нас появляется еще одно поле - css_style, в котором будет строка css_active (если время еще не истекло), или css_old (если время находится в прошлом).

Соответственно вывод делается так:
$text_time = '<p class="' . $row['css_style'] . '">'.$row["time"].'</p>';

147

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо, уже тестирую.

Такое дело есть код:
function test_add()
{

$userstable = "test";
        include("./php/connect.php");
       
                  @mysql_connect( $hostname, $username, $password, $dbName );
       
                  @mysql_select_db("slava_sebastopol_ua")
                  or die(mysql_error());
                   $result = MYSQL_QUERY( "SELECT * FROM $userstable WHERE id='$id'" );
тут дальше идет код в котором идет обновление цифры в ячейке после выбора из списка нажатия на кнопку подтверждения выбора
потом
$text_out = '<h3>Спасибо! Ваше мнение по опросу «'.$temp_array[ 'zagol' ].'» принято.</h3>';

return( $text_out );
}
Кеда можно вписать сессию? Момент еще в том что перечень опроса из 18 пунктов вопросы находятся в ячейках типа вопр1 отв1, вопр2 отв2 и т.д. Помню когда-то для одинаковой колонки было так:
@session_start();
if (empty($_SESSION['но что вписывать сюда ведь список большой'])){
$_SESSION['но что вписывать сюда ведь список большой'] = 1;

а когда колонки имеют разное имя, тоеда как?

С благодарностью за ответ.

148

Re: Как увеличить количество строк/знаков?

кажется получилось в строку:
if (empty($_SESSION['но что вписывать сюда ведь список большой'])){
$_SESSION['но что вписывать сюда ведь список большой'] = 1;
вписал
if (empty($_SESSION['отв1, отв2 и так далее по количеству пунктов'])){
$_SESSION['отв1, отв2 и так далее по количеству пунктов'] = 1;
На сайте вроде работает только на одну загрузку браузера.
НО. Правельно ли сделал?

с благодарностью за ответ.

149

Re: Как увеличить количество строк/знаков?

Скажите какой код нужно написать чтобы для посетителя сайта который уже поучавствовал в опросе при попытке поучавствовать повторно на выбранный пункт тот же или другой выбранный пункт выдывалась страница с надписью что пользователь уже проголосовал и чтобы зашешдий попробовал в другой раз. Насколько понимаю нужно гдето хранить IP адрес зашедшего на сайт или что-то другое?

С благодарностью за ответ.

150

Re: Как увеличить количество строк/знаков?

Тая штука ищу бесплатный ностинг - doctorzyablov.com ftp php, mysql неподскажите где есть?