Grundkentnisse - MySQL mit PHP
Wilkommen zu meinem PHP / MYSQL tutorial.
In diesem Tutorial werde ich euch zeigen, wie ihr mit MYSQL / PHP eine Registierungsseite erstellen könnt, und eine Seite wo sich die angemeldeten User einloggen können.
Was brauche ich dafür?
Ein Webserver, der PHP & MySQL unterstürzt.
IQ > 20
MYSQL Befehle mit PHP
Code:
<?php
$host = '127.0.0.1';
$user = 'username';
$pass = 'password';
mysql_connect($host, $user, $pass);
$sql = '<the sql query>';
$result = mysql_query($sql);
?>
Erklärung:
Zeile 1: PHP deklinationen ( <?php kommt immer am Anfang eines PHP-Skriptes)
Zeile 2-4: MYSQL-Daten als Variablen abspeichern
Zeile 5: Verbinden zu der Datenbank
Zeile 6: SQL Befehl in der Variable speichern
Zeile 7: SQL befehl ausführen
Zeile 8: PHP-Code ist zu ende, deswegen immer am Ende eines PHP-Skriptes "?>" setzen.
Tabelle in einer Datenbank erstellen
SQL befehl : :
Code:
CREATE TABLE `test` (`user_id` INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`user_id`), `username` VARCHAR(50), `password` VARCHAR(50), `salt` VARCHAR(5))
SQL befehl Erklärung
Der SQL befehl erstellt eine tabelle in der Datenbank namens "test" mit 4 Felder:
user_id: Integer, Not Null, die id eines users, es steigt automatisch bei jedem Eintrag in der Datenbank
username: maximal 50 Zeichen
password: Maximal 50 Zeichen
salt: Salt des Passwords (Verschlüssung)
Daten in einer Tabelle einfügen
SQL befehl:
Code:
INSERT INTO `test` (`username`, `password`, `salt`) VALUES ('USER_NAME', 'PASS_WURD', '!@#$%')
Erklärung:
Es fügt Daten in der Tabelle ein:
0 USER_NAME PASS_WURD !@#$%
Nun das Registierungsscript:
Code:
<?php
$host = '127.0.0.1';
$user = 'username';
$pass = 'password';
$db = 'test';
mysql_connect($host, $user, $pass);
mysql_select_db($db)
if (isset($_POST['submit'])) {
$username = addslashes($_POST['user']);
$password = addslashes($_POST['pass']);
$salt = "";
$salt_usable = "1234567890!@#$%^&*()<>?,./[]\{}|";
$i = 0;
while ($i < 5) {
$char = substr($salt_usable, mt_rand(0, strlen($salt_usable) - 1), 1);
$salt .= $char
$i++;
}
$password = md5($salt . $password);
$sql = "INSERT INTO `test` (`username`, `password`, `salt`) VALUES (\'" . $username . "\', \'" . $password . "\'. \'" . $salt . "\')";
$result = mysql_query($sql);
echo('User erstellt! Du kannst dich nun einloggen <a href="login.php">hier</a>.');
} else {
echo('<html><head><title>Anmelden</title></head><body><form action="" method="POST"><input type="text" name="user" value="Username" /><br /><input type="password" name="pass" value="Password" /><br /><input type="submit" name="submit" value="Register" /></form></body>');
}
?>
Erklärung:
Zeile 1-6: Siehe letzte Erklärung
Zeile 7: Datenbank auswählen
Zeile 8: Es wird gprüft, ob der User auf absenden geklickt hat.
Zeile 9-10: Speichert die eingegebenen Daten (WICHTIG: addslashes() schützt vor SQL-injectionen!)
Zeile 11: Salt-Variable erstellen
Zeile 12: Erlaubte Zeichen setzen
Zeile 14: Eine einfache While-Schleife
Zeile 15: Zufallszeichen in dem Column salt_usable variabe
Zeile 16: Zufallszeichen zu dem Salt-String einfügen
Zeile 17: Schutz gegen unendliche Schleife
Zeile 18: Schleife beenden
Zeile19: Passwort mit md5 verschlüsseln
Zeile 20: SQL-Befehl erstellen
Zeile 21: SQL befehl ausfühern
Zeile 22: User informieren, dass die Registierung erfolgreich war
Zeile 23: Wenn keine Daten eingegeben worden sind,...
Zeile 24: werden die Felder erneuert angezeigt.
Zeile 25: End if statement
Daten von einer Datenbank anzeigen
SQL befehl:
Code:
SELECT `salt`, `password` FROM `test` WHERE `username`='USER_NAME'
Erklärung
Der Befehl sucht in der Tabelle ein Eintrag wo Username = user_name und password = test ist
PHP beispiel
login.php:
Code:
<?php
$host = '127.0.0.1';
$user = 'username';
$pass = 'password';
$db = 'test';
mysql_connect($host, $user, $pass);
mysql_select_db($db)
if (isset($_POST['submit'])) {
$username = addslashes($_POST['user']);
$password = addslashes($_POST['pass']);
$sql = "SELECT `salt`, `password` FROM `test` WHERE `username`=\'" . $username . "\'";
$result = mysql_query($sql);
$return = mysql_fetch_array($result);
if ($return(0) == "") {
echo('User nicht gefunden!!!!!);
} else {
$salt = $return(0);
$real_pw = $return(1);
$password = md5($salt . $password);
if ($real_pw != $password) {
echo('Incorrect password.');
} else {
echo('erfolgreich eingeloggt als' . $username);
}
}
} else {
echo('<html><head><title>Login</title></head><body><form action="" method="POST"><input type="text" name="user" value="Username" /><br /><input type="password" name="pass" value="Password" /><br /><input type="submit" name="submit" value="Login" /></form></body>');
}
?>
PHP Erklärung:
Zeile 1-10: Siehe letzte Erklärung
Zeile 11: Unser SQL-Befehl erstellen
Zeile 12: SQL befehl ausführen
Zeile 13: Datensatz anfordern
Zeile 14: wenn keine daten "erhalten"
Zeile 15: User wird mitgeteilt, dass Login fehlgeschlagen ist.
Zeile 16: Wenn die Daten gefunden worden sind
Zeile 19: Passwort mit md5 verschlüsseln
Zeile 20: Wenn die passwörter nicht überreinstimmen
Zeile 21: es wird ausgegeben, dass das Passwort falsch ist.
Zeile 22: Wenn das Passwort überrein stimmt.
Zeile 23: User wurde erfolgreich eingeloggt; es wird ein text gezeigt, dass er sich erfolgreich eingeloggt hat.
Zeile 24-29: bereits erklärt
Ich hoffe euch gefiel mein Tutorial, wenn ihr noch Fragen habt, stellt sie hier ruhig!
Und wenn ihr überhaupt nichts wisst über PHP, dann könnt ihr natürlich das Tutorial nicht verstehen, das Tutorial ist nicht nämlich für komplette Newbies
Das tutorial ist selbstgeschrieben von mir, vTasker.
Bitte nicht kopieren!
Danke fürs lesen, und Kommentare sind erwünscht!