MyBB.de Forum

Normale Version: PHP 8 Portal funktioniert nicht mehr
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo, ich habe schon im Forum gesucht, jedoch keine tatsächliche Lösung für mein Problem gefunden. Seit umstellung auf php 8.x funktioniert das Portal nicht mehr. Gibt es dazu irgendwo schon einen Lösungansatz?
Kannst du dein Problem bitte näher beschreiben (siehe: https://www.mybb.de/forum/thread-30269.html)? "Funktioniert nicht mehr" kann alles bedeuten und erlaubt keine Analyse des Problems.
Unter php 7.1 funktioniert das Portal, unter php 8.x nicht mehr. Das Forum ist neu aufgesetzt, da ich zuvor mit Fehlern zu kämpfen hatte habe ich mich dazu entschlossen das Forum neu zu machen und habe die Beiträge und Benutzer wieder importiert.
https://www.mybb.de/forum/thread-38718-page-2.html
Auch diese Fehler bestehen weiterhin, das liegt jedoch anscheinend am SEO-Plugin.

Wenn ich das Portal aufrufe kommt...

kann diese Anfrage momentan nicht verarbeiten.
HTTP ERROR 500

in der log steht...

Code:
<error>
    <dateline>1690675565</dateline>
    <script>inc/plugins/google_seo/url.php</script>
    <line>100</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined array key "extra"</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/inc/plugins/google_seo/url.php:100]
#2  require_once() called at [/inc/plugins/google_seo.php:317]
#3  require_once() called at [/inc/class_plugins.php:38]
#4  pluginSystem->load() called at [/inc/init.php:235]
#5  require_once() called at [/global.php:20]
#6  require_once() called at [/portal.php:39]
</back_trace>
</error>

<error>
    <dateline>1690675565</dateline>
    <script>inc/plugins/google_seo/url.php</script>
    <line>1250</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined variable $location</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/inc/plugins/google_seo/url.php:1250]
#2  google_seo_url_hook() called at [/inc/plugins/google_seo/url.php:174]
#3  require_once() called at [/inc/plugins/google_seo.php:317]
#4  require_once() called at [/inc/class_plugins.php:38]
#5  pluginSystem->load() called at [/inc/init.php:235]
#6  require_once() called at [/global.php:20]
#7  require_once() called at [/portal.php:39]
</back_trace>
</error>

<error>
    <dateline>1690675565</dateline>
    <script>inc/plugins/thankyoulike.php</script>
    <line>1640</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined property: MyLanguage::$tyl_thankyou_sm</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/inc/plugins/thankyoulike.php:1640]
#2  thankyoulike_templatelist() called at [/inc/class_plugins.php:142]
#3  pluginSystem->run_hooks() called at [/global.php:100]
#4  require_once() called at [/portal.php:39]
</back_trace>
</error>

<error>
    <dateline>1690675565</dateline>
    <script>global.php(961) : eval()'d code</script>
    <line>40</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined variable $unreadreports</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/global.php(961) : eval()'d code:40]
#2  eval() called at [/global.php:961]
#3  require_once() called at [/portal.php:39]
</back_trace>
</error>

<error>
    <dateline>1690675565</dateline>
    <script>inc/plugins/google_seo/url.php</script>
    <line>833</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined array key 14255</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/inc/plugins/google_seo/url.php:833]
#2  google_seo_url_cache() called at [/inc/plugins/google_seo/url.php:1412]
#3  google_seo_url_thread() called at [/inc/functions.php:6530]
#4  get_thread_link() called at [/portal.php:430]
</back_trace>
</error>



Ok, Google SEO ist schuld, wenn deaktiviert funktioniert das Portal auch unter php 8.x.
Gibt es denn eine ALternative? Ich wollte wenigstens Suchmaschinenfreundliche URLs haben!? Exclamation
Zu früh gefreut, auch damit funktioniert das Portal nicht (HTTP ERROR 500, GET /portal.php HTTP/1.0).

Hier die .php

Code:
<?php
/**
* MyBB 1.8
* Copyright 2014 MyBB Group, All Rights Reserved
*
* Website: http://www.mybb.com
* License: http://www.mybb.com/about/license
*
*/

define("IN_MYBB", 1);
define("IN_PORTAL", 1);
define('THIS_SCRIPT', 'portal.php');

// set the path to your forums directory here (without trailing slash)
$forumdir = "./";

// end editing

$change_dir = "./";

if(!@chdir($forumdir) && !empty($forumdir))
{
    if(@is_dir($forumdir))
    {
        $change_dir = $forumdir;
    }
    else
    {
        die("\$forumdir is invalid!");
    }
}

