Für eine Datenbank wird ein Server benötigt!
Hier für einen XAMPP-Server.
PHP-Ver.: 8.2 - Zend-Ver.: 4.2
Grundwissen über einen XAMPP-Server setze ich voraus!
PHP-Ver.: 8.2 - Zend-Ver.: 4.2
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, aktivierung und block mit mysqli & PDO / prepared statement.
Geprüft mit php versionen 7.2, 7.4, 8.0, 8.1 und 8.2
Zuerst die Datenbank db_test im XAMPP-Server anlegen!
Verbindung zur XAMPP DatenBank herstellen:
die db_conect.php
<?php
- // php Fehler und Warnungen anzeigen!
- error_reporting ( - 1 ) ;
- ini_set ( ' display_errors ' , true ) ;
- // Datenbank Fehlermeldungen anzeigen!
- mysqli_report ( MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT ) ;
- // Daten für Datenbankserver
- define ( ' DB_SERVER ' , ' localhost ' ) ;
- define ( ' DB_USERNAME ' , ' root ' ) ;
- define ( ' DB_PASSWORD ' , ' ' ) ;
- define ( ' DB_NAME ' , ' db_test ' ) ;
- // Datenbankserver verbindung
- $sqli = new mysqli ( DB_SERVER , DB_USERNAME , DB_PASSWORD , DB_NAME ) ;
- // Fehlermeldungen anzeigen!
- if ( $sqli -> connect_errno )
- {
- die ( " Datenbank Problem! " . $sqli -> connect_error ) ;
- }
<?php
- // php Fehler und Warnungen anzeigen!
- error_reporting ( - 1 ) ;
- ini_set ( ' display_errors ' , true ) ;
- // Daten für Datenbankserver
- define ( ' DB_SERVER ' , ' localhost ' ) ;
- define ( ' DB_NAME ' , ' db_test ' ) ;
- define ( ' DB_USERNAME ' , ' root ' ) ;
- define ( ' DB_PASSWORD ' , ' ' ) ;
- // Datenbankserver verbindung
- try
- {
- $pdo = new PDO ( " mysql:host = " . DB_SERVER . " ; dbname = " . DB_NAME , DB_USERNAME , DB_PASSWORD ) ;
- $pdo -> setAttribute ( PDO : : ATTR_ERRMODE , PDO : : ERRMODE_EXCEPTION ) ;
- $pdo -> setAttribute ( PDO : : ATTR_EMULATE_PREPARES , false ) ;
- }
- // Datenbank Fehlermeldungen anzeigen!
- catch ( PDOException $fehler )
- {
- die ( " Datenbank Problem! . " . $fehler -> getMessage ( ) ) ;
- }
Datenbank Tabelle für XAMPP-Server erstellen:
die install.php
<?php
- // Post vorbereiten
- if ( ! isset ( $_POST [ ' action ' ] ) ) { $_POST [ ' action ' ] = ' ' ; }
- // Datenbank Tabelle
- $sqlquery [ ] = "CREATE TABLE usertable
- (
- id int ( 11 ) NOT NULL AUTO_INCREMENT ,
- username varchar ( 30 ) NOT NULL ,
- usermail varchar ( 80 ) NOT NULL ,
- userpass varchar ( 255 ) NOT NULL ,
- datum datetime NOT NULL ,
- code bigint ( 13 ) NOT NULL ,
- active int ( 2 ) NOT NULL default '0' ,
- block int ( 2 ) NOT NULL default '0' ,
- PRIMARY KEY ( id )
- ) ;
- " ;
- <!-- Formular -->
- <! DOCTYPE html>
- <html lang = " de "> <head>
- <meta charset = " UTF-8 ">
- <meta name = " viewport " content = " width = device-width , initial-scale = 1 . 0 ">
- <title> Installationsscript </title>
- <meta name = " dcterms.rights " content = " locomputing ">
- <meta name = " description " content = " Beschreibung der Website ">
- <meta name = " keywords " content = " Keywords ">
- <link rel = " stylesheet " href = " https : / / locomputing . de / mustercss / install_style . css ">
- </head>
- <body>
<?php
- // Datenbank verbindung einfügen
- if ( file_exists ( ' db_conect.php ' ) = = true ) { require ( ' db_conect.php ' ) ; }
- <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_name" value = " <?php echo DB_NAME ; ?> "> </div>
- <div> nur XAMPP </div>
- </div>
- <div class = "box">
- <div> SQL-Host </div>
- <div> <input class = "put" type = "text" name = "db_server" value = " <?php echo DB_SERVER ; ?> "> </div>
- <div> nur XAMPP </div>
- </div>
- <div class = "box">
- <div> SQL-Username </div>
- <div> <input class = "put" type = "text" name = "db_username" value = " <?php echo DB_USERNAME ; ?> "> </div>
- <div> nur XAMPP </div>
- </div>
- <div class = "box">
- <div> SQL-Passwort </div>
- <div> <input class = "put" type = "text" name = "db_password" > </div>
- <div> nur XAMPP </div>
- </div>
- <div class = "tbfoot"> Daten für XAMPP-Server sind eintragen. </div>
- </div>
- <input class = "but" type = "submit" name = "action" value = " Tabelle_erstellen ">
- </form>
<?php
- // Installieren
- if ( $_POST [ ' action ' ] = = "Tabelle_erstellen" )
- {
- $TempBug = 0 ;
- $db_name = isset ( $_POST [ ' db_name ' ] ) ? $_POST [ ' db_name ' ] : ' ' ;
- $db_username = isset ( $_POST [ ' db_username ' ] ) ? $_POST [ ' db_username ' ] : ' ' ;
- $db_password = isset ( $_POST [ ' db_password ' ] ) ? $_POST [ ' db_password ' ] : ' ' ;
- $db_server = isset ( $_POST [ ' db_server ' ] ) ? $_POST [ ' db_server ' ] : ' ' ;
- $sqli = new mysqli ( $db_server , $db_username , $db_password ) or $TempBug = 1 ;
- $sqli -> select_db ( $db_name ) or $TempBug = 2 ;
- for ( $i = 0 ; $i < sizeof ( $sqlquery ) ; $i + + )
- {
- $sqli -> query ( $sqlquery [ $i ] ) or $TempBug = 3 ;
- }
- $sqli -> close ( ) ;
- if ( $TempBug > 0 )
- {
<?php
- // Installieren
- if ( $_POST [ ' action ' ] = = "Tabelle_erstellen" )
- {
- $TempBug = 0 ;
- $db_server = isset ( $_POST [ ' db_server ' ] ) ? $_POST [ ' db_server ' ] : ' ' ;
- $db_name = isset ( $_POST [ ' db_name ' ] ) ? $_POST [ ' db_name ' ] : ' ' ;
- $db_username = isset ( $_POST [ ' db_username ' ] ) ? $_POST [ ' db_username ' ] : ' ' ;
- $db_password = isset ( $_POST [ ' db_password ' ] ) ? $_POST [ ' db_password ' ] : ' ' ;
- $pdo = new PDO ( " mysql : host = " . $db_server . " ; dbname = " . $db_name , $db_username , $db_password ) or $TempBug = 1 ;
- for ( $i = 0 ; $i < sizeof ( $sqlquery ) ; $i + + )
- {
- $pdo -> query ( $sqlquery [ $i ] ) or $TempBug = 2;
- }
- if ( ! empty ( $tbl_data ) )
- {
- for ( $r = 0 ; $r < sizeof ( $tbl_data ) ; $r + + )
- {
- $pdo -> query ( $tbl_data [ $r ] ) or $TempBug = 3;
- }
- }
- $pdo = null ;
- if ( $TempBug > 0 )
- {
- <p class = "noready"> Bei der Installation ist leider ein Fehler aufgetreten...</p>
<?php
- 17. if ( $TempBug = = 1 )
- 18. {
- 19. echo " <p> Keine Verbindung zum Server... </p> " ;
- 20. }
- 21. if ( $TempBug = = 2 )
- 22. {
- 23. echo " <p> Konnte Datenbank nicht öffnen... </p> " ;
- 24. }
- 25. if ( $TempBug = = 3 )
- 26. {
- 27. echo " <p> Tabelle konnte nicht angelegt werden... </p> " ;
- 28. }
- 29. }
- 30. else
- 31. {
- <p class = "ready"> Die Installation der Tabelle war erfolgreich . </p>
- <p> Hier geht es zum <a href = " register.php "> Registrieren </a> </p>
<?php
- 32. }
- 33. }
- </body>
- </html>