Seite 1 von 1

PHP - Mysql Verbindungs Probleme

Verfasst: 19.07.2008 16:23
von bairan
Ich hab folgendes Problem:

Ich habe einfach noch keine Verbindung zur Datenbank fertigebracht, mit meinem PHP Script, ich habe Tutorials befolgt und alles Überprüft aber ich bekomme keine Verbindung zur Datenbank. Ich wollte Fragen ob man in PHP MyAdmin noch etwas einstellen muss, oder ob die Datenbank speziell eingestellt werden muss.

Ich habe es an folgenden Orten Probiert:

www.funpic.de
www.kilu.de

An beiden Orten hat es nicht Funktioniert.

Hier ist noch mein Code den ich Verwende. Kann mir jemand Helfen?

config.php

Code: Alles auswählen

<?php

//**********************************************
//* In dieser Datei ist die Konfiguration der  *
//* Datenbank gespeichert, und kann so bei     *
//* jeder Verbindung einfach abgerufen werden. *
//**********************************************


error_reporting(E_ALL); 															// Verbindugsaufbau zur Datenbank
define ( 'MYSQL_HOST', 'localhost' );									// meistens localhost, daten sind beim Server angegeben
define ( 'MYSQL_USER', 'aufgaben@1' );								// Benuzername der Datenbank
define ( 'MYSQL_PASSWORD', '**********' );							// Kennwort der Datenbank
define ( 'MYSQL_DATABASE', 'aufgaben@1-aufgaben' );		// Name der Datenbank

?>
datenbankauswaehlen.php

Code: Alles auswählen


<?php                                                                
  
  
    error_reporting(E_ALL);                                                                                                         
    include 'config.php';                //Config Datei Laden                        
                                                                                                              
    $db_link = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD);   
                                                                     
    if($db_link) {                                                   
        echo "Verbindung wurde aufgebaut<br />\n";                   
                                                                     
        if(mysql_select_db(MYSQL_DATABASE, $db_link)) {              
            echo "Die Datenbank ".MYSQL_DATABASE." wurde ausgewählt";
        } else {                                                     
            echo "Datenbank ".MYSQL_DATABASE." wurde nicht gefunden";
        }                                                            
    } else {                                                         
        echo "Es konnte keine Verbindung aufgebaut werden";          
    }                                                                
?> 

Diese Datei sollte nur die Datenbank auswählen und dann mir eine Meldung schreiben dass alles geklappt hat. Leider kommt immer nur die gleiche Meldung.
Mein Server hat geschrieben:Notice: Use of undefined constant MYSQL_USER - assumed 'MYSQL_USER' in /data/apache/users/kilu.de/aufgaben/www/datenbankauswaehlen.php on line 13

Notice: Use of undefined constant MYSQL_PASS - assumed 'MYSQL_PASS' in /data/apache/users/kilu.de/aufgaben/www/datenbankauswaehlen.php on line 13

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'MYSQL_USER'@'localhost' (using password: YES) in /data/apache/users/kilu.de/aufgaben/www/datenbankauswaehlen.php on line 13
Es konnte keine Verbindung aufgebaut werden
Kann jemand einen Fehler im Code erkennen, oder muss ich wie oben schon genannt am Server noch etwas einstellen. Aktuell liegt die Datei auf dem Server von kilu.de.

Für alle die sich die Geschichte selber aunschauen möchten habe ich hier meine zwei Links zu den Dateien.

www.aufgaben.kilu.de/config.php
www.aufgaben.kilu.de/datenbankauswaehlen.php

Ich wäre sehr froh über hilfe, Danke

Verfasst: 19.07.2008 16:49
von cYbercOsmOnauT
  1. Verlinkte Dateien sollten keine .php Endung haben, denn man sieht nun nur eine weisse Seite wenn man draufklickt. KB:datei
  2. Datenbankspeziefische Daten in Konstanten zu packen ist aus Sicht der Sicherheit mehr als bedenklich. Denn eine Konstante existiert immer und überall und kann nicht mehr in der Laufzeit gelöscht werden. Arbeite lieber mit normalen Variablen, die Du nach dem Verbindungsaufbau wieder löschst.
  3. Die Logindaten Deiner Datenbank in eine eigene Datei zu packen, wenn Du auch eine Datei hast in der Du die Verbindung aufbaust, ist unnötig. phpBB macht es, weil sie mehrere DB Wrapper nutzen und es innerhalb dieser nicht sicher ist, welcher Wrapper verwendet wird.
  4. Ein Include wird relativ zum Hauptscript ausgeführt und nicht relativ zum Script in dem es drin steht. Hierbei kann es dann auch schonmal vorkommen, dass ein Include nicht korrekt durchgeführt wird. Ich include immer mit absoluten Pfaden, da ist das dann ausgemerzt. Beispiel

    Code: Alles auswählen

    include(dirname(__FILE__).'/config.php');
    um eine config.php zu laden, die im selben Verzeichnis steckt.
  5. Soviel zu meinen Tipps. Nun zu dem Fehler, den Du gemacht hast. Deine Remarkzeilen oben fangen alle mit //* an. /* jedoch lässt eine mehrzeilige Bemerkung starten, welches dann mit */ beendet wird. Will heissen, PHP sieht Deine gesamt config.php als eine große Bemerkung und setzt keinerlei Konstanten da in der config.php nirgendwo ein */ zu finden ist.
Grüße,
Tekin

Verfasst: 19.07.2008 16:54
von bairan
Vielen Dank, es hat geklappt :D

Thema kann geschlossen werden...

Verfasst: 20.07.2008 14:26
von bairan
cYbercOsmOnauT hat geschrieben:
  1. Verlinkte Dateien sollten keine .php Endung haben, denn man sieht nun nur eine weisse Seite wenn man draufklickt. KB:datei
  2. Datenbankspeziefische Daten in Konstanten zu packen ist aus Sicht der Sicherheit mehr als bedenklich. Denn eine Konstante existiert immer und überall und kann nicht mehr in der Laufzeit gelöscht werden. Arbeite lieber mit normalen Variablen, die Du nach dem Verbindungsaufbau wieder löschst.
  3. Die Logindaten Deiner Datenbank in eine eigene Datei zu packen, wenn Du auch eine Datei hast in der Du die Verbindung aufbaust, ist unnötig. phpBB macht es, weil sie mehrere DB Wrapper nutzen und es innerhalb dieser nicht sicher ist, welcher Wrapper verwendet wird.
  4. Ein Include wird relativ zum Hauptscript ausgeführt und nicht relativ zum Script in dem es drin steht. Hierbei kann es dann auch schonmal vorkommen, dass ein Include nicht korrekt durchgeführt wird. Ich include immer mit absoluten Pfaden, da ist das dann ausgemerzt. Beispiel

    Code: Alles auswählen

    include(dirname(__FILE__).'/config.php');
    um eine config.php zu laden, die im selben Verzeichnis steckt.
  5. Soviel zu meinen Tipps. Nun zu dem Fehler, den Du gemacht hast. Deine Remarkzeilen oben fangen alle mit //* an. /* jedoch lässt eine mehrzeilige Bemerkung starten, welches dann mit */ beendet wird. Will heissen, PHP sieht Deine gesamt config.php als eine große Bemerkung und setzt keinerlei Konstanten da in der config.php nirgendwo ein */ zu finden ist.
Grüße,
Tekin
Du hast den 5. Punkt glaube ich später noch hinzugefügt. Das mit deinem Komentar war aber nicht das Problem, es war nur die Pfadangabe.
Aber nochmals danke

Verfasst: 21.07.2008 11:04
von cYbercOsmOnauT
bairan hat geschrieben:Du hast den 5. Punkt glaube ich später noch hinzugefügt. Das mit deinem Komentar war aber nicht das Problem, es war nur die Pfadangabe.
Aber nochmals danke
Punkt 5 schrieb ich dazu nachdem ich die anderen Punkte nochmal "Korrektur las". Aber interessant auch für mich, PHP erkennt erst das // für eine einzelige Bemerkung und somit ist das /* was nach dem ersten / kommt, egal. Macht Sinn, wusste ich aber auch nicht. Liegt wohl daran, dass ich mehrere Bemerkungszeilen immer mit /* und */ schreibe. Man lernt nie aus. :)

Grüße,
Tekin

Verfasst: 21.07.2008 15:28
von bairan
Ja das habe ich bereits auch verbessert, ist wahrscheindlich auch besser so, gibts nicht wieder missverständnisse :D