$templatelist = "portal,portal_welcome_membertext,portal_stats,portal_search,portal_whosonline_memberbit,portal_whosonline,portal_latestthreads_thread,portal_latestthreads,portal_announcement_numcomments_no";
$templatelist .= ",postbit_attachments_thumbnails_thumbnail,postbit_attachments_images_image,postbit_attachments_attachment,postbit_attachments_thumbnails,postbit_attachments_images,postbit_attachments";
$templatelist .= ",multipage,multipage_end,multipage_jump_page,multipage_nextpage,multipage_page,multipage_page_current,multipage_page_link_current,multipage_prevpage,multipage_start,portal_announcement_send_item";
$templatelist .= ",portal_stats_nobody,portal_announcement_avatar,portal_announcement_numcomments,portal_announcement_icon,portal_pms,portal_welcome,portal_announcement,portal_welcome_guesttext";

require_once $change_dir."/global.php";
require_once MYBB_ROOT."inc/functions_post.php";
require_once MYBB_ROOT."inc/functions_user.php";
require_once MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;

// Load global language phrases
$lang->load("portal");

if($mybb->settings['portal'] == 0)
{
    error($lang->portal_disabled);
}

// Fetch the current URL
$portal_url = get_current_location();
$file_name = strtok(my_strtolower(basename($portal_url)), '?');

add_breadcrumb($lang->nav_portal, $file_name);

$plugins->run_hooks("portal_start");

$tunviewwhere = $unviewwhere = '';
// get forums user cannot view
$unviewable = get_unviewable_forums(true);
if($unviewable)
{
    $unviewwhere = " AND fid NOT IN ($unviewable)";
    $tunviewwhere = " AND t.fid NOT IN ($unviewable)";
}

// get inactive forums
$inactive = get_inactive_forums();
if($inactive)
{
    $unviewwhere .= " AND fid NOT IN ($inactive)";
    $tunviewwhere .= " AND t.fid NOT IN ($inactive)";
}

$mybb->user['username'] = htmlspecialchars_uni($mybb->user['username']);

$welcome = '';
// If user is known, welcome them
if($mybb->settings['portal_showwelcome'] != 0)
{
    if($mybb->user['uid'] != 0)
    {
        // Get number of new posts, threads, announcements
        $query = $db->simple_select("posts", "COUNT(pid) AS newposts", "visible=1 AND dateline>'".$mybb->user['lastvisit']."'{$unviewwhere}");
        $newposts = $db->fetch_field($query, "newposts");
        if($newposts)
        {
            // If there aren't any new posts, there is no point in wasting two more queries
            $query = $db->simple_select("threads", "COUNT(tid) AS newthreads", "visible=1 AND dateline>'".$mybb->user['lastvisit']."'{$unviewwhere}");
            $newthreads = $db->fetch_field($query, "newthreads");

            $newann = 0;
            if(!empty($mybb->settings['portal_announcementsfid']))
            {
                $annfidswhere = '';
                if($mybb->settings['portal_announcementsfid'] != -1)
                {
                    $announcementsfids = explode(',', (string)$mybb->settings['portal_announcementsfid']);
                    if(is_array($announcementsfids))
                    {
                        foreach($announcementsfids as &$fid)
                        {
                            $fid = (int)$fid;
                        }
                        unset($fid);

                        $announcementsfids = implode(',', $announcementsfids);

                        $annfidswhere = " AND fid IN (".$announcementsfids.")";
                    }
                }

                $query = $db->simple_select("threads", "COUNT(tid) AS newann", "visible=1 AND dateline>'".$mybb->user['lastvisit']."'{$annfidswhere}{$unviewwhere}");
                $newann = $db->fetch_field($query, "newann");
            }
        }
        else
        {
            $newposts = 0;
            $newthreads = 0;
            $newann = 0;
        }

        // Make the text
        if($newann == 1)
        {
            $lang->new_announcements = $lang->new_announcement;
        }
        else
        {
            $lang->new_announcements = $lang->sprintf($lang->new_announcements, $newann);
        }
        if($newthreads == 1)
        {
            $lang->new_threads = $lang->new_thread;
        }
        else
        {
            $lang->new_threads = $lang->sprintf($lang->new_threads, $newthreads);
        }
        if($newposts == 1)
        {
            $lang->new_posts = $lang->new_post;
        }
        else
        {
            $lang->new_posts = $lang->sprintf($lang->new_posts, $newposts);
        }
        eval("\$welcometext = \"".$templates->get("portal_welcome_membertext")."\";");

    }
    else
    {
        $lang->guest_welcome_registration = $lang->sprintf($lang->guest_welcome_registration, $mybb->settings['bburl'].'/member.php?action=register');
        $mybb->user['username'] = $lang->guest;
        switch($mybb->settings['username_method'])
        {
            case 0:
                $username = $lang->username;
                break;
            case 1:
                $username = $lang->username1;
                break;
            case 2:
                $username = $lang->username2;
                break;
            default:
                $username = $lang->username;
                break;
        }
        eval("\$welcometext = \"".$templates->get("portal_welcome_guesttext")."\";");
    }
    $lang->welcome = $lang->sprintf($lang->welcome, $mybb->user['username']);
    eval("\$welcome = \"".$templates->get("portal_welcome")."\";");
}

$pms = '';
// Private messages box
if($mybb->settings['portal_showpms'] != 0)
{
    if($mybb->user['uid'] != 0 && $mybb->user['receivepms'] != 0 && $mybb->usergroup['canusepms'] != 0 && $mybb->settings['enablepms'] != 0)
    {
        $messages['pms_total'] = $mybb->user['pms_total'];
        $messages['pms_unread'] = $mybb->user['pms_unread'];

        $lang->pms_received_new = $lang->sprintf($lang->pms_received_new, $mybb->user['username'], $messages['pms_unread']);
        eval("\$pms = \"".$templates->get("portal_pms")."\";");
    }
}

$stats = '';
// Get Forum Statistics
if($mybb->settings['portal_showstats'] != 0)
{
    $stats = $cache->read("stats");
    $stats['numthreads'] = my_number_format($stats['numthreads']);
    $stats['numposts'] = my_number_format($stats['numposts']);
    $stats['numusers'] = my_number_format($stats['numusers']);
    if(!$stats['lastusername'])
    {
        eval("\$newestmember = \"".$templates->get("portal_stats_nobody")."\";");
    }
    else
    {
        $newestmember = build_profile_link($stats['lastusername'], $stats['lastuid']);
    }
    eval("\$stats = \"".$templates->get("portal_stats")."\";");
}

$search = '';
// Search box
if($mybb->settings['portal_showsearch'] != 0)
{
    eval("\$search = \"".$templates->get("portal_search")."\";");
}

$onlinecount = null;
$whosonline = '';
// Get the online users
if($mybb->settings['portal_showwol'] != 0 && $mybb->usergroup['canviewonline'] != 0)
{
    if($mybb->settings['wolorder'] == 'username')
    {
        $order_by = 'u.username ASC';
        $order_by2 = 's.time DESC';
    }
    else
    {
        $order_by = 's.time DESC';
        $order_by2 = 'u.username ASC';
    }

    $timesearch = TIME_NOW - $mybb->settings['wolcutoff'];
    $guestcount = $membercount = $botcount = $anoncount = 0;
    $doneusers = $onlinemembers = $onlinebots = array();

    $query = $db->simple_select("sessions", "COUNT(DISTINCT ip) AS guestcount", "uid = 0 AND time > $timesearch");
    $guestcount = $db->fetch_field($query, "guestcount");

    $query = $db->query("
        SELECT
            s.sid, s.ip, s.uid, s.time, s.location, u.username, u.invisible, u.usergroup, u.displaygroup
        FROM
            ".TABLE_PREFIX."sessions s
            LEFT JOIN ".TABLE_PREFIX."users u ON (s.uid=u.uid)
        WHERE (s.uid != 0 OR SUBSTR(s.sid,4,1) = '=') AND s.time > $timesearch
        ORDER BY {$order_by}, {$order_by2}
    ");

    // Fetch spiders
    $spiders = $cache->read('spiders');

    while($user = $db->fetch_array($query))
    {

        // Create a key to test if this user is a search bot.
        $botkey = my_strtolower(str_replace("bot=", '', $user['sid']));

        if($user['uid'] > 0)
        {
            if(empty($doneusers[$user['uid']]) || $doneusers[$user['uid']] < $user['time'])
            {
                ++$membercount;

                $doneusers[$user['uid']] = $user['time'];

                // If the user is logged in anonymously, update the count for that.
                if($user['invisible'] == 1)
                {
                    ++$anoncount;
                }

                if($user['invisible'] == 1)
                {
                    $invisiblemark = "*";
                }
                else
                {
                    $invisiblemark = '';
                }

                if(($user['invisible'] == 1 && ($mybb->usergroup['canviewwolinvis'] == 1 || $user['uid'] == $mybb->user['uid'])) || $user['invisible'] != 1)
                {
                    $user['username'] = format_name(htmlspecialchars_uni($user['username']), $user['usergroup'], $user['displaygroup']);
                    $user['profilelink'] = get_profile_link($user['uid']);
                    eval("\$onlinemembers[] = \"".$templates->get("portal_whosonline_memberbit", 1, 0)."\";");
                }
            }
        }
        elseif(my_strpos($user['sid'], 'bot=') !== false && $spiders[$botkey] && $mybb->settings['woldisplayspiders'] == 1)
        {
            // The user is a search bot.
            if($mybb->settings['wolorder'] == 'username')
            {
                $key = $spiders[$botkey]['name'];
            }
            else
            {
                $key = $user['time'];
            }

            $onlinebots[$key] = format_name($spiders[$botkey]['name'], $spiders[$botkey]['usergroup']);
            ++$botcount;
        }
    }

    if($mybb->settings['wolorder'] == 'activity')
    {
        // activity ordering is DESC, username is ASC
        krsort($onlinebots);
    }
    else
    {
        ksort($onlinebots);
    }

    $onlinemembers = array_merge($onlinebots, $onlinemembers);
    if(!empty($onlinemembers))
    {
        $comma = $lang->comma." ";
        $onlinemembers = implode($comma, $onlinemembers);
    }
    else
    {
        $onlinemembers = "";
    }

    $onlinecount = $membercount + $guestcount + $botcount;

    // If we can see invisible users add them to the count
    if($mybb->usergroup['canviewwolinvis'] == 1)
    {
        $onlinecount += $anoncount;
    }

    // If we can't see invisible users but the user is an invisible user incriment the count by one
    if($mybb->usergroup['canviewwolinvis'] != 1 && isset($mybb->user['invisible']) && $mybb->user['invisible'] == 1)
    {
        ++$onlinecount;
    }

    // Most users online
    $mostonline = $cache->read("mostonline");
    if($onlinecount !== null && $onlinecount > $mostonline['numusers'])
    {
        $time = TIME_NOW;
        $mostonline['numusers'] = $onlinecount;
        $mostonline['time'] = $time;
        $cache->update("mostonline", $mostonline);
    }
    $recordcount = $mostonline['numusers'];
    $recorddate = my_date('relative', $mostonline['time']);

    if($onlinecount == 1)
    {
      $lang->online_users = $lang->online_user;
    }
    else
    {
      $lang->online_users = $lang->sprintf($lang->online_users, $onlinecount);
    }
    $lang->online_counts = $lang->sprintf($lang->online_counts, $membercount, $guestcount);
    eval("\$whosonline = \"".$templates->get("portal_whosonline")."\";");
}

$latestthreads = '';
// Latest forum discussions
if($mybb->settings['portal_showdiscussions'] != 0 && $mybb->settings['portal_showdiscussionsnum'] && $mybb->settings['portal_excludediscussion'] != -1)
{
    $altbg = alt_trow();
    $threadlist = '';

    $excludeforums = '';
    if(!empty($mybb->settings['portal_excludediscussion']))
    {
        $excludeforums = "AND t.fid NOT IN ({$mybb->settings['portal_excludediscussion']})";
    }

    $query = $db->query("
        SELECT t.tid, t.fid, t.uid, t.lastpost, t.lastposteruid, t.lastposter, t.subject, t.replies, t.views, u.username
        FROM ".TABLE_PREFIX."threads t
        LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)
        WHERE 1=1 {$excludeforums}{$tunviewwhere} AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
        ORDER BY t.lastpost DESC
        LIMIT 0, ".$mybb->settings['portal_showdiscussionsnum']
    );
    while($thread = $db->fetch_array($query))
    {
        $forumpermissions[$thread['fid']] = forum_permissions($thread['fid']);

        // Make sure we can view this thread
        if(isset($forumpermissions[$thread['fid']]['canonlyviewownthreads']) && $forumpermissions[$thread['fid']]['canonlyviewownthreads'] == 1 && $thread['uid'] != $mybb->user['uid'])
        {
            continue;
        }

        $lastpostdate = my_date('relative', $thread['lastpost']);
        if(!$thread['lastposteruid'] && !$thread['lastposter'])
        {
            $lastposter = htmlspecialchars_uni($lang->guest);
        }
        else
        {
            $lastposter = htmlspecialchars_uni($thread['lastposter']);
        }
        $thread['replies'] = my_number_format($thread['replies']);
        $thread['views'] = my_number_format($thread['views']);

        // Don't link to guest's profiles (they have no profile).
        if($thread['lastposteruid'] == 0)
        {
            $lastposterlink = $lastposter;
        }
        else
        {
            $lastposterlink = build_profile_link($lastposter, $thread['lastposteruid']);
        }

        $thread['subject'] = $thread['fullsubject'] = $parser->parse_badwords($thread['subject']);
        if(my_strlen($thread['subject']) > 25)
        {
            $thread['subject'] = my_substr($thread['subject'], 0, 25) . "...";
        }
        $thread['subject'] = htmlspecialchars_uni($thread['subject']);
        $thread['fullsubject'] = htmlspecialchars_uni($thread['fullsubject']);

        $thread['threadlink'] = get_thread_link($thread['tid']);
        $thread['lastpostlink'] = get_thread_link($thread['tid'], 0, "lastpost");
        $thread['forumlink'] = get_forum_link($thread['fid']);
        $thread['forumname'] = $forum_cache[$thread['fid']]['name'];
        eval("\$threadlist .= \"".$templates->get("portal_latestthreads_thread")."\";");
        $altbg = alt_trow();
    }
    if($threadlist)
    {
        // Show the table only if there are threads
        eval("\$latestthreads = \"".$templates->get("portal_latestthreads")."\";");
    }
}

$announcements = '';
if(!empty($mybb->settings['portal_announcementsfid']))
{
    // Get latest news announcements
    // Build where clause
    $annfidswhere = '';
    $announcementcount = 0;
    if($mybb->settings['portal_announcementsfid'] != -1)
    {
        // First validate announcement fids:
        $announcementsfids = explode(',', (string)$mybb->settings['portal_announcementsfid']);
        if(is_array($announcementsfids))
        {
            foreach($announcementsfids as $fid)
            {
                $fid_array[] = (int)$fid;
            }
            unset($fid);

            $announcementsfids = implode(',', $fid_array);

            $annfidswhere = " AND t.fid IN ($announcementsfids)";
        }
    }

    // And get them!
    foreach($forum_cache as $fid => $f)
    {
        if(empty($fid_array) || (is_array($fid_array) && in_array($fid, $fid_array)))
        {
            $forum[$fid] = $f;
        }
    }

    $query = $db->simple_select("threads t", "COUNT(t.tid) AS threads", "t.visible='1'{$annfidswhere}{$tunviewwhere} AND t.closed NOT LIKE 'moved|%'", array('limit' => 1));
    $announcementcount = $db->fetch_field($query, "threads");

    $numannouncements = (int)$mybb->settings['portal_numannouncements'];
    if(!$numannouncements)
    {
        $numannouncements = 10; // Default back to 10
    }

    $page = $mybb->get_input('page', MyBB::INPUT_INT);
    $pages = $announcementcount / $numannouncements;
    $pages = ceil($pages);

    if($page > $pages || $page <= 0)
    {
        $page = 1;
    }

    if($page)
    {
        $start = ($page-1) * $numannouncements;
    }
    else
    {
        $start = 0;
        $page = 1;
    }

    $multipage = multipage($announcementcount, $numannouncements, $page, $file_name);

    $pids = '';
    $tids = '';
    $comma = '';
    $posts = array();
    $attachmentcount = array();
    $query = $db->query("
        SELECT p.pid, p.message, p.tid, p.smilieoff, t.attachmentcount
        FROM ".TABLE_PREFIX."posts p
        LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid)
        WHERE t.visible='1'{$annfidswhere}{$tunviewwhere} AND t.closed NOT LIKE 'moved|%' AND t.firstpost=p.pid
        ORDER BY t.dateline DESC
        LIMIT {$start}, {$numannouncements}"
    );
    while($getid = $db->fetch_array($query))
    {
        $attachmentcount[$getid['tid']] = $getid['attachmentcount'];
        foreach($attachmentcount as $tid => $attach_count)
        {
            if($attach_count > 0)
            {
                $pids .= ",'{$getid['pid']}'";
            }

            $posts[$getid['tid']] = $getid;
        }

        $tids .= ",'{$getid['tid']}'";
    }
    if(!empty($posts))
    {
        if($pids != '' && $mybb->settings['enableattachments'] == 1)
        {
            $pids = "pid IN(0{$pids})";
            // Now lets fetch all of the attachments for these posts
            $query = $db->simple_select("attachments", "*", $pids);
            while($attachment = $db->fetch_array($query))
            {
                $attachcache[$attachment['pid']][$attachment['aid']] = $attachment;
            }
        }

        if(is_array($forum))
        {
            foreach($forum as $fid => $forumrow)
            {
                $forumpermissions[$fid] = forum_permissions($fid);
            }
        }

        $icon_cache = $cache->read("posticons");

        $query = $db->query("
            SELECT t.*, t.username AS threadusername, u.username, u.avatar, u.avatardimensions
            FROM ".TABLE_PREFIX."threads t
            LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = t.uid)
            WHERE t.tid IN (0{$tids}){$annfidswhere}{$tunviewwhere} AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
            ORDER BY t.dateline DESC
            LIMIT 0, {$numannouncements}"
        );
        while($announcement = $db->fetch_array($query))
        {
            // Make sure we can view this announcement
            if(isset($forumpermissions[$announcement['fid']]['canonlyviewownthreads']) && $forumpermissions[$announcement['fid']]['canonlyviewownthreads'] == 1 && $announcement['uid'] != $mybb->user['uid'])
            {
                continue;
            }

            $announcement['message'] = $posts[$announcement['tid']]['message'];
            $announcement['pid'] = $posts[$announcement['tid']]['pid'];
            $announcement['smilieoff'] = $posts[$announcement['tid']]['smilieoff'];
            $announcement['threadlink'] = get_thread_link($announcement['tid']);
            $announcement['forumlink'] = get_forum_link($announcement['fid']);
            $announcement['forumname'] = $forum_cache[$announcement['fid']]['name'];
            $announcement['username'] = htmlspecialchars_uni($announcement['username']);
            if(!$announcement['uid'] && !$announcement['threadusername'])
            {
                $announcement['threadusername'] = htmlspecialchars_uni($lang->guest);
            }
            else
            {
                $announcement['threadusername'] = htmlspecialchars_uni($announcement['threadusername']);
            }

            if($announcement['uid'] == 0)
            {
                $profilelink = $announcement['threadusername'];
            }
            else
            {
                $profilelink = build_profile_link($announcement['username'], $announcement['uid']);
            }

            if(!$announcement['username'])
            {
                $announcement['username'] = $announcement['threadusername'];
            }
            $announcement['subject'] = htmlspecialchars_uni($parser->parse_badwords($announcement['subject']));
            if($announcement['icon'] > 0 && $icon_cache[$announcement['icon']])
            {
                $icon = $icon_cache[$announcement['icon']];
                $icon['path'] = str_replace("{theme}", $theme['imgdir'], $icon['path']);
                $icon['path'] = htmlspecialchars_uni($icon['path']);
                $icon['name'] = htmlspecialchars_uni($icon['name']);
                eval("\$icon = \"".$templates->get("portal_announcement_icon")."\";");
            }
            else
            {
                $icon = "&nbsp;";
            }

            $useravatar = format_avatar($announcement['avatar'], $announcement['avatardimensions']);
            eval("\$avatar = \"".$templates->get("portal_announcement_avatar")."\";");

            $anndate = my_date('relative', $announcement['dateline']);

            if($announcement['replies'])
            {
                eval("\$numcomments = \"".$templates->get("portal_announcement_numcomments")."\";");
            }
            else
            {
                eval("\$numcomments = \"".$templates->get("portal_announcement_numcomments_no")."\";");
                $lastcomment = '';
            }

            $senditem = '';
            if($mybb->user['uid'] > 0 && $mybb->usergroup['cansendemail'] == 1)
            {
                eval("\$senditem = \"".$templates->get("portal_announcement_send_item")."\";");
            }

            $plugins->run_hooks("portal_announcement");

            $parser_options = array(
                "allow_html" => $mybb->settings['announcementshtml'] && $forum[$announcement['fid']]['allowhtml'],
                "allow_mycode" => $forum[$announcement['fid']]['allowmycode'],
                "allow_smilies" => $forum[$announcement['fid']]['allowsmilies'],
                "allow_imgcode" => $forum[$announcement['fid']]['allowimgcode'],
                "allow_videocode" => $forum[$announcement['fid']]['allowvideocode'],
                "filter_badwords" => 1
            );
            if($announcement['smilieoff'] == 1)
            {
                $parser_options['allow_smilies'] = 0;
            }

            if($mybb->user['uid'] != 0 && $mybb->user['showimages'] != 1 || $mybb->settings['guestimages'] != 1 && $mybb->user['uid'] == 0)
            {
                $parser_options['allow_imgcode'] = 0;
            }

            if($mybb->user['uid'] != 0 && $mybb->user['showvideos'] != 1 || $mybb->settings['guestvideos'] != 1 && $mybb->user['uid'] == 0)
            {
                $parser_options['allow_videocode'] = 0;
            }

            $message = $parser->parse_message($announcement['message'], $parser_options);

            $post['attachments'] = '';
            if($mybb->settings['enableattachments'] == 1 && isset($attachcache[$announcement['pid']]) && is_array($attachcache[$announcement['pid']]))
            { // This post has 1 or more attachments
                $validationcount = 0;
                $id = $announcement['pid'];
                $post['attachmentlist'] = $post['thumblist'] = $post['imagelist'] = $post['attachedthumbs'] = $post['attachedimages'] = '';
                foreach($attachcache[$id] as $aid => $attachment)
                {
                    if($attachment['visible'])
                    { // There is an attachment thats visible!
                        $attachment['filename'] = htmlspecialchars_uni($attachment['filename']);
                        $attachment['filesize'] = get_friendly_size($attachment['filesize']);
                        $ext = get_extension($attachment['filename']);
                        if($ext == "jpeg" || $ext == "gif" || $ext == "bmp" || $ext == "png" || $ext == "jpg")
                        {
                            $isimage = true;
                        }
                        else
                        {
                            $isimage = false;
                        }
                        $attachment['icon'] = get_attachment_icon($ext);
                        if(!$attachment['dateuploaded'])
                        {
                            $attachment['dateuploaded'] = $announcement['dateline'];
                        }
                        $attachdate = my_date('normal', $attachment['dateuploaded']);
                        // Support for [attachment=id] code
                        if(stripos($message, "[attachment=".$attachment['aid']."]") !== false)
                        {
                            if($attachment['thumbnail'] != "SMALL" && $attachment['thumbnail'] != '')
                            { // We have a thumbnail to show (and its not the "SMALL" enough image
                                eval("\$attbit = \"".$templates->get("postbit_attachments_thumbnails_thumbnail")."\";");
                            }
                            elseif($attachment['thumbnail'] == "SMALL" && $forumpermissions[$announcement['fid']]['candlattachments'] == 1)
                            {
                                // Image is small enough to show - no thumbnail
                                eval("\$attbit = \"".$templates->get("postbit_attachments_images_image")."\";");
                            }
                            else
                            {
                                // Show standard link to attachment
                                eval("\$attbit = \"".$templates->get("postbit_attachments_attachment")."\";");
                            }
                            $message = preg_replace("#\[attachment=".$attachment['aid']."]#si", $attbit, $message);
                        }
                        else
                        {
                            if($attachment['thumbnail'] != "SMALL" && $attachment['thumbnail'] != '')
                            { // We have a thumbnail to show
                                eval("\$post['thumblist'] .= \"".$templates->get("postbit_attachments_thumbnails_thumbnail")."\";");
                                if($tcount == 5)
                                {
                                    $thumblist .= "<br />";
                                    $tcount = 0;
                                }
                                ++$tcount;
                            }
                            elseif($attachment['thumbnail'] == "SMALL" && $forumpermissions[$announcement['fid']]['candlattachments'] == 1)
                            {
                                // Image is small enough to show - no thumbnail
                                eval("\$post['imagelist'] .= \"".$templates->get("postbit_attachments_images_image")."\";");
                            }
                            else
                            {
                                eval("\$post['attachmentlist'] .= \"".$templates->get("postbit_attachments_attachment")."\";");
                            }
                        }
                    }
                    else
                    {
                        $validationcount++;
                    }
                }
                if($post['thumblist'])
                {
                    eval("\$post['attachedthumbs'] = \"".$templates->get("postbit_attachments_thumbnails")."\";");
                }
                if($post['imagelist'])
                {
                    eval("\$post['attachedimages'] = \"".$templates->get("postbit_attachments_images")."\";");
                }
                if($post['attachmentlist'] || $post['thumblist'] || $post['imagelist'])
                {
                    eval("\$post['attachments'] = \"".$templates->get("postbit_attachments")."\";");
                }
            }

            eval("\$announcements .= \"".$templates->get("portal_announcement")."\";");
            unset($post);
        }
    }
}

