Double post merge Problem ...

Cachet rechenintensive Vorgänge bei der Darstellung von Beiträgen. Dadurch wird die Performance des phpBB stabilisiert und teilweise sogar erheblich verbessert.

Moderator: Supporter

Double post merge Problem ...

Beitragvon Phoenix » 31. Jul 2007 19:53

Abend,

habe da mal ein Problem ;).
Problem
Code: Alles auswählen
Warning: Invalid argument supplied for foreach() in C:\Programme\xampp\htdocs\scrubsboard\includes\functions_post.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\scrubsboard\includes\functions_post.php:251) in C:\Programme\xampp\htdocs\scrubsboard\includes\page_header.php on line 1035

Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\scrubsboard\includes\functions_post.php:251) in C:\Programme\xampp\htdocs\scrubsboard\includes\page_header.php on line 1037

Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\scrubsboard\includes\functions_post.php:251) in C:\Programme\xampp\htdocs\scrubsboard\includes\page_header.php on line 1038

functions_post.php:247-255
Code: Alles auswählen
if ($mode == 'editpost' && !$was_a_draft)
   {
      remove_search_post($post_id);
      
      foreach (glob($phpbb_root_path.'cache/posts/*post_'.$post_id.'.gz') as $cachefile)
      {
         @unlink($cachefile);
      }
   }

page_header.php:1027-1039
Code: Alles auswählen
if (!defined('AJAX_HEADERS'))
{
   if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2'))
   {
      header ('Cache-Control: no-cache, pre-check=0, post-check=0');
   }
   else
   {
      header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
   }
   header ('Expires: 0');
   header ('Pragma: no-cache');
}


Kann es mögleich sein das ich da was verbockt habe? Die Fehlermeldung kommt nur beim 1 Beitrag den man hinzufügt danach kommt die Meldung nicht mehr ..., wenn die Meldung einmal kommt sollte sie auch beim 2 mal wieder kommen oder nicht?

Ich g´hoffe das ich niht gerade im Wald stehe.
Benutzeravatar
Phoenix
 
Beiträge: 14
Registriert: 22. Nov 2005 15:43
Wohnort: Berlin

Beitragvon AmigaLink » 1. Aug 2007 12:49

Hallo Phoenix.

Die 3 Meldungen bezüglich des Page Headers kannst du ignorieren, denn die werden durch die erste Fehlermeldung hervorgerufen. ;)

Ich kann dir jetzt nicht ganz folgen was den Fehler anbetrifft. Wann genau kommt der Fehler?

Die Codezeilen die du gepostet hast (functions_post.php) stammen nicht vom Double Post Merge sondern vom Save Posts As Draft und vom CPS. :)
Die Fehlermeldung bezieht sich dabei auf die Zeilen vom CPS. Und zwar auf das ermitteln von evtl. vorhandene Cachedateien, für den jeweiligen Beitrag, welche dann gelöscht werden.
Mein erster Gedanke war/ist das du eine veraltete PHP-Version hast (< 4.3.0), wo die Funktion glob() nicht existiert. Das würde aber bedeuten das du die Fehlermeldung (mit anderer Zeilennummer) auch erhälst wenn du einen Beitrag Editierst oder löschst. Ist das der Fall?
Wenn nicht, dann ist aus irgendeinem Grund die Variable $post_id leer oder der Fehler wird schon früher verursacht und die angabe in der Meldung ist nicht korrekt.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Phoenix » 1. Aug 2007 13:45

Oki.

Local läuft PHP 5.0.5
Online: PHP 5.2.3 noch nicht getestet ... erst später geplant

Fehler tritt nur auf wenn man auf einen Neuen Beitrag eine Antwort schreibt, wo Double Post Merge greift, weitere Antworten wo Double Post Merge greifen soll kommt keine Fehlermeldung.

Da die Funktion vom CPS ausgeht habe ich angenommen wird es was mit dem CPS MOD zutun haben ;).

Habe es eben noch mal getestet mit 2 Accounts aber bleibt bei dem Fehler.

Edit: gecacht wird es aber, vorher ist bei den Test Beiträgen 1 gelb und wird beim hinzufügen der anderen Beiträge grün, also der Punkt. ;)

Zugefügt nach 18 Sekunden:

Test mal schauen ob es hier geht ;)
Benutzeravatar
Phoenix
 
Beiträge: 14
Registriert: 22. Nov 2005 15:43
Wohnort: Berlin

Beitragvon AmigaLink » 1. Aug 2007 14:20

Test mal schauen ob es hier geht ;)
Ja hier geht es. ;)
Und ich nutze ebenfalls alle 3 MODs. :)
Wobei ich sagen muss das der Save Posts As Draft mir ein wenig Ärger bereitet hat. Ich weiss nur leider nicht mehr wie sich das Ausgewirkt hatte. :roll:
Ist aber eh nicht unbedingt als Referenz ansehbar, weil dieses Board hier doch extrem stark verändert und nicht mehr mit einem herkömmlichem phpBB vergleichbar ist. :)

Häng mir bitte mal deine functions_post.php (als Attachment) an. Wenn ich Zeit bekomme, schau ich mal rein. (Kann aber leider etwas dauern.)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Phoenix » 1. Aug 2007 14:23

Oki doki ;)

aber nicht wundern ich habe den April Scherz bei mir drinne, den hebe ich mir für ein bestimmten Tag auf ;).

Zugefügt nach 14 Tag(en) 21 Stunde(n) 43 Minute(n):

:?

mal drüber geschaut?
Dateianhänge
functions_post.rar
(9.72 KiB) 497-mal heruntergeladen
Benutzeravatar
Phoenix
 
