Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

php.ini und .htaccess verhindern Zugriff auf MySQL-DB

Eingetragen von C-Heinze (32)
am 25.07.2010 - 15:42 Uhr in
  • Anfängerfragen
  • Drupal 6.x

Hallo,

um bei meinem Provider (1&1) Drupal laufen zu lassen, mußte ich eine php.ini im Drupal-Verzeichnis anlegen mit diesem Inhalt:

register_globals = off
memory_limit = 64M

sowie in die .htaccess die Zeile

AddType x-mapp-php5 .php

hinzufügen.

Dies verhindert allerdings, daß ich im Drupal-Verzeichnis mit PHP auf eine MySQL-DB zugreifen kann. Dabei handelt es sich nicht um die DB, auf der Drupal läuft, sondern um eine "gleichwertige" bei 1&1 gehostete MySQL-DB. In der DB sind z.B. Kundendaten, die ich in der Webseite verarbeiten möchte. Auf die DB greife ich normalerweise (problemlos!) über folgenden code zu:

$db = mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_database);
...
mysql_close($db);

Bette ich diesen Code jedoch in Drupal ein (Eingabeformat = PHP Code) oder rufe ihn über eine separarte PHP-Datei dbtest.php im Durpalverzeichnis auf, bekomme ich folgende Fehlermeldung:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user: 'userxy@123.45.67.89' (Using password: YES) ...

Das DB-Zugriff klappt erst dann, wenn ich die php.ini lösche und AddType x-mapp-php5 .php aus der .htaccess entferne. Wenn ich das tue, kann ich aber Drupal nicht mehr verwenden.

Kann mir jemand weiterhelfen? Danke im voraus

Heinz

‹ Modul Events: Extra-Menüpunkt Event eintragen localhost website kann nicht angezeigt werden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Füge doch die Tabellen mit

Eingetragen von Exterior (2903)
am 25.07.2010 - 16:33 Uhr

Füge doch die Tabellen mit den Kundendaten einfach in die Drupal-Datenbank mit ein, dann kannst du darauf ganz einfach über die schönen Datenbank-Funktionen von Drupal zugreifen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das löst leider das Problem

Eingetragen von C-Heinze (32)
am 25.07.2010 - 16:49 Uhr

Das löst leider das Problem nicht, die Datenbanken müssen schon getrennt sein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Und warum?

Eingetragen von Exterior (2903)
am 25.07.2010 - 16:54 Uhr

Und warum?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ansonsten kannst du auch

Eingetragen von Exterior (2903)
am 25.07.2010 - 18:10 Uhr

Ansonsten kannst du auch versuchen, eine Alternativ-Datenbank in die settings.php einzutragen.

Dann schaltest du in einem Script die DB um, machst damit deine Abfragen und schaltest wieder zurück.

Siehe hier:
http://xplus3.net/2009/11/05/connect-to-multiple-databases-from-drupal/

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe mal deinen Rat

Eingetragen von C-Heinze (32)
am 25.07.2010 - 19:24 Uhr

Ich habe mal deinen Rat befolgt und stellvertretend für die separate Kundendatenbank eine Tabelle "kunde" in der Drupal-DB erstellt. Dann folgenden Code in den Textkörper:

$query = "SELECT * FROM kunde";
$result = mysql_query($query);

Als Fehlermeldung erscheint:

warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in /.../drupal/includes/common.inc(1699) : eval()'d code on line 5.
warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /.../drupal/includes/common.inc(1699) : eval()'d code on line 5.

Wenn du von "den schönen Datenbank-Funktionen" sprichst, weiß ich leider nicht genau, was du meinst (sorry, Drupal-Anfänger)

Danke im voraus.

Heinz

  • Anmelden oder Registrieren um Kommentare zu schreiben

In Drupal solltest du nicht

Eingetragen von Exterior (2903)
am 25.07.2010 - 20:00 Uhr

In Drupal solltest du nicht die normalen mysql-Funktionen von PHP verwenden, sondern lieber die Funktionen der Drupal-Datenbankschicht.

Hauptsächlich diese beiden:

db_query
db_result

Und mit db_fetch_object liest man dann die Ergebniszeilen aus

Dein Beispiel wäre also wenn dann so:

<?php
$sql
= "SELECT * FROM kunde;";
$result = db_query($sql);
?>

Die ganzen Funktionen kann man hier nachlesen:
Database abstraction layer

Durch die normale Funktion mysql_query wird diese Schicht nicht durchlaufen und somit sind auch keine Datenbank-Verbindungsdaten verfügbar.

Warum willst du die Abfragen eigentlich direkt im Node machen? Was genau hast du denn vor?

Hast du die Variante mit einer alternativen DB in der settings.php schon probiert?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, jetzt kommt zumindest

Eingetragen von C-Heinze (32)
am 25.07.2010 - 20:19 Uhr

Danke, jetzt kommt zumindest schon mal keine Fehlermeldung mehr :-)

Das mit der alternativen DB habe ich noch nicht getestet.

Ich habe eine kleine Adreßdatenbank, deren Inhalte bisher an verschiedenen Stellen der (alten) Webseite verarbeitet und ausgegeben werden. Eigentlich hatte ich vor, diese Daten exakt so auch wieder in der (zukünfitgen) Drupal-Webseite hervorzuholen, da dadran kein Änderungsbedarf besteht. Ist das so ungewöhnlich, das direkt in den Nodes zu machen? Mir ist jetzt noch nichts anderes untergekommen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Naja, ungewöhnlich nicht,

Eingetragen von Exterior (2903)
am 25.07.2010 - 20:39 Uhr

Naja, ungewöhnlich nicht, aber meist wird geraten, PHP-Code direkt im Node-Body eher als letztes Mittel einzusetzen. Sinnvoller wäre es evtl. das ganze über die node.tpl.php zu regeln oder über ein eigenes Modul o.Ä.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Ветошь для протирки оборудования
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 5 Tagen
  • Hey danke
    vor 2 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 1 Tag
  • In der entsprechenden View
    vor 4 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 1 Tag
  • gelöst
    vor 6 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250234
Registrierte User: 20455

Neue User:

  • JoMek
  • Znogsnernoimb
  • ByteScrapers

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association