$plugins->run_hooks("portal_end");

eval("\$portal = \"".$templates->get("portal")."\";");
output_page($portal);


Code:
<error>
    <dateline>1690756683</dateline>
    <script>inc/plugins/thankyoulike.php</script>
    <line>1640</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined property: MyLanguage::$tyl_thankyou_sm</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/inc/plugins/thankyoulike.php:1640]
#2  thankyoulike_templatelist() called at [/inc/class_plugins.php:142]
#3  pluginSystem->run_hooks() called at [/global.php:100]
#4  require_once() called at [/index.php:18]
</back_trace>
</error>

<error>
    <dateline>1690756683</dateline>
    <script>global.php(961) : eval()'d code</script>
    <line>40</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined variable $unreadreports</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/global.php(961) : eval()'d code:40]
#2  eval() called at [/global.php:961]
#3  require_once() called at [/index.php:18]
</back_trace>
</error>

<error>
    <dateline>1690756683</dateline>
    <script>inc/plugins/google_seo/url.php</script>
    <line>1010</line>
    <type>2</type>
    <friendly_type>Warning</friendly_type>
    <message>Undefined array key "dirty"</message>
    <back_trace>#0  errorHandler->error() called at [/inc/class_error.php:153]
#1  errorHandler->error_callback() called at [/inc/plugins/google_seo/url.php:1010]
#2  google_seo_url_cache_hook() called at [/inc/class_plugins.php:142]
#3  pluginSystem->run_hooks() called at [/inc/functions.php:99]
#4  output_page() called at [/index.php:469]
</back_trace>
</error>
Dann wird es an einem anderen Plugin liegen, du scheint ja einige zu verwenden. Zu deinen anderen Fehlermeldungen sollte es hier im Forum schon Diskussionen und Tipps geben, die sich mithilfe der Suche finden lassen sollten, z.B.:
https://www.mybb.de/forum/thread-38683-p...#pid253393
In deinem anderen Thread: https://www.mybb.de/forum/thread-38718-p...#pid253924
Ehrlich gesagt habe ich keine Lust mehr. ich habe das Forum ganz neu aufgesetzt, und nun fällt mit das SEO auf die Füsse. Ich habe wenig Plugins installiert, leider scheinen fast alle Plugins veraltet zu sein. Ich lass das nun einfach und hoffe das irgendwann mal was kompatibles unverbasteltes kommt. Dennoch danke.
(01.08.2023, 07:55)macca schrieb: [ -> ]Ehrlich gesagt habe ich keine Lust mehr.
Etwas Biss und Durchhaltenwille müssen alle Forenbtreiber im Blut haben Big Grin

