Connect von PHP zu phpMyAdmin via localhost

Guten Tag,
wir - 5 Jungses - haben ein Projekt in dem wir eine Homepage erstellen wollen über HTML.
Auf dieser Homepage soll man sich Registrieren und anschließend Einloggen können um dort nach anderen registrierten Nutzern suchen zu können.

Wir brauchen also [ HTML; PHP und SQL ]
(korrigiert mich falsch ich etwas vergessen habe :wink: )

WIR haben folgendes Problem:

Wir probieren über die PHP-Datei einen Benutzer zu registrieren.
(Eingegebene Daten über ein HTML-Fenster in phpMyAdmin (SQL-DB) zu speichern)

Macht er nicht !!!

Der Code:

<html>
<head>
    <title>Profil-Website</title>
     <style>
     body {
        background-image:
        url('Logo2.jpg');
        }
    </style>

    <link href='StyleSheet.css' type='text/css' rel='stylesheet' />
    <link href='Seite2.html' type='text/css'/>
    <link href='Seite3.html' type='text/css'/>
</head>

<body>
<?php //---------------------------------------------------------------- // Zum Aufbau der Verbindung zur Datenbank define ( 'MYSQL_HOST', 'localhost' ); define ( 'MYSQL_BENUTZER', 'root' ); define ( 'MYSQL_KENNWORT', '1234' ); define ( 'MYSQL_DATENBANK', 'dating' ); $db = mysqli_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK); //---------------------------------------------------------------- ///* //Überprüfung ob der Verdindungsaufbau geklappt hat if ($db) { echo 'Verbindung erfolgreich:

'; } else { exit('KEINE Verbindung möglich!' .mysqli_error()); } //---------------------------------------------------------------- //*/ ?>
    <h1 align='center'>Most Sexiest Boys in Leer</h1>
        <div align='center'>
            <p>Doch schon ein Account? <a href='M-S-B-i-L.html'>Hier Klicken zur Anmeldung.</a></p>
      </div>
    <div  align='center' class='login'>                                
      <form method='post'>
      
                              <?php
                                //----------------------------------------------------------------
                                //Variablen erstellen
                                  $email        = '';
                                $benutzername = '';
                                $passwort     = '';
                                $passwort_wdh = '';
                                //----------------------------------------------------------------
                              ?>
      
        <h4>Bitte Geben sie ihre Email-adresse ein!</h4>
        <p><input type='text' name='email'  value='' /></p>

        <h4>Bitte Geben sie ihren Benutzernamen ein!</h4>
        <p><input type='text' name='benutzername' value='' /></p>
        
        <h4>Bitte geben sie ein Passwort ein!</h4>
        <p><input type='password' name='passwort' value='' /></p>
        
        <h4>Bitte geben sie ihr Passwort noch einmal ein!</h4>
        <p><input type='password' name='passwort_wdh' value='' /></p>
        
                                
        
    <p class='submit'><input type='submit' name='commit' value='Registrieren!'/></p>
    </form>
                                <?php
                                //----------------------------------------------------------------
                                //Eingegebene Daten werden in den Variablen erfasst und den Tabellen
                                //der Datenbank zugewiesen
                                
                                $email                      = $_POST['email'];
                                $benutzername              = $_POST['benutzername'];
                                if($_POST['passwort']     == $_POST['passwort_wdh']){
                                $passwort                  = $_POST['passwort'];
                                }
                                //----------------------------------------------------------------
                                //Überprüfen ob jedes Eingabefeld mit Werten gefüllt wurde
                                if
                                (($email == '') OR ($benutzername == '') OR ($passwort == ''))
                                {
                                    echo 'Fehler: Ein/Mehrere Felder wurden nicht mit Inhalt gefüllt.';
                                    die;
                                }
                                else
                                {
                                //Die eingegebenen Daten sollen - sofern ALLE Felder ausgefüllt
                                //wurden - in die Datenbank übergeben werden
                                    $sql =     'INSERT INTO benutzer 
                                                (    
                                                    email,
                                                     benutzername,
                                                     passwort
                                                ) 
                                             VALUES
                                                (
                                                       "$email",
                                                       "$benutzername",
                                                       "$passwort"
                                                )';
                                    //----------------------------------------------------------------
                                      $email        = '';
                                    $benutzername = '';
                                    $passwort     = '';
                                    $passwort_wdh = '';
                                    //----------------------------------------------------------------
                                    }
                                    if ($email == $_POST['email']) {
                                        echo 'error';
                                        
                                    }
                                //----------------------------------------------------------------
                                
                                $query = mysqli_query($db, $sql);
                                
                                //Überprüfung ob die Daten eingetragen wurden
                                if($sql)
                                {
                                    echo '<br><br>Ihr Eintrag wurde hinzugefügt.';
                                }
                                else
                                {
                                    exit('<br><br>Ihr Eintrag konnte NICHT hinzugefügt werden!' .mysqli_error());
                                }
                                //----------------------------------------------------------------
                                //Verbindung beenden
                                mysqli_close ($db);  
                                //----------------------------------------------------------------
                                ?>
    
    </div>
</body>
</html>

Und was ist die genaue Fehlermeldung?

Bevor Ihr weiter entwickelt möchte ich Euch ans Herz legen, diesen Wikipedia-Artikel zu lesen:

Gruß,
Steve

Lustige Fehlerbeschreibung.

Schau dir mal die Dokumentation zu mysqli_query() an. Da liegt der Fehler.

Und was soll das denn bitte sein? Willst du nochmal ganz sicher gehen?

Und die Frage nach den SQL-Injections ist eine ganz wichtige. Bitte lest das hier http://php.net/manual/de/security.database.sql-injection.php und wendet es an!

Ansonten bricht es euch das Genick, wenn jemand als Passwort folgendes eingibt.

nix");drop table benutzer; SELECT ("1

Das macht folgendes:

  1. füge über dein vorgesehenes Kommando als Passwort nix ein.
  2. schließe das von dir vorgesehene Kommando ab - mit den ANführungszeichen, der Klammer und dem Semikolon
  3. Dann lösche die Tabelle benutzer.
  4. Dann lass dir eine 1 zurückgeben. Hier dann aber darauf achten, dass die von dir vorgegebenen restlichen Zeichen - Anführungszeichen und Klammer wieder Verwendung finden.

Probier es aus - aber vorher Daten sichern.