Zurück   WordPress Deutschland Forum > Support > Allgemeines

Antwort
 
Themen-Optionen Ansicht
Alt 02.01.2006, 02:32   #1 (permalink)
PostRank: 0
 
Registriert seit: 02.01.2006
Beiträge: 3
Kommentare werden nicht immer angezeigt

Bei meiner WordPress-Installation tritt seit etlichen Monaten ein seltsames Phänomen auf: die meisten Besucher können die Kommentare zu einem Beitrag nicht sehen, obwohl die Kommentare in der Datenbank vorhanden sind.

Das Ganze wird vollkommen mysteriös durch die Tatsache, daß diese Probleme nie auftreten, wenn mein Weblog von meinem heimischen Internet-Zugang aus besucht wird. Ich habe meine Website kürzlich von meinem Service Provider auf meinen eigenen lokalen Webserver verschoben, um diesem Phänomen eventuell leichter auf die Schliche zu kommen, aber auch diese „Übersiedlung“ hat nichts geholfen.

Mit reiner Logik ist dieses Phänomen nicht zu begreifen: entweder gibt es Anmerkungen, oder es gibt keine – unabhängig davon, welcher Besucher mit welchem Browser aus welcher Ecke des Internets auch immer das PHP-Script startet, das seinerseits wiederum die Datenbank abfragt. Sollte man meinen

Mein Weblog findet sich hier: http://www.berghofer.com/wordpress/

Ich verwende bewußt noch WordPress Version 1.5.1.3, der Webserver ist ein Apache 1.3.33 für Darwin (Mac OS X 10.4.3) mit PHP 4.3.11 und mySQL 4.0.21.

Das Problem gibt es auch dann, wenn ich die Datei „comments.php“ von anderen Themen bzw. „skins“ verwende. „comments.php“ von der WordPress-Version 2.0 bringt auch keine Abhilfe.

Hat jemand eine Idee, woran das liegen könnte?

Vermutlich verursacht die Variable „$comments“ die Probleme: mit der Abfrage „if ($comments)...“ überprüft WordPress, ob Kommentare darzustellen sind. Ich versuche gerade, die Datei „comments.php“ so zu modifizieren, daß ich „zu Fuß“ aus der Datenbank alle Kommentare lese, die zum aktuellen Beitrag gehören und anschließend die Anzahl der darzustellenden Kommentare an die Variable „$comments“ übergebe. Das funktioniert auch recht gut, nur kann ich leider aus den restlichen WordPress-Modulen nicht genau ersehen, welcher Datentyp von der Schleife „foreach ($comments as $comment)“ als „$comments“ erwartet wird. Die direkte Zuweisung des aktuell aus der Datenbank geholten Records in der Form „$comments[] = $row“ funktioniert leider nicht.

Gibt es hier vielleicht mit PHP-Programmierung vertraute Menschen, die mir in dieser speziellen Frage etwas auf die Sprünge helfen könnten?

Besten Dank,

Werner.

Geändert von Werner Berghofer (02.01.2006 um 11:57 Uhr).
Werner Berghofer ist offline   Mit Zitat antworten
Alt 02.01.2006, 12:50   #2 (permalink)
PostRank: 4
 
Registriert seit: 28.12.2004
Beiträge: 258
Benutzerrechte

hmm, ist nur so eine schnelle Idee:
schonmal die Chmod Rechte überprüft, so von wegen schreiben und lesen für Eigentümer und Benutzer?

Mehr fällt mir da leider auch nicht zu ein, aber vielleicht warst du ja bei der vergabe der Rechte zu geizig damit

FNJ
Oliver
__________________
_de-Lokalisationen diverser Themes
de_Almost Spring
de_Rin
de_TicTac
de_Wuhan
ilnowa ist offline   Mit Zitat antworten
Alt 02.01.2006, 14:22   #3 (permalink)
PostRank: 0
 
Registriert seit: 02.01.2006
Beiträge: 3
Oliver,

> schonmal die Chmod Rechte überprüft

klar, die wurden für Debug-Zwecke sogar auf 0777 gesetzt. Ich kann mir nicht vorstellen, daß die Benutzerrechte damit in Zusammenhang stehen. Der Inhalt der WordPress-Variablen „$comments“ ist beim Zugriff der meisten Besucher anders als beim Zugriff aus meinem LAN, das ist die Teufelei dabei.

Vergiß nicht: das wirkliche Phänomen ist ja, daß die meisten Besucher die Anmerkungen nicht sehen können, während sie von jedem Rechner aus meinem LAN, der – gleichgültig ob lokal oder über das Internet – auf meine Website zugreift, sehr wohl dargestellt werden.

Bei meinem Internet-Provider trat dieses Problem auf, als meine HTML- und PHP-Files auf den gleichen Server verschoben wurden, auf dem auch der mySQL-Server läuft. In dem Moment, wo Web- und mySQL-Server wieder zwei verschiedene Rechner waren, ist dieses Phänomen verschwunden. Ich werde mal versuchen, dieses Szenario auch bei mir lokal nachzubilden.

Wüßte ich, welche Datenstruktur WordPress beim Codeteil if ($comments) und der anschließenden Schleife foreach ($comments as $comment) in der Variablen $comments erwartet, würde ich sie durch eine eigene Datenbank-Abfrage entsprechend präparieren.

Mich erschüttert auch die nicht vorhandene Trennung von (lokalisierter) Sprache und Anweisungen im WordPress-PHP-Code ziemlich. Die WordPress-Entwickler könnten sich vom Sourcecode des phpBB-Forums eine Menge Inspiration holen.

Herzlichen Dank für’s Kopfzerbrechen, Oliver

Werner.

Geändert von Werner Berghofer (02.01.2006 um 15:31 Uhr).
Werner Berghofer ist offline   Mit Zitat antworten
Alt 02.01.2006, 18:24   #4 (permalink)
PostRank: 0
 
Registriert seit: 02.01.2006
Beiträge: 3
Oliver,

ich hab’s behoben. In der Datei „comments.php“ wird jetzt der Inhalt des Objekt-Arrays $comments von einer eigenen Routine präpariert, bevor sich WordPress daran macht, ihn auszulesen, zu formatieren und darzustellen.

Diese Zeilen haben geholfen:

Code:
<?php

include_once "/Library/WebServer/Documents/lib/constants.inc.php";
unset($comments);
$postID = $post->ID;
$db     = @mysql_connect(MY_SQLSERVER, MY_DBUSER, MY_DBPW);
$sql    = "SELECT * FROM wp_comments WHERE (comment_post_ID = " . $postID . ") AND (comment_approved = '1') ORDER BY comment_date ASC";
$result = @mysql_db_query(MY_DBNAME, $sql, $db);
$recs   = @mysql_num_rows($result);
if ($recs > 0)
{
  while ($row = @mysql_fetch_object($result))
  {
    extract($row);
    $comments[] = $row;
  }  
}
@mysql_close($db);
reset($comments);

?>
In der Datei „constants.inc.php“ stehen die Zugangsdaten zum mySQL-Server.

Werner.

Geändert von Werner Berghofer (02.01.2006 um 20:48 Uhr).
Werner Berghofer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 | Impressum | Ein Inpsyde.com Projekt