Wie connecte ich meine Strato-Datenbank im php-Skript?
Hallo zusammen,
ich beginne gerade mit einem kleinen Projekt mit einer dynamischen Webseite. Die Webseite ist als HTML-Formular gebastelt, bei Strato habe ich mir einen Webspace mit Domain und Datenbank geholt, dort mit phpmyAdmin eine Datenbank (MySQL 8.0) erstellt. Nun möchte ich mit php auf die Datenbank zugreifen. Im Kundenportal von Strato finde ich den Datenbankserver, den Namen der Datenbank, den Benutzernamen und ich kann ein Passwort festlegen. Ich übertrage diese Informationen in das folgende php-Skript, aber es scheint nicht zu funktionieren… Hat das schonmal jemand bei Strato gemacht und kann mir helfen? Benutze ich die falschen Daten?
<?php
// connect.php
$hostDB = "database-***********.webspace-host.com";
$userDB = "'dbu2********“;
$passDB = "passw**********";
$baseDB = "dbs1*********";
$conn = mysqli_connect($hostDB, $userDB, $passDB,$baseDB);
?>
3 Antworten
Hi Gemuesebaer,
das kann sein dass du nach dem anlegen der Datenbank etwas geduld haben musst bevor du darauf zugreifen kannst. Die meisten Webhoster haben auch die Einschränkung das man Datenbanken von außen nicht erreichen kann. Das heißt, wenn du das PHP-Script außerhalb hast, kannst du nicht auf die Datenbank zugreifen.
Aber der ware Grund warum das ganze nicht funktioniert liegt in dieser Zeile:
$userDB = "'dbu2********“;
Dort hast du ein Zeichen zu viel, davon gehe ich aus: nämlich ein '
Ok, was erwartest du von diesem Script? Du verbindest dich mit der Datenbank und machst dann genau … nichts.
Bekommst du ene Fehlermeldung? Wenn nicht, dass scheint es ja zu funktionieren.
Fortsetzung: Nachdem ich Benutzername und PW eingetragen und auf den Login-Button gedrückt habe, kommt dann eine Fehlermeldung (HTML Error 500)
Meine Güte, habe ich das Problem jetzt kacke beschrieben :-D Aber ich denke, es ist leicht ersichtlich, was ich mit dem Code erreichen möchte, oder?
Vorweg: bitte poste hier Quelltext auch als Quelltext, damit man ihn auch vernünftig lesen kann.
Ein 500er Fehler ist ein Serverfehler und deutet auf einen Fehler in deinem PHP hin, durch den der Parser das PHP nicht verarbeiten kann. Klassische Beispiele sind vergessene Semikolons oder fehlenden Anführungszeichen.
Bei dir liegt der/ein Fehler in deiner connect.php in der 2. Zeile:
$userDB = "'dbu2********“;
Dort hast du zwei Fehler:
- Ein ' nach dem "
- Das schließende Anführungszeichen ist nicht " sondern ein typografisches “
In deine 2. Script gibt es auch einen Fehler im SQL:
$sql.= "FROM 'Spieler' ";
Tabellennamen werden nicht in normale Anführungszeichen gesetzt. Entweder keine Anführungszeichen oder Backticks:
$sql.= "FROM `Spieler`";
Danke, die Fehler habe ich ausgemistet und kam immer noch nicht weiter. Dann habe ich den einfachen Connect per PDO versucht und mir einfach nur den Erfolg oder Misserfolg des Connects ausgeben lassen, das hat funktioniert. Dann habe ich es prozedural probiert, ging auch. Also habe ich die ganzen Zeit an der falschen Stelle gesucht, den Zugang bekomme ich hin, nur mein Code ist falsch :-D Einfache Select-Abfragen habe ich jetzt mittlerweile raus, ich hangle mich weiter. Danke für deine Hilfe
Probier es hiermit:
Hallo Babelfish, danke für deine Antwort. Nein, mein Code geht noch weiter. In den oben genannten Teil include ich in meine login.php, in der ich dann überprüfe, ob Benutzername und Passwort (eingegeben im HTML-Formular mit POST-Methode) einen Treffer in der Benutzerdatenbank gibt. Falls ja wird man zur nächsten Seite weitergeleitet:
<?php
if( isset($_POST['user']) && isset($_POST['passwort']) ){
$user = $_POST['user'];
$pass = $_POST['passwort'];
include "connect.php";
$sql = "SELECT spielername ";
$sql.= "FROM 'Spieler' ";
$sql.= "WHERE spielername = '$user' AND passwort ='$pass' ";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result)){
header("Location: index.html");
}
else {
$message="die Login-Daten sind falsch !";
}
}
?>
(…)