Hallo
ich wollte für mein kleines Projekt ein Login Script machen. Habe mir das Video angeschaut
. Nur leider, wenn ich ein Account Registriere. Meint er es wäre erfolgreich, nur der erstellte Account ist in MySQL nicht zu finden.
Die PHP Skripts + SQL Datei sind im Anhang.
Wenn ich das Script ausführe, gibt er mir die Fehlermeldung: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''users' ('username','password') VALUES(Benny,$$$$$OurConstantSaltRules' at line 1
Das $$$$ ist nur das weggemachte Passwort.
function register($username, $password)
{
$hashedPassword = buildHash($password);
$sql = "INSERT INTO 'users'
('username','password')
VALUES(".mysql_real_escape_string($username).",".$hashedPassword.");";
mysql_query($sql);
return tryLogin($username, $password);
}
Hast du das Insert mal von Hand ausgeführt, zum Test?
Bist du sicher, dass es ausgeführt wird?
Hinweis zum Test:
PHP Code:
mysql_query($sql) or die(mysql_error());
Ich bin leider derzeit Unterwegs und kann es deshalb nicht genau Überprüfen.
Aber in der Datei config.php die function
PHP Code:
function buildHash($password)
{
return crypt($password, '$2a$10$OurConstantSaltRules12$');
}
Wenn ich mich recht entsinne setzt er einfach vor den verschlüsselten $password den Salt.
Somit würde wir dann sowas hier rauskriegen:
PHP Code:
$2a$10$OurConstantSaltRules#####################
Wenn wir das ganze nun in unseren Quere Aufrufen erwatet dieser bei $2,$10,$OurConstantSaltRules einen Wert der nicht vorhanden ist, kann es aber wie gesagt leider nicht überprüfen.
Aber probier mal folgendes, ersetz deine Funktion Crypt mit:
PHP Code:
function buildHash($password)
{
return md5('$2a$10$OurConstantSaltRules12$'.$password);
}
Zudem find ich die Stelle persönlich auch nicht wirklich schön.
PHP Code:
$sql = "INSERT INTO 'users'
('username','password')
VALUES(".mysql_real_escape_string($username).",".$hashedPassword.");";
~ Wozu die ' Zeichen bei user ? Wenn schon `.
~ Wozu die ' Zeichen bei den Feldern?
~ Wozu der Verkettungsoperator bei "" ?
PHP Code:
$sql = "INSERT INTO `users`
(username,password)
VALUES("{mysql_real_escape_string($username)}","{$hashedPassword}")";
lg.
Entschuldige falls ich Fehler drinnen haben sollte es ist immerhin früh morgens und hab das ganze via Handy geschrieben
Wenn ich in der Zeile VALUES("{mysql_real_escape_string($username)}","{$ hashedPassword}");";
die {} einsetzte bekomme ich ein Error:
Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\Projekt\config.php on line 49
und wenn ich Punkte da mache
VALUES(".mysql_real_escape_string($username).",".$ hashedPassword.");";
bekomme ich die Meldung:
Unknown column 'TestUser' in 'field list'
@paddelx3
Kein ding. Ich finde es schon super das ich hilfe bekomme
/edit
hab den Fehler gefunden
ich hab in der Zeile VALUES("$username'",".$hashedPassword.");";
hab ich die " durch ein ' ersetzt.
VALUES('$username','.$hashedPassword.');";
jetzt gehts
Vielen dank an alle!
/edit 2
tja zu früh gefreut.
Nach der registrierung habe ich noch ein Problem.
Jetzt wenn ich mich mit dem erstellte Account anmelden will.Komme ich auf die secured.php und da oben steht, dann
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Projekt\config.php on line 35
Aktuelle Config.php
//Nichts ändern! //Verbindung zum MySQL Server. mysql_connect($mysql['host'], $mysql['user'], $mysql['password']) OR die ('Database connection failed'); mysql_select_db($mysql['db']) OR die ('Database not found');
//Wird geschaut, ob ein User eingeloggt ist. function isLoggedin() { return isset($_SESSION['username']); }
function buildHash($password) { return md5('$2a$10$OurConstantSaltRules12$'.$password); }
function tryLogin($username, $password) { $password = buildHash($password);
$sql = "SELECT username FROM users WHERE username = ".$username." AND password = ".$password." LIMIT 1;"; $result = mysql_query($sql);
Mir sind bei deinem Script viele Fehler/Verbesserungen vorgekommen.
Dein Script testet nicht ob ein User schon einmal angelegt wurde.
Man kann sich sogar registrieren, indem man gar nichts eingibt.
Bei mir kann man auch auf die secured.php obwohl ich nicht einmal eingeloggt bin.
Und das Passwort würde ich nochmal überprüfen, sprich so:
Passwort:
Passwort wiederholen:
Ist sicherer für die User. Wollte ich einfach mal so noch anmerken, falls du das Script für etwas "sicheres" verwendest. Weil Sicherheit ist im Internet wirklich wichtig.
Hier ein kleiner Codeschnippsel aus meinem alten Login-Script, das ganz schlicht war.
Du könntest eine if-Abfrage machen, ob das Passwort mit dem ersten Passwort übereinstimmt.
//Nichts ändern! //Verbindung zum MySQL Server. $CONNECT_DATABASE = new PDO("mysql:host=".$mysql['host'].";dbname=".$mysql['db'],$mysql['user'],$mysql['password']);
/* mysql_connect($mysql['host'], $mysql['user'], $mysql['password']) OR die ('Database connection failed'); mysql_select_db($mysql['db']) OR die ('Database not found'); */ //Wird geschaut, ob ein User eingeloggt ist. function isLoggedin() { return isset($_SESSION['username']); }
function buildHash($password) { $HASH_KEY = "TestTestTestCrypt"; return md5($password."-".$HASH_KEY); }
function tryLogin($username, $password) { $password = buildHash($password);
//Nichts ändern! //Verbindung zum MySQL Server. $CONNECT_DATABASE = new PDO("mysql:host=".$mysql['host'].";dbname=".$mysql['db'],$mysql['user'],$mysql['password']);
/* mysql_connect($mysql['host'], $mysql['user'], $mysql['password']) OR die ('Database connection failed'); mysql_select_db($mysql['db']) OR die ('Database not found'); */ //Wird geschaut, ob ein User eingeloggt ist. function isLoggedin() { return isset($_SESSION['username']); }
function buildHash($password) { $HASH_KEY = "TestTestTestCrypt"; return md5($password."-".$HASH_KEY); }
function tryLogin($username, $password) { $password = buildHash($password);
[VB.NET] [How To]Login und Registrierung in ein Programm einbauen 05/20/2015 - Coding Tutorials - 36 Replies Hallo,
In diesem Tutorial zeig ich euch wie ihr einen Login + Registrierung mit MYSQL programmiert.
1. Was brauchen wir?
Eine Mysql Datenbank die Externen Zugriff Erlaubt, die bekommen wir z.b. hier kostenlos: HIER
MYSQL
Visual Basic 2008
[C++] [Help] Login System mit Registrierung 06/16/2012 - C/C++ - 1 Replies Wie im Titel schon gesagt ein Login-System, wo man sich registrieren muss.
Und wie(habe ich mich schon immer gefragt) mache ich dann so eine Datenbank
die die Registrierungen speichert und man sich dann nur einen nicht vergebenen Namen aussuchen kann etc.. also wie bei so einem Forum, halt nur das es ein Programm ist
Würde mich freuen, wenn mir einer dabei helfen würde ;)
MfG Razer'
FTP Login+Registrierung Problem 10/10/2011 - General Coding - 5 Replies hi,
Habe mein Login per ftp gemacht.
Also so:
wc.Credentials = New Net.NetworkCredential("user", "Meinpw")
TextBox3.Text = wc.DownloadString("Mein ftp server" + TextBox1.Text + TextBox2.Text + ".txt")
Login + Registrierung ohne server! 12/06/2010 - Coding Tutorials - 17 Replies Hallo also hier zeige ich euch mal eine methode wie ihr eine Login box mit Registrierung braucht.
Was ist hier anders wie bei den anderen tuts?
Ganz einfach ihr braucht wirklich nur visual basic 2008 und müsst euch
auf keiner anderen seite anmelden!
Was brauche ich?
2formen
in die erste form kommt:
2x Label
[php]Registrierung Script 06/13/2009 - Web Development - 5 Replies €dit:
sorry mein Bruder hatte gedacht er muss mein Account verwenden -.-.
Könnt ihr closen