trochę się przyjrzałem kodowi no i nie mam jak przetestować no ale wydaje mi się że skoro dane są kodowane
base64_encode(serialize($data_ary))
to powinny być odkodowane poprzez:
unserialize(base64_decode($data_ary))
tymczasem są odkodowywane poprzez:
unserialize(stripslashes(base64_decode($data_ary)))
przez co tak na moje oko przy pojawieniu się gdziekolwiek znaku "" (backslash) w danych, jest on usuwany co rozwala całą strukturę danych (za mało znaków w ciągu) i unserialize zwróci pustą tablicę
// w praktyce też się sprawdza, zrobiłem 4 próby i nie dodało pliku tylko kiedy gdzieś dałem backslasha
// ale zdaje się że dane są wcześniej chyba traktowane przez addslashes więc rozszerza to listę znaków zakazanych do wszystkich które są escape'owane (ew. stripslashes powinno być PO unserialize a nie na ciągu do niego przekazanym)
BTW Bo nie wiem gdzie mogę o takie rzeczy zapytać
po co w kodzie się pojawia często coś w stylu:
$bool = bool ? true : false;
czy to jest zrobione dla czytelności kodu, żeby potem wiedzieć jednym zerknięciem jakiego typu jest $bool, taką macie zasadę tworzenia kodu, czy może przypadkiem lub z niewiedzy ktoś takie coś wpisał ? ja strasznie nie lubię tego typu kwiatków i trochę mi się wydaje to zawracaniem d**y parserowi, to jak "idź do kuchni i sprawdź czy jest mleko, jak będzie to przyjdź i powiedz że jest a jak nie ma to przyjdź i powiedz że nie ma"
// no akurat teraz nie mogę znaleźć żadnego takiego fragmentu dziwnego zapisem bo to przypadkiem czasem znajduję przeglądając kod, no ale miejsca gdzie jest to co powyżej:
ucp_main.php: 'NEW' => $row['prvmsg_readed'] !== NULL ? false : true
cms_edit.php: ($text_md5 != $content_md5 ? true : false)
cms_watch.php: $db->sql_numfields($result) > 0 ? false : true;
upload/index.php: $mode = $_POST['extract'] == '1' ? true : false;
functions.php: 'URL' => $row['forum_type'] == FORUM_LINK ? true : false
functions_download.php: 'FOCUS' => $default_cat == $row['cat_id'] ? true : false
functions_user.php: return ( $match[1] > $photo_file_size ) ? false : true
geshi.php: $this->use_classes = ( $flag ) ? true : false;
parser.php: $tagallowed = (preg_match('>>REGEXP<<', $hold_string)) ? false : true;
posting.php: ($topic_type == TOPIC_GLOBAL ? true : false)
search.php: $unread_topic = $row['last_post_time'] > $mark_time && $topic_tracking ? true : false;
viewtopic.php: $a_post['REPORT'] = $row['post_id'] == $report ? true : false;
cron.php: $image = ( $rss_ary[$i]['type'] == 'open' ) ? true : false;
jedyne imo w miarę uzasadnione użycie:
forum.php: $topic_tracking = isset($row['topic_mark']) ? false : (isset($tracking_ary['t'][$forum_id][$row['topic_id']]) ? false : true);
linijek nie podaję, bo po pierwsze łatwo je odszukać a po drugie podaję wycinki z wersji którą mam u siebie, ma ona już trochę czasu i numery linijek pewnie się nie będą zgadzać, ale myślę że linijki jako takie zostały