Перейти к контенту
  • 0

Кэширование настроек


d1pro

Вопрос

Второй раз уже сталкиваюсь с этой проблемой на локале. На сервере тьфу-тьфу-тьфу все нормально. Проблема в чем. Вы наверное обратили внимание, что теперь conf_global.php очень скромных размеров стал, в нем только самые важные настройки, а все остальное хранится в базе. Дык вот, иногда возникают случаи, когда они из базы не считываются...

Чтение выполняет вот такой вот код:

	 $tmp = unserialize(stripslashes($r['cs_value']));
 if ( is_array( $tmp ) and count( $tmp ) )
 {
	 foreach( $tmp as $k => $v )
	 {
   $ibforums->vars[ $k ] = $v;
	 }
 }

cs_value это одно из полей в ibf_cache_store. Дык вот, прикол в чем - в базу все настройки пишутся нормально (там serialize и т.п.), в базе отлично прочитываются. Данный код их тоже получает (путем echo было видно, что строка из базы получается), а вот на unserialize (восстановка массива из текста) все обламывается - возвращается пустая переменная, даже не массив. Соответственно все настройки летят в трубу. Еще один симптом - когда в админке смотришь кэш для settings (view) выдается пустая страница... ХЗЧТ... И как такое вылечить? Боюсь, что такая ситуация может возникать чаще. Чем она может быть вызвана? PHP 4.36 и вроде бы на 4.33 тоже самое было...

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

кхм .. честно говоря ни разу не было такого глюка - проверено на разных базах мускуль/постгре разные версиии серваков/пхп разные операционные системы

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

если все же нет, то.. надо думать дальше..

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Первый раз глюк был дома... Вылечилось убиванием и пересоздание базы (вот так вот странно)... Второй раз получил сегодня когда на работе потестить решил... В обоих случаях юзал базы от уже подраспухших форумов... Настроек что-то в районе 220... В начале их поменьше...
Ссылка на комментарий
Поделиться на других сайтах

  • 0
а вот на unserialize (восстановка массива из текста) все обламывается - возвращается пустая переменная, даже не массив.

значит не правильно делаете serialize

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Вылечилось убиванием и пересоздание базы (вот так вот странно).

полностью все базы? или только таблицы настроек?

 

второй раз как вылечилось? так же?

а если обновление кеша настроек сделать, то есть переписать их туда?

 

посмотрел у себя - настроек тоже где то окло ~215

 

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

 

ЗЫ. кстати сейчас мысль пришла.. может виновата не функция unserialize, а stripslashes, как я посмотрю там и слешей то нет в базе кеша.. так что смысл использовать эту функцию? может ее убрать?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

а лучше сериализованный объект в студию, что бы посмотреть что и как там.

 

может виновата не функция unserialize, а stripslashes

кстати вариант, stripslashes является функцией символы из строки убирающей, по этому стоит посмотреть сериализованный объект до обработки stripslashes и после. Если они не совпадают, то unserialize просто обязан косячить =)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
значит не правильно делаете serialize

Это не я и не мой мод, а сам IPB...

полностью все базы? или только таблицы настроек?

Полностью всей базы. Пробовал просто занулять это значение а потом самим форумом обратно пересоздавать - не помогает.

второй раз как вылечилось? так же?

Никак ;). Завтра пойду на работу, буду исследовать :)...

а если обновление кеша настроек сделать, то есть переписать их туда?

:D Почти первое что было сделано :)...

а лучше сериализованный объект в студию

Так как на работе сейчас именно такой и остался, если не забуду, завтра закину...

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Это не я и не мой мод, а сам IPB...

ручками, ручками, старые настройки unserialize получим массив, дальше добавляем новые настройки и serialize.

 

А вообще

может виновата не функция unserialize, а stripslashes, как я посмотрю там и слешей то нет в базе кеша.. так что смысл использовать эту функцию? может ее убрать?

стоит проверить, сейчас мне это кажется самым правдоподобным вариантом

Ссылка на комментарий
Поделиться на других сайтах

  • 0
стоит проверить, сейчас мне это кажется самым правдоподобным вариантом

Stripslashes убивал и вообще всякие извраты пробовал :D... Методом научного тыка и убиванием половины настроек тогда мне удалось заставить его читать настройки... Но чтоб все - неее...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Дык вот обнаружился такой же глюк на моей базе на локале. Вот дамп

 

