SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von oxpus »

Nun ja, deinstallieren wird vielleicht nicht nötig sein.
Wenn ich mit deiner session.php allein nur die Zeile

Code: Alles auswählen

$lang = &$this->lang;
in der enthaltenen Methode setup(...) einfüge, dann klappt auch vieles andere wieder.
Du hattest die Zeile jedoch durch den Code der MOD ersetzt und den neuen Code nicht dahinter eingefügt, wie in der MOD-Installationsanleitung genannt.
Vielleicht liegt auch allein hier schon die Ursache deines Problems begraben, denn ohne diese Zeile werden die Spracheinstellungen des Users nicht korrekt gesetzt, bzw. die Sprachdateien nicht eingebunden, was zu diversen Fehlern führt...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von BNa »

Macht Sinn, irgendwie wird nämlich weiter drüber das $this-> ausgeschaltet, deswegen gibts in dem Part plötzlich keine user_id mehr :wink:

Code: Alles auswählen

[phpBB Debug] PHP Notice: in file [ROOT]/includes/session.php on line 658: Undefined index: user_id
line 658 > $this->data['user_id'] = (int) $this->data['user_id'];
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von oxpus »

Entweder also die MOD-Installation noch einmal genau prüfen, gerade die session.php ist hier ein sehr zentraler Bestandteil für viele mögliche Fehler nach falscher Anpassung, oder die MOD doch komplett deinstallieren, wenn alle Korrekturen nichts helfen. Dann hat die MOD nämlich definitiv Fehler...

Nachtrag:
$this->data['user_id'] = (int) $this->data['user_id'];
Die Zeile ist schon korrekt und ja auch weiterhin vorhanden, denn sie soll die user_id als Zahl umwandeln und somit zumindest auf 0 setzen.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von HabNurNeFrage »

Hey, das wärs ja, wenn es an ein paar fetzen Code liegen würde.

Ich hab die sssion.php jetzt im Notie++ offen...

Was statt oder vor dem: $lang = &$this->lang;
In der enthaltenen Methode setup(...) sagt mir jetzt nichts :oops:

Und was muss in Zeile 658 ergänzt werden?
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von oxpus »

Zeile 658 ist okay.
Für die fehlende Zeile musst du vor dem Code

Code: Alles auswählen

                if (!defined('AUTOMATIC_DST_BOARD_TIMEZONE'))
                {
                        include($phpbb_root_path . 'includes/automatic_dst.' . $phpEx);
                        automatic_dst_cache($this->data['user_timezone']);
                }
                automatic_dst_session();
die Zeile(n)

Code: Alles auswählen

                // We include common language file here to not load it every time a custom language file is included
                $lang = &$this->lang;
einfügen.
Wenn die aktuelle Version der session.php im Pastbin deiner Version im Forum entspricht, ist das so schon korrekt, wie es ist, allerdings liegt dann die Ursache deines Fehlers an anderer Stelle.
Dann empfehle ich doch, die automatische Zeitumstellungs-MOD komplett zu entfernen, wenn die komplette Überprüfung der Installation nicht zur Behebung des Fehlers beiträgt.

BTW zur "Methode":
Die in einer Klasse enthaltenen Funktionen nennt man Klassenmethoden.
Da in der Datei session.php die Funktion "setup(...)" innerhalb der Klasse "user" enthalten ist, wird diese so genannt.
Das nur mal als kleinen Exkurs zum PHP-Sprachgebrauch...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von HabNurNeFrage »

Das ist die aktuell laufende sessions im PasteBin.

Irgendwie habe ich die Datenbank in Verdacht. Da gabs auch ein Problem beim Update.
Kann man von 3.0.10 auf 3.0.11 die Änderungen der Datenbank irgendwo einsehen und die Änderungen ggf. manuell vornehmen?

edit: Ok. Danke. Hab ein Buch zu Weihnachten bekommen "PHP & MySQL für Kids" - sollte das mal durcharbeiten :oops:
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von BNa »

>> viewtopic.php?f=74&t=226260#p1291732
Analyse: Erstmal definitiv den Automatic DST raus. Rückstandsfrei bitte.
Könnte schon die Lösung sein. Schönen guten Morgen noch.
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von HabNurNeFrage »

OK. Vielen Dank. Schon mal alles sehr aufschlussreich.
Google hatte dazu nicht viel im Angebot.

Ich wünsche Euch gute Nacht und super Parties heute abend beim Rutsch nach 2013...

Dann werd ich erstmal den Code vom DST wegarbeiten. Melde mich... LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von oxpus »

Lass uns doch noch mal etwas versuchen:

Im Update von 3.0.10 auf 3.0.11 werden nur die deaktivierten Styles aus den Benutzerprofilen entfernt und ungültige private Nachrichten gelöscht.
Ggf. könnten hierbei die Style-Angaben der ein oder anderen Userprofile nicht mehr korrekt sein.
Du hast nun einen anderen Style installiert, als im Standard des phpBB 3 vorhanden.
Um allen Usern einen Standard-Style zuzuweisen (also dann auch allen Bots), kannst du im ACP unter (Tab "Allgemein") "Board-Konfiguration" > "Board-Einstellungen" den Style auswählen und mit der Option "Benutzer-Style überschreiben:" = "Ja" allen Usern und Bots aufzwingen.

Allerdings wäre das nur eine Möglichkeit, wenn man nur einen Style hat und keine Alternativen zulassen möchte.
Um alle Userprofile (also auch die der Bots) zu korrigieren, müsstest du zunächst nachschauen, welche ID der von der im Standard eingestellte Style hat.
Das kannst du herausfinden, wenn du entweder
- im ACP unter "Styles" mit der Maus auf einen der Links zum Style (z. B. der Link "Details") zeigst. Dann wird im angezeigten Link u. a. "id=x" angezeigt. "x" ist hierbei die ID des Styles
oder
- in der Datenbank in der Tabelle "phpbb_styles" die ID des Styles auslesen (Feld "style_id")

Diese ID setzt du dann in der folgenden SQL-Anweisung an Stelle des "X" ein, damit alle Bots (beschränken wir uns aktuell zunächst mal auf diese) diesen Style zugewiesen bekommen:

Code: Alles auswählen

update phpbb_users set user_style = X where user_type = 2;
Hinweis: Bitte in deiner Datei includes/constants.php nachschauen, welche Zahl in der Zeile define('USER_IGNORE', 2); bei dir steht.
Die hier angezeigte Zahl 2 ist Standard. Wenn diese bei dir anders lautet, dann bitte die Zahl auch in der zuvor genannten SQL-Anweisung anstelle der 2 eintragen.

Warum ich dieses Vorgehen vorschlage?
Selbst wenn die MOD ausgebaut wäre, würde der Fehler damit nicht behoben sein, da in den Userprofilen immer noch ein falscher Style vermerkt sein könnte.
Und im Falle der hier genannten Bots zeigt sich dann auch weiterhin die Fehlermeldung, wenn die Style-Informationen weiterhin nicht passen!
Auch ein deaktivierter Style, der immer noch in den Userprofilen vorhanden ist, kann diese Fehlermeldung erzeugen.
Daher diese von mir letzte Idee, was noch nicht passen könnte, bevor man wirklich die MOD mühsam wieder entfernt...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: SQL Fehler nur bei Verwendung durch User-Agent Googlebot

Beitrag von HabNurNeFrage »

Euch allen hier erstmal alles Gute für das neue Jahr...

Vielen Dank @oxpus für die Anleitung zum Ersetzen der ggf. fehlerhaften Datenbankeinträge. Das hat einwndfrei geklappt. Der Wert hinter dem 'user_ignore' war Standard auf 2, die Style-IDs habe ich im ACP nachgschaut und dann für die SQL-Anweisung noch unseren Tabellenpräfix ergänzt... Leider hat das an der Gesamtsituation nichts verändert. Selbst ein extra eingefügter Rewrite in der htaccess führte zu keiner Änderung. Ich wollte dabei dem Googlebot natürlich auch nicht zuviel zumuten. Schnell wird man sonst des Cloakings verdächtigt...

Könnte dieses merkwürdige Verhalten gegenüber manchen USER-Agents eventuell von einer fiesen Code-Injection kommen? In der Datenbank gibt es außer den User-Agent-Strings aus der Botliste überhaupt keine Einträge oder Verknüpfungen mit User-Agents. Wenn es nun eine Art Hackerangriff war, wie könnte der Code aussehen, der den Fehler verursacht und wo könnte man ihn so unterbringen, dass er auch Updates des phpbb übersteht? Ich werde dann einfach mal manuell die eventuell betroffenen Dateien durchforsten... Irgendwie wird es hoffentlich möglich sein, das Forum wieder für alle User-Agents fehlerfrei aufrufbar zu machen.

edit:
Nachtrag: Mir ist soeben aufgefallen, dass der GoogleBot in der sessions-Tabelle immer die user_id 0 zugewiesen bekommt. Bei den eingeloggten Usern stimmen die IDs mit denen aus der Mitgliederliste überein und Gäste bekommen auch richtigerweise die 1. Wie und wann geschieht denn im phpbb die Zuordnung von user_id und session_id?
Da könnte der Schlüssel für mein Problem liegen...
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“