Beiträge: 14
Registriert: 22. Nov 2005 15:43
Wohnort: Berlin

Beitragvon AmigaLink » 22. Aug 2007 10:49

Sorry, ich hab im Moment den Kopf etwas zu voll. :x

Ich kann keinen Fehler finden.
Der einzige Unterschied zwischen deiner und meiner Datei (in Bezug auf diese MODs) ist, das ich einen Teil des Double Post Merge entfernt habe, der aufgrund des UPI2DB unnötig ist.
Code: Alles auswählen
#
#-----[ OPEN ]----------------------------------------------------------------
#

includes/functions_post.php

#
#-----[ FIND ]----------------------------------------------------------------
#

   if ( $added && $mode == 'editpost' )
   {
      $sql = "UPDATE " . POSTS_TABLE . " SET post_time = " . $current_time . " WHERE post_id = " . $post_id;
      if ( !($result = $db->sql_query($sql)) )
      {
         message_die(GENERAL_ERROR, 'Could not update last post time', '', __LINE__, __FILE__, $sql);
      }
   }

#
#-----[ REPLACE WITH ]--------------------------------------------------------
#

// double_post merge
// Entfernt wegen UPI2DB
/*   if ( $added && $mode == 'editpost' )
   {
      $sql = "UPDATE " . POSTS_TABLE . " SET post_time = " . $current_time . " WHERE post_id = " . $post_id;
      if ( !($result = $db->sql_query($sql)) )
      {
         message_die(GENERAL_ERROR, 'Could not update last post time', '', __LINE__, __FILE__, $sql);
      }
   } */
// double_post merge

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------------
#
# EoM

Das hat aber nichts mit deinem Fehler zu tun.

An der PHP-Version dürfte es ebenfalls nicht liegen. Hier läuft nämlich auch PHP5. :)

Du schreibst der Cache-Indikator wechselt von Gelb auf Grün. Das bedeutet das es vorher noch keine Cachedatei gegeben hat.
Was passiert denn wenn der Indikator vorher bereits grün war?
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Phoenix » 22. Aug 2007 15:39

Hm sehr sehr komisch, dank dir erstmal, der Fehler ist nun weg, habe es nochmal testen wollen, aber da kam kein Fehler, entweder lag es am localen Server das da irgendwas nicht richtig hin gehauen hat, oder ich sollte mehr schlafen.

Habe extra im SVN Log nachgeschaut aber an den Dateien habe ich nichts weiter verändert, sollte der Fehler nochmal auftauchen werde ich deinen Vorschlag mal versuchen.

ps. nicht weiter schlimm, du bist auch nur ein Mensch und wie man sieht lässt sich sowas von alleine :P
Benutzeravatar
Phoenix
 
Beiträge: 14
Registriert: 22. Nov 2005 15:43
Wohnort: Berlin

Beitragvon Holger » 8. Apr 2010 07:57

Ich muss dieses alte Thema nochmal aufwärmen. :ohwei: :oops:

Ich habe UPI2DB, Cache Posts Mod und Double Posts Merge Mod.
Ein Mitglied hat ein paar Mal gemeldet, dass Änderungen die er macht nicht angezeigt werden. Also, z.B. ein zweiter Beitrag, bei dem der Double Posts Merge Mod greifen muss.
Das putzige ist, dass er recht hat.
Wenn ich den Cache für seinen Beitrag erneuere, dann sieht man den zweiten Beitrag (die zusammengefügte Version).
MIR ist das aber noch nie passiert.
Und ich habe von keinem anderen Mitglied Klagen gehört.



(Ich habe die oben beschriebene Änderung jetzt eingefügt)
Holger
User
 
Beiträge: 48
Registriert: 18. Jan 2007 09:47

Beitragvon AmigaLink » 8. Apr 2010 16:44

:shock: :x

Puuuuuuh, was soll ich dir dazu jetzt sagen?!
Weder der DPM noch der CPS arbeiten userabhängig. Das heißt, entweder funktionieren sie oder eben nicht.
Das es bei einem geht und beim anderem nicht, ist somit eigentlich schon vollkommen unlogisch. :|

Ich hab auch leider die Codes nicht mehr im Kopf. Grundsätzlich ist es aber so das der CPS sogar mehrfach abgesichert ist.
Zum einem löscht er den Cache beim editieren (der DPM editiert die Beiträge) und zum anderem überprüft er bei jedem Beitragsaufruf ob die Cachedatei evtl. veraltet sein könnte. (Das Datum der Cachedatei wird mit dem Datum des letzten Editierens verglichen.)
Wenn keine Cachedatei vorhanden ist, oder wenn die vorhandene zu alt ist, wird ein neuer Cache erstellt.
Für das von dir beschriebene Problem müssten also mindestens 2 Fehler passiert sein.
  1. Der Cache wurde nicht gelöscht als der Beitrag vom DPM bearbeitet wurde.
  2. Der DBM hat das Datum des letzten Editierens, in der Datenbank, nicht aktualisiert.
Das diese beiden Fehler nur bei einem User auftreten, ist mehr als Unwahrscheinlich. :roll:
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Holger » 9. Apr 2010 07:33

Naja, sagen wir mal so: ich habe keine Klagen gehört. Eventuell tritt es ja auf aber niemand meldet sich.

Und wenn ich darüber nachdenke, doch, mir ist es auch schon mal passiert.

Hmmmmm ... was tun?!
Kann es an der Belastung liegen?
Holger
User
 
Beiträge: 48
Registriert: 18. Jan 2007 09:47

Nächste

Zurück zu Cache Post System



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron