Update 2.0.16 nach 2.0.17, PNs können nicht gelöscht werden

Eine Neuinstallation von phpBB 2.0 wird auf phpBB.de nicht mehr unterstützt.
Siehe auch Entwicklungs-Ende von phpBB 2.0 - Auswirkungen auf phpBB.de
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.

Eine Neuinstallation von phpBB 2.0 wird auf phpBB.de nicht mehr unterstützt.
Siehe auch Entwicklungs-Ende von phpBB 2.0 - Auswirkungen auf phpBB.de
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Maria77 hat geschrieben:Der Fehler muß in der Anweisung hier stecken
Ja, tut er - hat, wie vermutet, mit dem Mod zu tun.

Dieser Code sollte funktionieren:

Code: Alles auswählen

# 
#-----[ OPEN ]--------------------------------------------- 
# 
privmsg.php (Version 2.0.17)

#
#-----[ FIND ]---------------------------------------------
#
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
            privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
            break; 

#
#-----[ REPLACE WITH ]---------------------------------------------
# 
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
            privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " )";
            break;

Das sollte der Fix für den PN Reply MOD ab der 2.0.17 sein.

@naptune: verlink doch mal bitte Deine privmsgs.php als privmsgs.txt

Gruß

Saint

*edit:* Ich hab den Fix mal auf das Nötigste eingedampft
Zuletzt geändert von Saint am 06.08.2005 23:05, insgesamt 5-mal geändert.
naptune
Mitglied
Beiträge: 141
Registriert: 28.02.2005 08:21
Wohnort: Regensburg
Kontaktdaten:

Beitrag von naptune »

Ok, hier der Link zu meiner:

privmsg.txt
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Du hast den selben Mod eingebaut. Oder hast Du ein phpBB plus Board?
Versuch mal bitte den Fix, den ich oben gepostet hab und berichte. Ich kann das leider nicht selbst testen, da ich den Mod nicht benutze und kenne.

Gruß

Saint
naptune
Mitglied
Beiträge: 141
Registriert: 28.02.2005 08:21
Wohnort: Regensburg
Kontaktdaten:

Beitrag von naptune »

Ich habe weden den Mod eingebaut noch habe ich ein Plus Board.

Wenn ich deinen Fix einbaue kommt diese Fehlermeldung:
Could not obtain id list to delete messages

DEBUG MODE

SQL Error : 1109 Unknown table 'pm' in where clause

SELECT privmsgs_id FROM phpbb_privmsgs WHERE privmsgs_to_userid = 4 AND ( privmsgs_type = 0 OR privmsgs_type = 1 OR privmsgs_type = 5 OR pm.privmsgs_type = 6 ) AND privmsgs_id IN (1760)

Line : 780
File : privmsg.php
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Wie auch immer der Mod heißt. Auffällig bei euch Beiden sind diese zusätzlichen Codezeilen:

Code: Alles auswählen

OR pm.privmsgs_type = " . PRIVMSGS_REPLY_MAIL . "
Die sind in der Original privmsgs.php nicht vorhanden, bei euch Beiden schon.
Bei Dir kann ich noch zusätzlich den Attachment Mod sehen, aber zu welchem Mod gehören diese Codezeilen?
Den Fix werde ich mir nachher nochmal anschauen, dort müssen diese Codezeilen offensichtlich integriert werden (bisher scheinbar noch nicht richtig) - aber ich muß jetzt erstmal los.
Check mal bitte ob die nicht löschbaren PNs zu einem bestimmten Typus gehören - AntwortPNs oder sowat. Oder kannst Du alle nicht löschen?

Gruß

Saint
naptune
Mitglied
Beiträge: 141
Registriert: 28.02.2005 08:21
Wohnort: Regensburg
Kontaktdaten:

Beitrag von naptune »

AHHH....jetzt fällt mir grad noch ein, ich hab den PM_replied_Mod eingebaut.


In der Anleitung stehen diese Änderungen:
#-----[ OPEN ]------------------------------------------------
#
privmsg.php
#
#-----[ FIND ]------------------------------------------------
#

$refresh = $preview || $submit_search;
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$submit_reply = ( isset($HTTP_POST_VARS['reply']) ) ? $HTTP_POST_VARS['reply'] : 0;
$submit_reply_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : 0;
if (($submit_reply == 1) AND ($submit_reply_id > 0) )
{
$sql_reply = "UPDATE " . PRIVMSGS_TABLE . "
SET privmsgs_type = " . PRIVMSGS_REPLY_MAIL . "
WHERE privmsgs_id = " . $submit_reply_id;
if ( !$db->sql_query($sql_reply) )
{
message_die(GENERAL_ERROR, 'Could not update private message type.', '', __LINE__, __FILE__, $sql);
}
}
#
#-----[ FIND ]------------------------------------------------
#
}
else
{
$mode = '';
}
#
#-----[ BEFORE, ADD ]------------------------------------------
#
if (($mode == "reply") OR ($mode == "quote"))
{
$privmsg_reply = 1;
}
else
{
$privmsg_reply = 0;
}
#
#-----[ FIND ]------------------------------------------------
#
$privmsg_id = '';
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
if (($mode == "reply") OR ($mode == "quote"))
{
$privmsg_reply_id = $privmsg_id;
}
else
{
$privmsg_reply_id = 0;
}
#
#-----[ FIND ]------------------------------------------------
#
case 'inbox':
$l_box_name = $lang['Inbox'];
$pm_sql_user = "AND pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
case 'inbox':
$l_box_name = $lang['Inbox'];
$pm_sql_user = "AND pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")";
break;
#
#-----[ FIND ]------------------------------------------------
#
if ( $delete_all )
{
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
if ( $delete_all )
{
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ FIND ]------------------------------------------------
#
switch( $folder )
{
case 'inbox':
$delete_sql .= "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
switch( $folder )
{
case 'inbox':
$delete_sql .= "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ FIND ]------------------------------------------------
#
switch ($folder)
{
case 'inbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . ")";
break;

case 'outbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . "
WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) ";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
switch ($folder)
{
case 'inbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")";
break;

case 'outbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . "
WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")";
break;
#
#-----[ FIND ]------------------------------------------------
#
if ( $submit )
{
#
#-----[ AFTER, ADD ]------------------------------------------
#

if ( !empty($HTTP_POST_VARS['reply']) )
{
$privmsg_reply = 1;
}
else
{
$privmsg_reply = 0;
}
#
#-----[ FIND ]------------------------------------------------
#
$sql = "SELECT COUNT(privmsgs_id) AS inbox_items, MIN(privmsgs_date) AS oldest_post_time
FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )
#
#-----[ REPLACE WITH ]----------------------------------------
#
$sql = "SELECT COUNT(privmsgs_id) AS inbox_items, MIN(privmsgs_date) AS oldest_post_time
FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")
#
#-----[ FIND ]------------------------------------------------
#
$sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )
#
#-----[ REPLACE WITH ]----------------------------------------
#
$sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")
#
#-----[ FIND ]------------------------------------------------
#
'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"),
#
#-----[ BEFORE, ADD ]----------------------------------------
#
'REPLY' => $privmsg_reply,
'REPLY_ID' => $privmsg_reply_id,

#
#-----[ FIND ]------------------------------------------------
#
case 'inbox':
$sql_tot .= "WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";

$sql .= "WHERE pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND u.user_id = pm.privmsgs_from_userid
AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#

case 'inbox':
$sql_tot .= "WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " )";

$sql .= "WHERE pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND u.user_id = pm.privmsgs_from_userid
AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " )";
break;
#
#-----[ FIND ]------------------------------------------------
#
$icon_flag_alt = ( $flag == PRIVMSGS_NEW_MAIL || $flag == PRIVMSGS_UNREAD_MAIL ) ? $lang['Unread_message'] : $lang['Read_message'];
#
#-----[ AFTER, ADD ]------------------------------------------
#

if ($flag == PRIVMSGS_REPLY_MAIL)
{
$icon_flag = $images['pm_reply'];
$icon_flag_alt = $lang['Reply_message'];
}
#
Kanns damit was zu tun haben? :roll:
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Ja. Genau der. Hier liegt der Hund begraben. :wink:

Gruß

Saint
naptune
Mitglied
Beiträge: 141
Registriert: 28.02.2005 08:21
Wohnort: Regensburg
Kontaktdaten:

Beitrag von naptune »

Na immerhin ein kleiner Teilerfolg, das Übel ist erkannt.

Danke erstmal dafür, vielleicht kannst du bei Gelegenheit mal nachsehen was ich ändern könnte/sollte?
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Ja klar. Muß nur jetzt echt erstmal los (mist - ich bleib immer wieder an der kiste hängen :wink: ).

Gruß

Saint
Benutzeravatar
Maria77
Mitglied
Beiträge: 271
Registriert: 22.03.2005 11:06
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Maria77 »

Ja genau. Den Mod hab ich auch drin!!
Gruß
Maria
Gesperrt

Zurück zu „phpBB 2.0: Installation und Update“