a:214:{s:7:"gl_show";s:1:"0";s:7:"gl_link";s:0:"";s:8:"gl_title";s:28:"Правила форума! Читать всем!";s:13:"board_offline";s:1:"0";s:18:"show_bday_calendar";s:1:"1";s:14:"show_birthdays";s:1:"1";s:13:"autohide_bday";s:1:"1";s:13:"show_calendar";s:1:"1";s:17:"autohide_calendar";s:1:"1";s:14:"calendar_limit";s:1:"5";s:10:"start_year";s:4:"2001";s:10:"year_limit";s:1:"5";s:21:"converge_login_method";s:8:"username";s:13:"cookie_domain";s:7:".ovl.ru";s:9:"cookie_id";s:9:"rhh4room_";s:11:"cookie_path";s:0:"";s:9:"use_coppa";s:1:"0";s:9:"coppa_fax";s:0:"";s:13:"coppa_address";s:0:"";s:20:"custom_profile_topic";s:1:"1";s:14:"cache_calendar";s:1:"1";s:9:"au_cutoff";s:2:"15";s:20:"db_topic_read_cutoff";s:1:"7";s:16:"show_user_posted";s:1:"1";s:11:"no_au_forum";s:1:"0";s:11:"no_au_topic";s:1:"0";s:11:"show_active";s:1:"1";s:12:"allow_search";s:1:"1";s:11:"show_totals";s:1:"1";s:10:"load_limit";s:0:"";s:15:"min_search_word";s:1:"4";s:7:"nocache";s:1:"1";s:15:"search_post_cut";s:0:"";s:16:"short_forum_jump";s:1:"0";s:11:"time_offset";s:1:"3";s:11:"time_adjust";s:1:"0";s:11:"clock_short";s:13:"l, d F Y, G:i";s:12:"clock_joined";s:8:"l, d F Y";s:10:"clock_long";s:13:"l, d F Y, G:i";s:17:"time_use_relative";s:1:"1";s:24:"time_use_relative_format";s:9:"{--}, G:i";s:8:"email_in";s:15:"d1pro@yandex.ru";s:9:"email_out";s:15:"d1pro@yandex.ru";s:11:"mail_method";s:4:"mail";s:9:"smtp_host";s:9:"localhost";s:9:"smtp_port";s:2:"25";s:18:"mail_wrap_brackets";s:1:"0";s:9:"smtp_user";s:0:"";s:9:"smtp_pass";s:0:"";s:17:"search_sql_method";s:5:"ftext";s:21:"search_default_method";s:6:"simple";s:10:"board_name";s:25:"Russian Hip-Hop Community";s:9:"home_name";s:25:"Russian Hip-Hop Community";s:8:"home_url";s:0:"";s:10:"upload_url";s:18:"http://new/uploads";s:10:"upload_dir";s:23:"z:home
ewwwwuploads";s:13:"print_headers";s:1:"0";s:12:"disable_gzip";s:1:"0";s:15:"header_redirect";s:8:"location";s:25:"ipb_remove_redirect_pages";s:1:"0";s:11:"debug_level";s:1:"1";s:9:"sql_debug";s:1:"0";s:15:"safe_mode_skins";s:1:"0";s:13:"number_format";s:4:"none";s:10:"gd_version";s:1:"2";s:17:"chat04_account_no";s:0:"";s:25:"chat04_whodat_server_addr";s:50:"http://invision.parachat.com/cgi-bin/userlist/test";s:13:"chat04_who_on";s:1:"1";s:24:"chat04_hide_whoschatting";s:1:"1";s:15:"chat04_who_save";s:1:"1";s:12:"chat04_width";s:3:"600";s:13:"chat04_height";s:3:"350";s:14:"chat04_display";s:4:"self";s:13:"chat04_poppad";s:2:"50";s:22:"chat04_access_groups[]";s:0:"";s:15:"chat_account_no";s:0:"";s:16:"chat_server_addr";s:0:"";s:11:"chat_who_on";s:1:"1";s:22:"chat_hide_whoschatting";s:1:"1";s:13:"chat_pass_md5";s:0:"";s:17:"chat_pass_md5_new";s:0:"";s:10:"chat_width";s:3:"600";s:11:"chat_height";s:3:"350";s:12:"chat_display";s:4:"self";s:11:"chat_poppad";s:2:"50";s:13:"chat_language";s:2:"en";s:18:"chat_access_groups";s:0:"";s:17:"chat_admin_groups";s:0:"";s:15:"ipb_copy_number";s:0:"";s:15:"ips_cp_purchase";s:1:"0";s:8:"csite_on";s:1:"1";s:14:"ipb_reg_number";s:0:"";s:12:"ipb_reg_show";s:1:"0";s:12:"ipb_reg_name";s:0:"";s:13:"news_forum_id";s:0:"";s:15:"index_news_link";s:1:"0";s:14:"msg_allow_code";s:1:"1";s:14:"msg_allow_html";s:1:"0";s:17:"show_max_msg_list";s:2:"50";s:12:"spider_sense";s:1:"1";s:12:"spider_visit";s:1:"1";s:12:"spider_group";s:1:"2";s:11:"spider_suit";s:1:"2";s:13:"spider_active";s:1:"1";s:11:"spider_anon";s:1:"1";s:18:"search_engine_bots";s:195:"googlebot=Google.com
slurp@inktomi=Hot Bot
ask jeeves=Ask Jeeves
lycos=Lycos.com
whatuseek=What You Seek
ia_archiver=Archive.org
aport=Aport
yandex=Yandex
stackrambler=Rambler
msnbot=MSN";s:12:"bot_antispam";s:2:"gd";s:17:"allow_dynamic_img";s:1:"0";s:18:"session_expiration";s:4:"3600";s:13:"match_browser";s:1:"0";s:13:"use_mail_form";s:1:"1";s:12:"allow_images";s:1:"1";s:11:"allow_flash";s:1:"0";s:13:"reg_auth_type";s:4:"user";s:18:"validate_day_prune";s:2:"21";s:14:"new_reg_notify";s:1:"1";s:11:"force_login";s:1:"0";s:6:"no_reg";s:1:"0";s:15:"strip_space_chr";s:1:"0";s:18:"disable_reportpost";s:1:"0";s:17:"reportpost_method";s:2:"pm";s:13:"flood_control";s:2:"20";s:17:"allow_online_list";s:1:"1";s:18:"disable_admin_anon";s:1:"0";s:17:"disable_online_ip";s:1:"0";s:14:"subsm_show_reg";s:1:"0";s:13:"subsm_enforce";s:1:"0";s:17:"subsm_nopkg_group";s:1:"1";s:18:"display_max_topics";s:2:"30";s:14:"etfilter_punct";s:1:"0";s:14:"etfilter_shout";s:1:"0";s:9:"hot_topic";s:2:"15";s:10:"pre_pinned";s:8:"Pinned: ";s:9:"pre_moved";s:7:"Moved: ";s:9:"pre_polls";s:6:"Poll: ";s:17:"display_max_posts";s:2:"20";s:17:"threaded_per_page";s:3:"100";s:17:"topicmode_default";s:6:"linear";s:17:"post_order_column";s:3:"pid";s:15:"post_order_sort";s:3:"asc";s:8:"max_emos";s:2:"10";s:10:"max_images";s:2:"10";s:15:"max_post_length";s:3:"100";s:11:"max_w_flash";s:3:"199";s:11:"max_h_flash";s:3:"199";s:13:"post_wordwrap";s:2:"80";s:11:"emo_per_row";s:1:"4";s:12:"strip_quotes";s:1:"1";s:7:"img_ext";s:16:"gif,jpeg,jpg,png";s:15:"show_img_upload";s:1:"1";s:9:"siu_thumb";s:1:"1";s:9:"siu_width";s:3:"100";s:10:"siu_height";s:3:"100";s:14:"guest_name_pre";s:6:"Guest_";s:14:"guest_name_suf";s:2:"_*";s:9:"poll_tags";s:1:"1";s:16:"max_poll_choices";s:2:"50";s:17:"allow_result_view";s:1:"1";s:18:"allow_creator_vote";s:1:"1";s:16:"startpoll_cutoff";s:2:"24";s:20:"poll_disable_noreply";s:1:"0";s:22:"forum_trash_can_enable";s:1:"1";s:18:"forum_trash_can_id";s:0:"";s:26:"forum_trash_can_use_radmin";s:1:"1";s:25:"forum_trash_can_use_admin";s:1:"1";s:24:"forum_trash_can_use_smod";s:1:"1";s:23:"forum_trash_can_use_mod";s:1:"1";s:11:"allow_skins";s:1:"1";s:16:"post_titlechange";s:3:"400";s:19:"max_location_length";s:4:"1000";s:19:"max_interest_length";s:4:"1000";s:14:"max_sig_length";s:4:"1000";s:14:"sig_allow_html";s:1:"0";s:13:"sig_allow_ibc";s:1:"1";s:17:"postpage_contents";s:22:"5,10,15,20,25,30,35,40";s:18:"topicpage_contents";s:22:"5,10,15,20,25,30,35,40";s:14:"subs_autoprune";s:1:"0";s:10:"avatars_on";s:1:"1";s:10:"avatar_ext";s:16:"gif,jpg,jpeg,png";s:10:"avatar_url";s:1:"1";s:13:"avup_size_max";s:2:"50";s:11:"avatar_dims";s:7:"100x100";s:10:"avatar_def";s:5:"80x80";s:11:"av_gal_cols";s:1:"5";s:9:"photo_ext";s:16:"gif,jpg,jpeg,png";s:15:"disable_ipbsize";s:1:"0";s:10:"guests_sig";s:1:"1";s:10:"guests_img";s:1:"1";s:10:"guests_ava";s:1:"1";s:7:"warn_on";s:1:"1";s:8:"warn_min";s:1:"0";s:8:"warn_max";s:2:"10";s:14:"warn_protected";s:3:"4,6";s:13:"warn_show_own";s:1:"1";s:13:"warn_past_max";s:1:"0";s:16:"warn_show_rating";s:1:"0";s:12:"warn_mod_ban";s:1:"1";s:13:"warn_mod_modq";s:1:"1";s:13:"warn_mod_post";s:1:"1";s:12:"warn_mod_day";s:2:"10";s:13:"warn_gmod_ban";s:1:"1";s:14:"warn_gmod_modq";s:1:"1";s:14:"warn_gmod_post";s:1:"1";s:13:"warn_gmod_day";s:2:"10";s:0:"";s:2:"15";s:20:"chat04_access_groups";s:0:"";s:15:"send_welcome_pm";s:1:"1";s:16:"welcome_pm_title";s:17:"Добро пожаловать!";s:14:"welcome_pm_msg";s:388:"Привет, %USER%!
 
Добро пожаловать в ряды Russian Hip-Hop Community.
 
Зайди в "Мои настройки" и настрой свой профиль как тебе нравится: подпись, аватар, дополнительные данные. Чтобы у тебя не возникало проблем, прочти [url=http://rhh4room.ovl.ru/forums/index.php?act=boardrules]правила[/url]. Если возникнут проблемы с форумом - обращайся к администратору, то есть ко мне.
 
Успехов! ";s:10:"enable_wwo";s:1:"1";s:8:"show_wwo";s:1:"1";s:7:"log_wwo";s:1:"1";s:13:"show_most_wwo";s:1:"1";s:17:"chat_refresh_list";s:2:"15";}

Конечно может часть потерялась при пересылке, но вроде все на месте. Источник проблемы я обнаружил. Содержимое переменной upload_dir - там содержалось значение z:\home\new\www\uploads - эти самые слэши пропали и длина строки не совпадает с указанной... Отсюда дальнейшее считывание выпадает... Т.е. похоже проблемы существует для Windows-хостингов (это дамп с локала)... Для юниксовых все должно быть в норме...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

дык проблемы по идее быть не должно так при заносе в базу должно было проводится слеширование, то есть обратный слеш должен меняться на два обратных слеша - этого не было так как оно самодельное на форуме и криво работает...

может применять стандартное пхп-шное?

 

хотя можно просто заменить в пути к папке аплоада на обычные слеши - знаки деления - у меня на виндовом хостинге все отлично работает с ними

Ссылка на комментарий
Поделиться на других сайтах

  • 0

winnie

Дык я проверял просто так - взял массив, взял это значение, прогнал над ним операции, кроме сохранения базы - все нормально запаковывается/распаковывается. А тут вот такая вот фигня ;)... Может по дороге в базу что происходит? Кстати говоря, на другом компе эта же база работает нормально без каких-либо действий :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Кстати говоря, на другом компе эта же база работает нормально без каких-либо действий

повторюсь опять- софт это все

Ссылка на комментарий
Поделиться на других сайтах

  • 0

winnie

Ну дык на одном и том же компе после шаманских действий проблема пропадала... Странно все же... Надо хотя бы предупреждение чтоль повесить :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.