Manchmal kommt es vor, dass Sie eine leere Seite erhalten oder das Ergebnis, das Sie sehen möchten, nicht sehen. In diesen Situationen können Sie anfangen, den Code zu hacken, oder die standardmäßigen Debugging-Funktionen von Vtiger verwenden.

Datenbank-Debugging

50% aller Probleme sind das Ergebnis von fehlerhaften oder falschen Datenbankabfragen. Es gibt einen schnellen und einfachen Weg, dies zu erkennen und eine detaillierte Ausgabe zu erhalten, bei der Sie nach dem Problem suchen müssen. Auch diese Informationen helfen Personen von Modulanbietern, eine detailliertere Fehlerbeschreibung zu erhalten.

Öffnen Sie die Datei include/database/PearDatabase.php
Suche in der Zeile $adb->connect(); (Am Ende der Datei)

In dieser Situation haben Sie 2 Möglichkeiten:

  1. Diese Zeile hinzufügen:
    $adb->setDebug(true);

    Diese Zeile gibt JEDE Abfrage aus, die an die Datenbank gesendet wird. Die letzte wird die korrupte sein und Sie erhalten eine Fehlerbeschreibung, wenn ein Fehler auftritt.
    Manchmal ist es hilfreich vor der Ausnahme alle Abfragen zu erhalten und auch Abfragen zu sehen.

  2. Diese Zeile hinzufügen:
    $adb->setDieOnError(true);

    Diese Zeile gibt nur einen detaillierten Fehlerbericht aus, wenn eine Abfrage einen Datenbankfehler erzeugt. Dies funktioniert besser für die Modulunterstützung, da Sie nicht jede Anfrage lesen müssen, wenn Sie nicht möchten.
    Wenn Sie das Problem finden (und vielleicht lösen können), vergessen Sie nicht, diese Zeilen zu deaktivieren, da es zu unerwartetem Verhalten führen kann.

PHP Debugging

VtigerCRM deaktiviert standardmäßig die Anzeige von Fehlern im Browser. Das ist gut und verhindert Verwirrung bei Ihrem Mitarbeiter!

Wenn mehrere Benutzer in einem System arbeiten, sollten Sie nur die Methode des Log-File Debugging verwenden, da Vtiger viele unnötige Fehler ausgibt.

Log Dateien

Der einfachste Weg ist, einen Blick in Ihre Webserver error.log zu werfen.
Wenn Ihr Server standardmäßig konfiguriert ist oder von Plesk, ISPConfig, cpanel, …. konfiguriert wurde, finden Sie ein Verzeichnis “logs”, das eine Datei “error.log” enthält.
Dieses Fehlerprotokoll enthält jeden Fehler und warnt den Vtiger. (Und das könnte viel sein.)
Die wichtigsten Zeilen befinden sich am Ende dieser Datei.

Wenn Sie folgendes sehen

... PHP message: PHP Fatal error: ...

Sie haben Ihr Problem gefunden und müssen die Leitung nur an Ihren Administrator oder Modul-Support senden.
Wenn Sie PHP >= 5.5 verwenden, müssen Sie wahrscheinlich 1 Modifikation in der config.inc.php durchführen, bevor Sie diesen Fehler erhalten.

You found your problem and you only needs to send the line to your administrator or module support.
If you use PHP >= 5.5 you probably needs to do 1 modification in the config.inc.php, before you get this error.

Um das zu tun, öffnen Sie config.inc.php und suchen nach

error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED)

Sie sollten zwei Zeilen ~17,18 finden, die diesen Teil enthalten. Ersetzen Sie es durch

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED)

Andernfalls erhalten Sie keine fatalen Fehler und sehen nur unwichtige Warnungen.

Anzeigefehler

Wenn Sie allein in Ihrem Vtiger sind oder wissen, dass niemand sonst arbeitet, können Sie das auch tun. Es ist vielleicht schneller, den Fehler zu sehen, da er im Browser ausgegeben wird.

Öffnen Sie die Datei config.inc.php

Suchen Sie die Zeile, die wie unten anfängt

//ini_set('display_errors','on'); version....

Entfernen Sie das // vor der Linie, das diese Linie aktiviert. Hier der gleiche Hinweis, wie einen Absatz zuvor: Wenn Sie PHP >= 5.5 verwenden, müssen Sie auch diese Zeile anpassen.
Jetzt können Sie die leere Seite wieder öffnen und sollten so etwas wie die folgende sehen

Fatal error:….

Das ist das Problem und wenn Sie es lösen, sollte die Seite wieder funktionieren. Wenn nichts auf die Seite geschrieben wird, ist der Grund vielleicht nicht PHP.

SMTP Debugging

Wenn Sie Ihren SMTP-Server einrichten und einen Fehler erhalten, d.h. die Mail kann nicht gesendet werden, informiert das VtigerCRM nicht ausführlich über das eigentliche Problem.
Um den genauen Fehler zu erhalten, müssen Sie in den Code einsteigen.

Öffnen Sie die Datei modules/Emails/mail.php und suchen Sie nach

$mail_status = MailSend($mail);

Wenn Sie die folgende Zeile einfügen, können Sie vor dieser MailSend-Funktion das komplette SMTP-Protokoll als Antwort auf eine Ajax-Anfrage beim Speichern der Mailserver-Konfiguration erhalten.
(Überprüfen Sie dazu Ihre Developer Tools)

$mail->SMTPDebug = 2;