Fragen zur Verbindungeinstellung Datenbank

All about webserver configurations, PHP and databases.

Moderator: Thorsten

Post Reply
redseadiver28
Posts: 12
Joined: Tue Mar 14, 2006 10:36 am

Fragen zur Verbindungeinstellung Datenbank

Post by redseadiver28 »

Guten Tag,

ich habe phpmyfaq 1.5.7 mit php 4.4.1 und MS SQL 2000 auf einem Testsystem installiert. Hat grundsätzlich auch ganz gut funktioniert.

Nun habe ich aber ein paar Fragen zu diesem System.

1. In der MSSQL-Datenbank kann ich keine Tables finden. es gibt nur die üblichen Systemtabellen. Was ich komisch finde, da ich mich im Adminbereich anmelden kann und auch User, Beiträge und Antworten angelegt habe. Ich habe dann mal Testweise in der dada.php, in der die Verbindungsparameter zur Datenbank zu stehen scheinen, die IP des Servers verändert und siehe da, selbst nach einem Neustart des Servers konnte ich mich noch immer am System anmelden und Einträge bearbeiten oder hinzufügen. Wie ist das möglich? Legt das System die Konfiguration noch wo anders ab?

2. Im Adminbereich unter offene Fragen bekomme ich folgenden Error: Notice: Undefined offset: 0 in \admin\record.delquestion.php on line 52

3. ich möchte das System von der Testumgebung auf den Echtserver portieren. Reicht es, das ganze Verzeichnis auf den Webserver zu kopieren und dann mit dem bearbeiten der data.php auf die richtige DB zu leiten?

lg

redseadiver28
Thorsten
Posts: 15726
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Fragen zur Verbindungeinstellung Datenbank

Post by Thorsten »

Hi,
redseadiver28 wrote:1. In der MSSQL-Datenbank kann ich keine Tables finden. es gibt nur die üblichen Systemtabellen. Was ich komisch finde, da ich mich im Adminbereich anmelden kann und auch User, Beiträge und Antworten angelegt habe. Ich habe dann mal Testweise in der dada.php, in der die Verbindungsparameter zur Datenbank zu stehen scheinen, die IP des Servers verändert und siehe da, selbst nach einem Neustart des Servers konnte ich mich noch immer am System anmelden und Einträge bearbeiten oder hinzufügen. Wie ist das möglich? Legt das System die Konfiguration noch wo anders ab?
Die DB-Konfiguration ist nur in der inc/data.php. Wenn du mit phpMyFAQ arbeiten kannst, dann müssen auch die Tabellen da sein.
redseadiver28 wrote:2. Im Adminbereich unter offene Fragen bekomme ich folgenden Error: Notice: Undefined offset: 0 in \admin\record.delquestion.php on line 52
Schau ich mir an!
redseadiver28 wrote:3. ich möchte das System von der Testumgebung auf den Echtserver portieren. Reicht es, das ganze Verzeichnis auf den Webserver zu kopieren und dann mit dem bearbeiten der data.php auf die richtige DB zu leiten?
genau! Die inc/config.php musst du aber auch anpassen.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
redseadiver28
Posts: 12
Joined: Tue Mar 14, 2006 10:36 am

Post by redseadiver28 »

Hallo Thorsten,

danke für deine rasche Antwort.

hab das Problem jetzt lösen können. Auf dem Testsystem habe ich der Einfachheit halber keinen eigenen User am SQL-Server für den Zugriff auf die DB angelegt. Hab einfach den User SA verwendet. Obwohl ich beim Aufruf der installer.php eine gültige DB angegeben habe, wurde dies für die Erstellung der Tabellen nicht verwendet, sondern die default-DB des verwendeten Useres benutzt. Im Fall des SA die DB master. Ist in meine Testsystem natürlich nicht schlimm, aber doch sicher nicht sehr ideal.

Ich hab das in meinem Testsystem auch noch mal versucht, nachzuvollziehen. Wenn ich dem User, den ich angelgt habe, in den Properties als Default-DB die neu angelegte DB für die faq’s zugeteilt habe, dann hat das Erstellen der Tabellen funktioniert. Habe ich dem User als Default-DB eine andere Datenbank zugewiesen, auf die der User keine Rechte hat, erzeugte die installer.php eine error, obwohl zuvor die korrekten Daten angegeben wurden. Dürfte also ein Bug in dem create sccript sein.

