Nach upgrade auf 2.0.4 - Fehler beim Post editieren!

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Ashka

Nach upgrade auf 2.0.4 - Fehler beim Post editieren!

Beitrag von Ashka »

Hi,
ich habe mein Board nach der Anleitung von Acyd Burn von 2.0.3 auf 2.0.4 geupdatet aber jetzt bekomme ich nach dem Absenden der Posts beim editieren/erstellen diese fehlermeldung:

Code: Alles auswählen

Warning: Missing argument 7 for user_notification() in board/includes/functions_post.php on line 599

Warning: Cannot add header information - headers already sent by (output started at board/includes/functions_post.php:599) in board/includes/page_header.php on line 940

Warning: Cannot add header information - headers already sent by (output started at board/includes/functions_post.php:599) in board/includes/page_header.php on line 943

Warning: Cannot add header information - headers already sent by (output started at board/includes/functions_post.php:599) in board/includes/page_header.php on line 944
Ich weiss schon wodurch der fehler ausgelöst wird aber ich habe keine idee wie ich das problem lösen kann, wenn ich in der functions post das rot markierte entferne ist die fehlermeldung weg:
function user_notification($mode, &$post_data, &$topic_title, &$forum_id, &$topic_id, &$post_id, &$notify_user)
Woran kann das liegen,also wo könnte ich was falsch gemacht haben?

Grüße Ashka
codemonkey
Ehemaliges Teammitglied
Beiträge: 3005
Registriert: 13.10.2002 15:15
Wohnort: Wilhelmshaven
Kontaktdaten:

Beitrag von codemonkey »

Poste mal die Zeilen um Zeile 599 in der function_post.php
Ashka

Beitrag von Ashka »

Das ist wie oben schon gepostet die funktion user_notification

Hier mal der ganze abschnitt:

Code: Alles auswählen

//
// Handle user notification on new post
//
function user_notification($mode, &$post_data, &$topic_title, &$forum_id, &$topic_id, &$post_id, &$notify_user)
{
        global $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
        global $board_config, $lang, $db, $phpbb_root_path, $phpEx;
        global $userdata, $user_ip;

        $current_time = time();

        if ($mode == 'delete')
        {
                $delete_sql = (!$post_data['first_post'] && !$post_data['last_post']) ? " AND user_id = " . $userdata['user_id'] : '';
                $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " WHERE topic_id = $topic_id" . $delete_sql;
                if (!$db->sql_query($sql))
                {
                        message_die(GENERAL_ERROR, "Couldn't change topic notify data", "", __LINE__, __FILE__, $sql);
                }
        }
        else
        {
                if ($mode == 'reply')
                {
                        $sql = "SELECT ban_userid
                                FROM " . BANLIST_TABLE;
                        if (!($result = $db->sql_query($sql)))
                        {
                                message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
                        }

                        $user_id_sql = "";
                        while ($row = $db->sql_fetchrow($result))
                        {
                                if (isset($row['ban_userid']))
                                {
                                        $user_id_sql = ", " . $row['ban_userid'];
                                }
                        }

                        $sql = "SELECT u.user_id, u.username, u.user_email, u.user_lang, t.topic_title, t.forum_id, f.forum_id, f.forum_name
                                FROM " . TOPICS_WATCH_TABLE . " tw, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . FORUMS_TABLE . " f
                                WHERE tw.topic_id = $topic_id AND t.forum_id = f.forum_id
                                        AND tw.user_id NOT IN (" . $userdata['user_id'] . ", " . ANONYMOUS . $user_id_sql . ")
                                        AND tw.notify_status = " . TOPIC_WATCH_UN_NOTIFIED . "
                                        AND u.user_id = tw.user_id";
                        if (!($result = $db->sql_query($sql)))
                        {
                                message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
                        }

                        $update_watched_sql = "";
                        $bcc_list_ary = array();
		       if ($row = $db->sql_fetchrow($result))
                        {
                                // Sixty second limit
			       @set_time_limit(60);
                                $post_text = preg_replace($orig_word, $replacement_word, unprepare_message($post_data['message']));

                                do
                                {
                                        if ($row['user_email'] != '')
                                        {


                                                $emailer->set_subject();//$lang['Topic_reply_notification']
						$bcc_list_ary[$row['user_lang']] .= (($bcc_list_ary[$row['user_lang']] != '') ? ', ' : '') . $row['user_email'];
					}
					$update_watched_sql .= ($update_watched_sql != '') ? ', ' . $row['user_id'] : $row['user_id'];
				}
				while ($row = $db->sql_fetchrow($result));

				//
				// Let's do some checking to make sure that mass mail functions
				// are working in win32 versions of php.
				//
				if (preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery'])
				{
					$ini_val = (@phpversion() >= '4.0.0') ? 'ini_get' : 'get_cfg_var';

					// We are running on windows, force delivery to use our smtp functions
					// since php's are broken by default
					$board_config['smtp_delivery'] = 1;
					$board_config['smtp_host'] = @$ini_val('SMTP');
				}

				if (sizeof($bcc_list_ary))
				{
					include($phpbb_root_path . 'includes/emailer.'.$phpEx);
					$emailer = new emailer($board_config['smtp_delivery']);

					$orig_word = array();
					$replacement_word = array();
					obtain_word_list($orig_word, $replacement_word);

					$script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path']));
					$script_name = ($script_name != '') ? $script_name . '/viewtopic.'.$phpEx : 'viewtopic.'.$phpEx;
					$server_name = trim($board_config['server_name']);
					$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
					$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) . '/' : '/';

					$email_headers = 'From: ' . $board_config['board_email'] . "\nReturn-Path: " . $board_config['board_email'] . "\n";

					$topic_title = (count($orig_word)) ? preg_replace($orig_word, $replacement_word, unprepare_message($topic_title)) : unprepare_message($topic_title);

					while (list($user_lang, $bcc_list) = each($bcc_list_ary))
					{
						$emailer->use_template('topic_notify', $user_lang);
						$emailer->email_address(' ');
						// The Topic_reply_notification lang string below will be used
						// if for some reason the mail template subject cannot be read
						// ... note it will not necessarily be in the posters own language!
						$emailer->set_subject($lang['Topic_reply_notification']);

						$emailer->extra_headers($email_headers . "Bcc: $bcc_list\n");

						// This is a nasty kludge to remove the username var ... till (if?)
						// translators update their templates
						$emailer->msg = preg_replace('#[ ]?{USERNAME}#', '', $emailer->msg);

                                                $emailer->assign_vars(array(
                                                        'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '',
                                                        "USERNAME" => $row['username'],
                                                        "SITENAME" => $board_config['sitename'],
                                                        "TOPIC_TITLE" => $topic_title,
                                                        "POST_TEXT" => $post_text,
                                                        "POSTERNAME" => $post_data['username'],
                                                        "U_TOPIC" => $server_protocol . $server_name . $server_port . $script_name . "?" . POST_POST_URL . "=$post_id#$post_id",
                                                        "FORUM_NAME" => $row['forum_name'],
                                                        "U_STOP_WATCHING_TOPIC" => $server_protocol . $server_name . $server_port . $script_name . "?" . POST_TOPIC_URL . "=$topic_id&unwatch=topic")
                                                );

                                                $emailer->send();
                                                $emailer->reset();

                                        }
                                }
                        }
                        $db->sql_freeresult($result);

                        $already_mailed = ( trim($update_watched_sql) == '' ) ? "" : "$update_watched_sql, ";

                        $sql = "SELECT u.user_id, u.username, u.user_email, u.user_lang, t.topic_title, f.forum_name
                                FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . FORUMS_WATCH_TABLE . " fw, " . FORUMS_TABLE . " f
                                WHERE fw.forum_id = $forum_id
                                        AND fw.user_id NOT IN (" . $already_mailed . $userdata['user_id'] . ", " . ANONYMOUS . $user_id_sql . " )
                                        AND t.topic_id = $topic_id
                                        AND f.forum_id = $forum_id
                                        AND f.forum_notify = '1'
                                        AND u.user_id = fw.user_id";
                        if ( !($result = $db->sql_query($sql)) )
                        {
                                message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
                        }

                        $script_name = preg_replace("/^\/?(.*?)\/?$/", "\\1", trim($board_config['script_path']));
                        $script_name_forum = ( $script_name != '' ) ? $script_name . '/viewforum.'.$phpEx : 'viewforum.'.$phpEx;
                        $script_name = ( $script_name != '' ) ? $script_name . '/viewtopic.'.$phpEx : 'viewtopic.'.$phpEx;

                        $temp_is_auth = array();

                        if ( $row = $db->sql_fetchrow($result) )
                        {
                                $topic_title = preg_replace($orig_word, $replacement_word, unprepare_message($row['topic_title']));
                                $post_text = preg_replace($orig_word, $replacement_word, unprepare_message($post_data['message']));

                                do
                                {
                                        $temp_userdata = get_userdata($row['user_id']);
                                        $temp_is_auth = auth(AUTH_ALL, $forum_id, $temp_userdata, -1);

                                        // another security check (i.e. the forum might have become private and
                                        // there are still users who have notification activated)
                                        if( $temp_is_auth['auth_read'] && $temp_is_auth['auth_view'] )
                                        {
                                                if ( $row['user_email'] != "" )
                                                {
                                                        $emailer->use_template("forum_notify", $row['user_lang']);
                                                        $emailer->email_address($row['user_email']);
                                                        $emailer->set_subject();//$lang['Topic_reply_notification']
                                                        $emailer->extra_headers($email_headers);

                                                        $emailer->assign_vars(array(
                                                                "EMAIL_SIG" => str_replace("<br />", "\n", "-- \n" . $board_config['board_email_sig']),
                                                                "USERNAME" => $row['username'],
                                                                "SITENAME" => $board_config['sitename'],
                                                                "TOPIC_TITLE" => $topic_title,
                                                                "POST_TEXT" => $post_text,
                                                                "POSTERNAME" => $post_data['username'],
                                                                "U_TOPIC" => $server_protocol . $server_name . $server_port . $script_name . "?" . POST_POST_URL . "=$post_id#$post_id",
                                                                "FORUM_NAME" => $row['forum_name'],
                                                                "U_STOP_WATCHING_FORUM" => $server_protocol . $server_name . $server_port . $script_name_forum . "?" . POST_FORUM_URL . "=$forum_id&unwatch=forum")
                                                        );

                                                        $emailer->send();
                                                        $emailer->reset();

                                                }
                                        }
                                }
                                while ( $row = $db->sql_fetchrow($result) );
                        }



                        if ($update_watched_sql != '')
                        {
                                $sql = "UPDATE " . TOPICS_WATCH_TABLE . "
                                        SET notify_status = " . TOPIC_WATCH_NOTIFIED . "
                                        WHERE topic_id = $topic_id
                                                AND user_id IN ($update_watched_sql)";
                                $db->sql_query($sql);
                        }

                }

                //
                // code for newtopic forum notification
                //
                if ( $mode == "newtopic" )
                {
                        $sql = "SELECT ban_userid
                                FROM " . BANLIST_TABLE;
                        if ( !($result = $db->sql_query($sql)) )
                        {
                                message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
                        }

                        $user_id_sql = "";
                        while ( $row = $db->sql_fetchrow($result) )
                        {
                                if ( isset($row['ban_userid']) )
                                {
                                        $user_id_sql = ", " . $row['ban_userid'];
                                }
                        }

                        $sql = "SELECT u.user_id, u.username, u.user_email, u.user_lang, f.forum_name
                                FROM " . USERS_TABLE . " u, " . FORUMS_WATCH_TABLE . " fw, " . FORUMS_TABLE . " f
                                WHERE fw.forum_id = $forum_id
                                        AND fw.user_id NOT IN (" . $userdata['user_id'] . ", " . ANONYMOUS . $user_id_sql . " )
                                        AND f.forum_id = $forum_id
                                        AND f.forum_notify = '1'
                                        AND u.user_id = fw.user_id";
                        if ( !($result = $db->sql_query($sql)) )
                        {
                                message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
                        }

                        $orig_word = array();
                        $replacement_word = array();
                        obtain_word_list($orig_word, $replacement_word);

                        include($phpbb_root_path . 'includes/emailer.'.$phpEx);
                        $emailer = new emailer($board_config['smtp_delivery']);

                        $script_name = preg_replace("/^\/?(.*?)\/?$/", "\\1", trim($board_config['script_path']));
                        $script_name_forum = ( $script_name != '' ) ? $script_name . '/viewforum.'.$phpEx : 'viewforum.'.$phpEx;
                        $script_name = ( $script_name != '' ) ? $script_name . '/viewtopic.'.$phpEx : 'viewtopic.'.$phpEx;
                        $server_name = trim($board_config['server_name']);
                        $server_protocol = ( $board_config['cookie_secure'] ) ? "https://" : "http://";
                        $server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/';

                        $email_headers = "From: " . $board_config['board_email'] . "\nReturn-Path: " . $board_config['board_email'] . "\r\n";

                        $temp_is_auth = array();
                        if ( $row = $db->sql_fetchrow($result) )
                        {
                                $topic_title = preg_replace($orig_word, $replacement_word, unprepare_message($post_data['subject']));
                                $post_text = preg_replace($orig_word, $replacement_word, unprepare_message($post_data['message']));

                                do
                                {
                                        $temp_userdata = get_userdata($row['user_id']);
                                        $temp_is_auth = auth(AUTH_ALL, $forum_id, $temp_userdata, -1);

                                        // another security check (i.e. the forum might have become private and
                                        // there are still users who have notification activated)
                                        if( $temp_is_auth['auth_read'] && $temp_is_auth['auth_view'] )
                                        {
                                                if ( $row['user_email'] != "" )
                                                {
                                                        $emailer->use_template("newtopic_notify", $row['user_lang']);
                                                        $emailer->email_address($row['user_email']);
                                                        $emailer->set_subject();//$lang['Topic_reply_notification']
                                                        $emailer->extra_headers($email_headers);

                                                        $emailer->assign_vars(array(
                                                                "EMAIL_SIG" => str_replace("<br />", "\n", "-- \n" . $board_config['board_email_sig']),
                                                                "USERNAME" => $row['username'],
                                                                "SITENAME" => $board_config['sitename'],
                                                                "TOPIC_TITLE" => $topic_title,
                                                                "POST_TEXT" => $post_text,
                                                                "POSTERNAME" => $post_data['username'],
                                                                "U_TOPIC" => $server_protocol . $server_name . $server_port . $script_name . "?" . POST_POST_URL . "=$post_id#$post_id",
                                                                "FORUM_NAME" => $row['forum_name'],
                                                                "U_STOP_WATCHING_FORUM" => $server_protocol . $server_name . $server_port . $script_name_forum . "?" . POST_FORUM_URL . "=$forum_id&unwatch=forum")
                                                        );

                                                        $emailer->send();
                                                        $emailer->reset();

                                                }
                                        }
                                }
                                while ( $row = $db->sql_fetchrow($result) );
                        }

                }

                $sql = "SELECT topic_id
                        FROM " . TOPICS_WATCH_TABLE . "
                        WHERE topic_id = $topic_id
                                AND user_id = " . $userdata['user_id'];
                if (!($result = $db->sql_query($sql)))
                {
                        message_die(GENERAL_ERROR, "Couldn't obtain topic watch information", "", __LINE__, __FILE__, $sql);
                }

                $row = $db->sql_fetchrow($result);

                if (!$notify_user && !empty($row['topic_id']))
                {
                        $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
                                WHERE topic_id = $topic_id
                                        AND user_id = " . $userdata['user_id'];
                        if (!$db->sql_query($sql))
                        {
                                message_die(GENERAL_ERROR, "Couldn't delete topic watch information", "", __LINE__, __FILE__, $sql);
                        }
                }
                else if ($notify_user && empty($row['topic_id']))
                {
                        $sql = "INSERT INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status)
                                VALUES (" . $userdata['user_id'] . ", $topic_id, 0)";
                        if (!$db->sql_query($sql))
                        {
                                message_die(GENERAL_ERROR, "Couldn't insert topic watch information", "", __LINE__, __FILE__, $sql);
                        }
                }
        }
}
Grüße Ashka
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

überprüfe mal ob in der posting.php ein solche Zeile existiert:

Code: Alles auswählen

user_notification($mode, $post_data, $post_info['topic_title'], $forum_id, $topic_id, $post_id, $notify_user);
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Ashka

Beitrag von Ashka »

@Acid das kann net das gleiche problem sein da sowohl posting.php als auch functions_post.php auf 2.0.4 geupdatet sind ;) Keine der beiden dateien ist auf dem stand vom 2.0.3..

Ashka
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

..zeig ma functions_post.php/posting.php verlinkt als Textversion .
Ashka

Beitrag von Ashka »

functions_post.php: functions_post.txt

posting.php: posting.txt

Grüße Ashka
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

hmm.. Du hast die user_notification() Zeile in der posting.php zweimal drin.
Die zweite Zeile schaut so aus, wie sie aussehen soll... die erste stammt wohl vom Notification Hack und verursacht eventuell diesen Fehler. Schau ma im Mod-Forum nach, da gibs ein oder zwei Themen zum Notification Hack.
Ashka

Beitrag von Ashka »

Hi,
ich habe alles abgesucht aber kein Thema zu einem ähnlichem oder diesem problem gefunden!Soll ich jetzt einen neuen Thread dazu im Mods Forum eröffnen oder hat jemand ne idee wie ich das beheben kann?

Grüße Ashka
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“