So, erstmal hallo an alle, bin ja neu hier.
Um das hier umzustzen brauch ihr einen Server (geht auch lokal), der PHP unterstützt, dafür könnt ihr entweder bei bplaced.net einen mieten oder auch
XAMPP herunterladen, es isntallieren und dann Lokal testen. (Es ist ein Simulierter server. Die .php´s kommen nach XAMPP/htdocs/, und abrufen könnt ihr den Ordner htdocs im BRowser mit http://localhost/, unterordner funktionieren auch).
Des weiteren solltet ihr euch ein wenig in PHP und HTML auskennen, um das Script anzupassen.
Was auchnoch nützlich wäre ist ein gescheiter PHP-Editor, z.B. PHP Coder Pro!(Unten in "infos uzm download" auf den Link klicken,w arten bis der downloadstartet).
Dann mal los.
Zuerst legen wir im phpMyAdmin eine neue Tabelle "users" in einer neuen Datenbank "daten" an. Das geht so:
Zu phpMyAdmin bei bplaced kommt ihr über phpmyadmin.[mein_name].bplaced.net, mit XAMPP über http://localhost/phpmyadmin/ .
Dort loggt ihr euch mit den Daten ein (bei XAMPP ist man schon eingeloggt, wirds auch immer sein), die euch bplaced gegeben hat, abrufbar auch im Login bereich. (Login->MySQL Datenbanken->neue Datenbank, Benutzer ist dann euer bplaced name, ps das eingegebene).
Dort gebt ihr dann bei Neue Datenbank anlegen daten ein, im nächsten Fenster (bei neue Tabelle anlegen) users ein und 4 Felder.
Das erste Feld ist id und der Typ ist INT, die länge ist 2, und bei extra wählt ihr auto_increment aus und hakt den Schlüssel am ende an.
Das Zweite feld ist name, Typ VARCHAR, länge 50, das dritte ist passwort, Type ebenfalss VARCHAR, länge auch 50. Das letzte ist dann email, auch VARCHAR mit 50 zeichen. (Nicht angegebene Werte einfach lassen, wie sie sind).
Fertig, klickt ihr auf speichern.
Dann brauchen wir noch die Tabelle bestatigung mit 2 feldern. 1. acc, INT länge 2, code varchar 50.
Dann gehts mit den HTML dateien los.
An die spätere register.php müssen Folgende Werte:
user -> Der Benutzername
pw1 -> Passwort
pw2 -> Passwortbestätigung
email -> Die E-Mail Adresse
dann werden die Daten wie folgt verarebeitet:
Damit steht die registrierung schon fast, bruachen wir nurnoch die bestätigung.
Gut, nun kann man sich registreiren und seinen Account bestätigen
Dann fehlt noch der login
und login.php
Das ganze könnt ihr auch als anhang runterladen.
Dann steht das ganze. Ich hoffe, das Tut hat euch geholfen.
Feedback ist herlich willkommen.
Anhang anzeigen Login.zip
EDIT:
Is mir garnich aufgefallen, wer sich einloggt, muss natürlich auch einen Logout-Link vorfinden
Einfach hierdrauf verlinken, zum logut wird nix weiter benötigt.
Um das hier umzustzen brauch ihr einen Server (geht auch lokal), der PHP unterstützt, dafür könnt ihr entweder bei bplaced.net einen mieten oder auch
XAMPP herunterladen, es isntallieren und dann Lokal testen. (Es ist ein Simulierter server. Die .php´s kommen nach XAMPP/htdocs/, und abrufen könnt ihr den Ordner htdocs im BRowser mit http://localhost/, unterordner funktionieren auch).
Des weiteren solltet ihr euch ein wenig in PHP und HTML auskennen, um das Script anzupassen.
Was auchnoch nützlich wäre ist ein gescheiter PHP-Editor, z.B. PHP Coder Pro!(Unten in "infos uzm download" auf den Link klicken,w arten bis der downloadstartet).
Dann mal los.
Zuerst legen wir im phpMyAdmin eine neue Tabelle "users" in einer neuen Datenbank "daten" an. Das geht so:
Zu phpMyAdmin bei bplaced kommt ihr über phpmyadmin.[mein_name].bplaced.net, mit XAMPP über http://localhost/phpmyadmin/ .
Dort loggt ihr euch mit den Daten ein (bei XAMPP ist man schon eingeloggt, wirds auch immer sein), die euch bplaced gegeben hat, abrufbar auch im Login bereich. (Login->MySQL Datenbanken->neue Datenbank, Benutzer ist dann euer bplaced name, ps das eingegebene).
Dort gebt ihr dann bei Neue Datenbank anlegen daten ein, im nächsten Fenster (bei neue Tabelle anlegen) users ein und 4 Felder.
Das erste Feld ist id und der Typ ist INT, die länge ist 2, und bei extra wählt ihr auto_increment aus und hakt den Schlüssel am ende an.
Das Zweite feld ist name, Typ VARCHAR, länge 50, das dritte ist passwort, Type ebenfalss VARCHAR, länge auch 50. Das letzte ist dann email, auch VARCHAR mit 50 zeichen. (Nicht angegebene Werte einfach lassen, wie sie sind).
Fertig, klickt ihr auf speichern.
Dann brauchen wir noch die Tabelle bestatigung mit 2 feldern. 1. acc, INT länge 2, code varchar 50.
Dann gehts mit den HTML dateien los.
An die spätere register.php müssen Folgende Werte:
user -> Der Benutzername
pw1 -> Passwort
pw2 -> Passwortbestätigung
email -> Die E-Mail Adresse
HTML:
---register.html---
<html>
<head>
<title>Registrierung</title>
</head>
<body>
<h2>Registrierung</h2>
<form action="register.php" method="POST">
<!-- Die Daten werdena n register.php mit POST versant -->
<a>Benutzername:</a><br>
<input type="text" name="user"><br>
<a>Passwort:</a><br>
<input type="password" name="pw1"><br>
<a>Passwort bestätigen:</a><br>
<input type="password" name="pw2"><br>
<a>E-Mail Adresse (muss gültig sein, KEIN SPAM!)</a><br>
<input type="text" name="email"><br>
<input type="submit" value="registreiren">
</form>
</body>
</html>
PHP:
---register.php---
<?php
$user=$_POST["user"];
$pw=$_POST["pw1"];
$mail=$_POST["email"];
// Die Daten werden variablen zugewiesen, die wir später verwenden
function checkmail($email) {
// wir könnten hier den host testen, was aber bei 1und1 adressen fehlschlägt
if (strpos($email, "@")) {
return true;
// Die E-Mail adresse enthält ein @, also ist sie korekt
} else {
return false;
// Sie Enthält kein @, aslo ist sie nicht korrekt
}}
function create() {
// Funktion zum erstellen des Bestätigungs-Codes
$create_array=array(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");
$create_i=0;
$created_output="";
while ($create_i<=15) {
$create_random=rand(1,26);
$created_output.=$create_array[$create_random];
$create_i++;
}
return $created_output;
}
//Fangen wir mit der eigentlichen datenverarbeitung an
if ($user!="") {
// Der Benutzer ist nicht nix
if ($pw!="" && $pw==$_POST["pw2"]) {
// Das Passwort ist nicht nichts und stimmt mit dem bestätigungs-üw überein
if (checkmail($mail)) {
// Die E-Mail Stimmt
$db=new mysqli("localhost", "root", "", "daten");
// Datenbankverbindung
$sql="INSERT INTO users(id, name, passwort, email) VALUES ('', '".$user."', '".md5($pw)."', '".$mail."')";
// Befehl, die daten einzutragen
if (@$db->query($sql)) {
// Die Daten sind in der Datenbank, jetzt brauchen wir die id des nutzers
$sql="SELECT id FROM users WHERE name='".$user."'";
if (@$resultat=$db->query($sql)) {
// Daten abgerufen
if (@$erbeb=$resultat->fetch_array()) {
// Daten als array $ergeb geholt
$vcode=create();
// bestätigungscode
$sql="INSERT INTO bestatigung(acc, code) VALUES ('".$ergeb["id"]."', '".$vcode."')";
if (@$db->query($sql)) {
// Daten sind inner Datenbank, fertig!
@mail($mail, "Registreirung erfolgreich", "Hallo ".$user.",\nDeine Registrierung bei ~ war erfolgreich\nDeine Daten sind:\n".$user."\n".$pw."\n\n Um Deinen account zu aktivieren gehe nach http://deineseite.iwas/verify.php?".$vcode."\n Viele Grüße, dein ~ Team", "From: no-replay@supernaturetutorial.de");
//E-Mail an den Nutzer
echo "Registrierung Erolgreich. Es wurde eine Mail an ".$mail." gesendet";
} else {
echo "datenbankprobleme".$db->error;
}
} else {
echo "Datenbankprobleme".$db->error;
}
} else {
echo "Datenbankprobleme".$db->error;
}
} else {
echo "Datenbankprobleme".$db->error;
}
} else {
echo "Keine gültige E-Mail Adresse";
}
} else {
echo "die Passwörter stimmen nicht";
}
} else {
echo "Kein Benutzer angegeben";
}
@$db->close();
?>
// Schliessen der Datenbankverbindung
PHP:
---verify.php---
<?php
foreach ($_GET as $key=>$val) {
$code=$key;
}
// Auslesen der GET-Variable
if (!empty($code)) {
// Code übergeben
@$db=new mysqli("localhost", "root", "", "daten");
// Datenbankverbindung
$sql="DELETE FROM bestatigung WHERE code='".$code."'";
if (@$db->query($sql)) {
echo "Account freigeschaltet";
} else {
echo "Datenbankprobleme";
}
@$db->close();
} else {
header ("Location: register.html");
// Kein Code, auf zu register.html
}
?>
Dann fehlt noch der login
HTML:
---login.html---
<html>
<head>
<title>Login</title>
</head>
<body>
<form action="login.php" method="POST">
<!-- Daten mit POST an login.php -->
<a>Benutzername:</a><br>
<input type="text" name="user"><br>
<a>Passwort</a><br>
<input type="password" name="pw"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
PHP:
---login.php---
<?php
if (isset($_POST["user"]) && isset($_POST["pw"])) {
$user=$_POST["user"];
$pw=$_POST["pw"];
@$db=new mysqli("localhost", "root", "idontwannastop!", "daten");
$sql="SELECT id,passwort FROM users WHERE name='".$user."'";
if (@$resultat=$db->query($sql)) {
if ($ergeb=$resultat->fetch_array()) {
// Wir kenne die Prozedur ja
$sql="SELECT acc FROM bestatigung WHERE acc='".$ergeb["id"]."'";
@$resultat=$db->query($sql);
@$ergeb2=$resultat->fetch_array();
if ($ergeb2[0]=="") {
// Der Account ist Bestätigt
if (md5($pw)==$ergeb["passwort"]) {
// Passwort ok, login
session_start();
$_SESSION["id"]=$ergeb["id"];
$_SESSION["name"]=$user;
echo "Eingeloggt";
} else {
echo "Falsches Passwort".$db->error;
}
} else {
echo "Account noch nicht bestätigt";
}
} else {
echo "Der Benutzer ".$user." Existriert nicht";
}
} else {
echo "Der Benutzer ".$user." Existriert nicht";
}
} else {
header ("Location: login.html");
}
?>
Dann steht das ganze. Ich hoffe, das Tut hat euch geholfen.
Feedback ist herlich willkommen.
Anhang anzeigen Login.zip
EDIT:
Is mir garnich aufgefallen, wer sich einloggt, muss natürlich auch einen Logout-Link vorfinden
Einfach hierdrauf verlinken, zum logut wird nix weiter benötigt.
PHP:
---logout.php---
<?php
// erstmal ne Session starten, damit wir sie auch löschen können
session_start();
// Die Besagte löschen
session_destroy();
header ("Location: login.html");
// und zurück zu login.html
?>
Zuletzt bearbeitet: