PHP - Mysql Verbindungs Probleme

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

PHP - Mysql Verbindungs Probleme

Beitrag 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
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag 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
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag von bairan »

Vielen Dank, es hat geklappt :D

Thema kann geschlossen werden...
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag 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
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag 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
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag von bairan »

Ja das habe ich bereits auch verbessert, ist wahrscheindlich auch besser so, gibts nicht wieder missverständnisse :D
Antworten

Zurück zu „Coding & Technik“