In meinem Testsystem hat die installer.php natürlich funktionier, weil ich aus Bequemlichkeit den SA verwendet habe und dadurch die create - Statements trotzdem die Tabellen erstellen konnte.

lg

redseadiver28
Thorsten
Posts: 15726
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,
redseadiver28 wrote:Ich hab das in meinem Testsystem auch noch mal versucht, nachzuvollziehen. Wenn ich dem User, den ich angelgt habe, in den Properties als Default-DB die neu angelegte DB für die faq’s zugeteilt habe, dann hat das Erstellen der Tabellen funktioniert. Habe ich dem User als Default-DB eine andere Datenbank zugewiesen, auf die der User keine Rechte hat, erzeugte die installer.php eine error, obwohl zuvor die korrekten Daten angegeben wurden. Dürfte also ein Bug in dem create sccript sein.
Naja, wenn der User keine Rechte hat, dann gibts natürlich einen Fehler. :-)

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
redseadiver28
Posts: 12
Joined: Tue Mar 14, 2006 10:36 am

Post by redseadiver28 »

Hallo Thorsten,

naja, der user hat ja Rechte auf die DB, die am Anfang der installer.php abgefragt wird. Nicht aber auf die default-DB des Users. Dass in eine völlig andere Datenbank geschrieben wird, obwohl man am Anfang bei der Abfrage der Datenbankparameter anderes angegeben hat ???


lg

Redseadiver28
Thorsten
Posts: 15726
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

dann schau ich mir mal den Code für MS SQL an.

Viele Grüße
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
Thorsten
Posts: 15726
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

könntest du mal in der inc/mssql.php die Funktion connect() gegen den folgenden Code austauschen?

Code: Select all

	function connect ($host, $user, $passwd, $db)
    {
		$this->conn = mssql_pconnect($host, $user, $passwd);
		if (empty($db) OR $this->conn == false) {
			print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
            print "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
            print "<head>\n";
            print "    <title>phpMyFAQ Error</title>\n";
            print "    <meta http-equiv=\"content-type\" content=\"application/xhtml+xml; charset=utf-8\" />\n";
            print "</head>\n";
            print "<body>\n";
            print "<p align=\"center\">The connection to the MS SQL server could not be established.</p>\n";
			print "<p align=\"center\">The error message of the MS SQL server:<br />".mssql_get_last_message()."</p>\n";
			print "</body>\n";
            print "</html>";
            return false;
			}
		return mssql_select_db($db, $this->conn);
    }
bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
redseadiver28
Posts: 12
Joined: Tue Mar 14, 2006 10:36 am

Post by redseadiver28 »

Hallo Thorsten,

ich hab die geänderte Funktion mal gestetet. Würde sagen, jetzt funktioniert es. Hab noch mal ne Neuinstallation in ne neue DB mit den User sa gemacht und sieh da, die Tabellen sind auch wirklich in der DB, in die sie auch sollen, obwohl der user eine ganz andere Default-DB hat.

Leider hab ich noch ein anderes Problem. Wenn ich auf "Offene Fragen" klicke, bekomme ich leider immer den folgenden Error: Notice: Undefined offset: 0 in C:\Inetpub\wwwroot\statistik\support\inc\functions.php on line 1481
Woran kann dass liegen?

Noch mal besten Dank für die Behebung des DB-Bugs

lg Redseadiver28
Thorsten
Posts: 15726
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

so, der Bugfix für die DB ist im CVS eingecheckt und erscheint in 1.5.8, 1.6.0 RC und 2.0.0-dev.

Zum Fehler bei den offenen Fragen: Erscheint der, wenn eine Frage vorhanden ist oder wenn keine Fragen vorhanden sind...

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
redseadiver28
Posts: 12
Joined: Tue Mar 14, 2006 10:36 am

Post by redseadiver28 »

Hallo Thorsten,

der Fehler erscheint auch, wenn Fragen vorhanden sind. Du kannst es dir auch unter http://test.g-spy.com/support/ ansehen.

lg Redseadiver28
Thorsten
Posts: 15726
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

hm, das passiert, wenn die Kategorie, auf die die Frage verweisen soll, nicht existiert. In deinem Fall ist das der zweite Eintrag. Hier ist eher die Frage, warum dieser Eintrag die Kategorie-ID 0 hat...

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
Post Reply