Перейти к контенту
  • 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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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