(01.08.2023, 07:55)macca schrieb: [ -> ]ich habe das Forum ganz neu aufgesetzt, und nun fällt mit das SEO auf die Füsse. Ich habe wenig Plugins installiert, leider scheinen fast alle Plugins veraltet zu sein. Ich lass das nun einfach und hoffe das irgendwann mal was kompatibles unverbasteltes kommt. Dennoch danke.

Was komplettes? Nicht alle PlugIn-Entwickler sind gewillt ihre PlugIns auf PHP-8 zu aktualisieren.

Wenn seitens des Entwicklers keine auf PHP-8 aktualisierten PlugIns angeboten werden muss man eben selbst mal Hand anlegen. Alle PlugIns deaktivieren und jedes PlugIn wieder einzeln aktivieren und aufpoppente Fehler beheben.

Da Du nur wenige (welche Anzahl einhaltet die Definition  "wenige" bei Dir?) PlugIns aktiviert hast, dürfte dies in kurzer Zeit erledigt sein.

Das SEO-PlugIn habe ich in drei Foren bereits erfolgreich aktualisiert. StefanT hat Dir einen Link zum Download der Version in PHP-8 aufgezeigt. Hast Du dies installiert?

Liste mal bitte Deine installierten PlugIns auf. Vielleicht habe ich die ein oder andere Lösung in meinem Fundus.
Ich habe Biss aber nicht die Zeit. ich habe schon Stunden damit verbracht. Ich bin mehr Bastler und kein Entwickler. Ich würde die Probleme gerne beheben aber alleine kann ich das nicht.
(01.08.2023, 21:06)macca schrieb: [ -> ]...ich habe schon Stunden damit verbracht.
Letztlich aber erfolglos. Das kenne ich selbst nur zu gut.
(01.08.2023, 21:06)macca schrieb: [ -> ]Ich bin mehr Bastler und kein Entwickler.
Die wenigstens hier sind "Entwickler"
(01.08.2023, 21:06)macca schrieb: [ -> ]Ich würde die Probleme gerne beheben aber alleine kann ich das nicht.
Dann solltest, als Minimum zur Lösungsfindung Deines Problems, die hier gestellten Fragen beantworten.

Nebenbei:
Ein Link zum Forum wäre, um bei der Fehlerquellenfindung effektiver zu sein, für die Helfenden hilfreicher.
Seiten: 1 2