Hi zusammen. Ich Sag direkt zu Anfang "Ich bin ANFÄNGER "
Ich habe folgendes Problem. Ich hab mir eine Kopie von einem kostenlosen Login Skript gemacht. Da nur User und PW zum registrieren waren, habe ich versucht die Daten anzupassen.
-------------------------------------------------------------------------
Register.php
<?php
$vorname=$_POST["vorname"];
$nachname=$_POST["nachname"];
$kunstlername=$_POST["kunstlername"];
$geburtsdatum=$_POST["geburtsdatum"];
$plz=$_POST["plz"];
$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 ($vorname!="") {
if ($nachname!="") {
if ($kunstlername!="") {
if ($geburtsdatum!="") {
if ($plz!="") {
// 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", "", "", "daten");
// Datenbankverbindung
$sql="INSERT INTO users(id, vorname, nachname, kunstlername, geburtsdatum, plz, passwort, email) VALUES ('', '".$vorname."', '".$nachname."', '".$kunstlername."', '".$geburtsdatum."', '".$plz."', '".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 vorname='".$vorname."'";
if (@$resultat=$db->query($sql)) {
// Daten abgerufen
if (@$ergeb=$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 ".$vorname.",\nDeine Registrierung bei ~ war erfolgreich\nDeine Daten sind:\n".$vorname."\n".$pw."\n\n Um Deinen account zu aktivieren gehe nach http://deineseite.iwas/verify.php?".$vcode."\n Viele Grüße,");
//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 "Keine PLZ angegeben";
}
} else {
echo "Kein Geburtsdatum angegeben";
}
} else {
echo "Kein Kunstlername angegeben";
}
} else {
echo "Kein Nachname angegeben";
}
} else {
echo "Kein Vorname angegeben";
}
@$db->close();
?>
-----------------------------------------------------------------------
Login.php
<?php
if (isset($_POST["user"]) && isset($_POST["pw"])) {
$user=$_POST["user"];
$pw=$_POST["pw"];
@$db=new mysqli("localhost", "", "", "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["email"]=$email;
echo "Eingeloggt";
} else {
echo "Falsches Passwort".$db->error;
}
} else {
echo "Account noch nicht bestätigt";
}
} else {
echo "Der Benutzer ".$user." Existiert nicht";
}
} else {
echo "Der Benutzer ".$user." Existiert nicht";
}
} else {
header ("Location: login.html");
}
?>
Die daten kommen in der Datenbank an und sind richtig sortiert. Wenn ich mich aber einlogen will mit "E-mailadresse" und "PW" kommt immer der Text = Der eingegebene benutzer existiert nicht. Was mach ich denn falsch??? Bitte helft mir... Ich bin hier am verzweifeln
Ich habe folgendes Problem. Ich hab mir eine Kopie von einem kostenlosen Login Skript gemacht. Da nur User und PW zum registrieren waren, habe ich versucht die Daten anzupassen.
-------------------------------------------------------------------------
Register.php
<?php
$vorname=$_POST["vorname"];
$nachname=$_POST["nachname"];
$kunstlername=$_POST["kunstlername"];
$geburtsdatum=$_POST["geburtsdatum"];
$plz=$_POST["plz"];
$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 ($vorname!="") {
if ($nachname!="") {
if ($kunstlername!="") {
if ($geburtsdatum!="") {
if ($plz!="") {
// 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", "", "", "daten");
// Datenbankverbindung
$sql="INSERT INTO users(id, vorname, nachname, kunstlername, geburtsdatum, plz, passwort, email) VALUES ('', '".$vorname."', '".$nachname."', '".$kunstlername."', '".$geburtsdatum."', '".$plz."', '".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 vorname='".$vorname."'";
if (@$resultat=$db->query($sql)) {
// Daten abgerufen
if (@$ergeb=$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 ".$vorname.",\nDeine Registrierung bei ~ war erfolgreich\nDeine Daten sind:\n".$vorname."\n".$pw."\n\n Um Deinen account zu aktivieren gehe nach http://deineseite.iwas/verify.php?".$vcode."\n Viele Grüße,");
//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 "Keine PLZ angegeben";
}
} else {
echo "Kein Geburtsdatum angegeben";
}
} else {
echo "Kein Kunstlername angegeben";
}
} else {
echo "Kein Nachname angegeben";
}
} else {
echo "Kein Vorname angegeben";
}
@$db->close();
?>
-----------------------------------------------------------------------
Login.php
<?php
if (isset($_POST["user"]) && isset($_POST["pw"])) {
$user=$_POST["user"];
$pw=$_POST["pw"];
@$db=new mysqli("localhost", "", "", "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["email"]=$email;
echo "Eingeloggt";
} else {
echo "Falsches Passwort".$db->error;
}
} else {
echo "Account noch nicht bestätigt";
}
} else {
echo "Der Benutzer ".$user." Existiert nicht";
}
} else {
echo "Der Benutzer ".$user." Existiert nicht";
}
} else {
header ("Location: login.html");
}
?>
Die daten kommen in der Datenbank an und sind richtig sortiert. Wenn ich mich aber einlogen will mit "E-mailadresse" und "PW" kommt immer der Text = Der eingegebene benutzer existiert nicht. Was mach ich denn falsch??? Bitte helft mir... Ich bin hier am verzweifeln
Kommentar