WebImpressionen
Für eine Datenbank wird ein Server benötigt!
Hier für einen XAMPP-Server.
PHP-Ver.: 8.1.6 - Zend-Ver.: 4.1.6
MySQLi-Ver.: 10.4.24-MariaDB
Grundwissen über einen XAMPP-Server setze ich voraus!

Fast alle Login Tutorials schreiben nur für username und passwort
Hier mal eins für username, passwort, email und aktivierung mit mysqli / prepared statement.
Geprüft mit php versionen 7.2, 7.4, 8.0, 8.1, 8.1.2 und 8.1.6

Zuerst die Datenbank db_test im XAMPP-Server anlegen!

Verbindung zur XAMPP DatenBank herstellen
connect.php
<?php
  • error_reporting(0);
  • // wird verwendet, um Warnungen zu unterdrücken

  • mysqli_report(MYSQLI_REPORT_OFF);
  • // wird verwendet, um Warnungen zu unterdrücken

  • // php alle Fehler und Warnungen anzeigen - zum testen absolut erforderlich!
  • error_reporting(-1);
  • ini_set('display_errors', true);

  • // mysql Fehlermeldungen anzeigen - zum testen absolut erforderlich!
  • mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    • // Daten für Datenbank über einem Editor eintragen
  1. $_database = "db_test";
  2. $_username = "root";
  3. $_password = "";
  4. $_hostname = "localhost";
  5. $charset = "utf8"; // diese Zeile muß nicht, kann aber genutzt werden

    • // Datenbank verbindung
  6. $connect = new mysqli($_hostname,$_username,$_password, $_database);
  7. if ($connect->connect_errno)
  8. {
  9. echo "Fehler Meldung erstellen: ".$connect->connect_error;
  10. exit();
  11. }

  12. if (!$connect->set_charset($charset))
  13. {
  14. "Fehler Meldung erstellen";
  15. exit();
  16. }
?>
  <!-- Wenn Zeile 5 nicht genutzt wird, sollten auch die Zeilen 12 bis 16 nicht genutzt werden! -->

Datenbank Tabelle erstellen mit einer einfachen install.php
install.php
<?php

if (!isset($_POST['action'])) {$_POST['action'] ='';}

    • // Datenbank Tabelle
  1. $sqlquery[] = "CREATE TABLE IF NOT EXISTS `usertable`
  2. (
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `username` varchar(30) NOT NULL,
  5. `usermail` varchar(80) NOT NULL,
  6. `userpass` varchar(255) NOT NULL,
  7. `datum` int(10) UNSIGNED NOT NULL,
  8. `active` int(2) NOT NULL default '0',
  9. PRIMARY KEY (`id`)
  10. );
  11. ";
?>

    • <!-- Formular-Kopf -->
  • <!DOCTYPE html>
  • <html lang="de"><head>
  • <meta charset="UTF-8">
  • <meta name="viewport" content="width=device-width,initial-scale=1.0">
  • <title>Installieren</title>
  • <meta name="dcterms.rights" content="locomputing">
  • <meta name="description" content="Beschreibung der Website">
  • <meta name="keywords" content="Keywords">
  • <!-- Dieses Stylesheet kann unter Downloads auch runtergeladen werden! -->
  • <link rel="stylesheet" href="https://locomputing.de/mustercss/install_style.css">

  • </head>
  • <body>

  • <!-- Datenbank verbindung einfügen -->
<?php
  • if(file_exists('connect.php')==true){require('connect.php');}
?>

  • <!-- Formular -->
  • <form method="post">

  • <div id="tbcontainer">

  • <div class="tbkopf">Datenbankinstallation</div>

  • <div class="box">
  • <div>Datenbankname</div>
  • <div><input class="put" type="text" name="db" value="<?php echo $_database;?>"/></div>
  • <div>vom Provider</div>
  • </div>

  • <div class="box">
  • <div>SQL-Host</div>
  • <div><input class="put" type="text" name="host" value="<?php echo $_hostname;?>"/></div>
  • <div>vom Provider</div>
  • </div>

  • <div class="box">
  • <div>SQL-Username</div>
  • <div><input class="put" type="text" name="name" value="<?php echo $_username;?>"/></div>
  • <div>vom Provider</div>
  • </div>

  • <div class="box">
  • <div>SQL-Passwort</div>
  • <div><input class="put" type="text" name="pass"/></div>
  • <div>vom Provider</div>
  • </div>

  • <div class="tbfoot">Tragen Sie die Daten die Sie vom Provider erhalten haben ein.</div>

  • </div><!-- Ende id-tbcontainer -->

  • <input class="but" type="submit" name="action" value="Tabelle_erstellen">

  • </form>

<?php
    • // Installieren
  1. if ($_POST['action'] == "Tabelle_erstellen")
  2. {
  3. $TempBug = 0;
  4. $_database = $_POST['db'];
  5. $_username = $_POST['name'];
  6. $_password = $_POST['pass'];
  7. $_hostname = $_POST['host'];
  8. $conect = new mysqli($_hostname,$_username,$_password) or $TempBug = 1;
  9. $conect->select_db($_database) or $TempBug = 2;
  10. for ($i=0; $i < sizeof($sqlquery); $i++)
  11. {
  12. $conect->query($sqlquery[$i]) or $TempBug = 3;
  13. }
  14. $conect->close();
  15. if ($TempBug > 0)
  16. {
  17. echo'<p class="noready">Bei der Installation ist leider ein Fehler aufgetreten...<br/>';

  18. if ($TempBug == 1){echo'<strong>Error Nr. "1"</strong>
  19. <br/>Keine Verbindung zum SQL-Server...<br/>';}

  20. if ($TempBug == 2){echo'<strong>Error Nr. "2"</strong>
  21. <br/>Konnte Datenbank nicht öffnen...<br/>';}

  22. if ($TempBug == 3){echo'<strong>Error Nr. "3"</strong>
  23. <br/>Datenbankfehler - Tabelle konnte nicht angelegt werden...<br/>';}

  24. echo'</p>';
  25. } // Ende Zeile 16
  26. else
  27. {
  28. echo'<p class="ready">Die Installation der Tabelle war erfolgreich.</p>';
  29. echo'<p>Hier geht es zum <a href="register.php">Registrieren</a></p>';
  30. }
  31. } // Ende Zeile 2
?>

  • </body>
  • </html>