3Danke
ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
640
640
EMPFEHLEN
-
Guten Abend,
Ich hab versucht ein kleines Login Script mit MYSQL anbindung zu basteln.
+++ HTML FORMULAR MIT SUBMIT (login.php)
HTML-Code:<form action="login_check.php" method="POST"> Deine Kundennummer:<br> <input type="text" size="24" maxlength="50" name="id"><br /> Dein Passwort:<br> <input type="password" size="24" maxlength="50" name="passwort"><br /> <br /> <input type="submit" value="Login"> </form>
+++ DATEN WERDEN ÜBERPRÜFT (login_check.php)
+++ GESCHÜTZTER BEREICH (member.php)PHP-Code:
<?php
session_start();
?>
<?php
include "mysql_connection.php";
$kundennummer = $_POST["id"];
$passwort = $_POST["passwort"];
$abfrage = "SELECT ID, passwort FROM kunden WHERE ID LIKE '$kundennummer' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->passwort == $passwort)
{
$_SESSION["kundennummer"] = $kundennummer;
echo "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
}
?>
So wie mein Script momentan aufgebaut ist kann man sich immer einloggen. Er zeigt nur ne FehlermeldungPHP-Code:
<?php
session_start();
if(!isset($_SESSION["kundennummer"]))
{
echo "Bitte erst <a href=\"login.php\">einloggen</a>";
exit;
}
?>
wenn man die falschen Daten eingibt. Drückt man aber auf Submit ohne etwas einzugeben dann loggt man sich ein.
Auf die member.php kann man auch extern zugreifen. Ich weis nicht was ich falsch mache -.-
Ich habe schon einmal ein Loginscript gebastelt allerdings war das mit einer MD5 verschlüsselung was aber
jetzt keine rolle spielt. Auf jedenfall bekomm ichs nicht mehr hin. Irgendwo ist der Wurm drinnen.
Könnte mir da jemand evtl. Hilfestellung anbieten.
Wäre sehr dankbar
mit freundlichen Grüßen,
*ZentiGeändert von Zenti (18.05.10 um 22:13 Uhr) Grund: code geändert
-
Grüße,
ich hatte mal das gleiche Problem - auf deinen Code angewendet hab ichs dann so gelöst:
hoffe es funktioniert, ansonsten müssen mer da mal schauenPHP-Code:if($row->passwort == "$passwort")
{
...
}
Mfg, Alex
“The function of good software is to make the complex appear to be simple.” (Grady Booch)
“First, solve the problem. Then, write the code.” (John Johnson)
-
Hi
ändere mal die SQL Abfrage wie folgt ab. Außerdem würde ich die Passwörter deiner Kunden verschlüsselt (z.B. mit md5() ) abspeichern.
PHP-Code:
<?php
session_start();
include "mysql_connection.php";
$kundennummer = mysql_real_escape_string($_POST["id"]);
$passwort = md5($_POST["passwort"]);
$abfrage = "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->passwort == $passwort && mysql_num_rows($ergebnis) == 1)
{
$_SESSION["kundennummer"] = $kundennummer;
echo "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
}
?>Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
"Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
RegEx Tutorial
PHP Funktionsreferenz
-
Wenn du die Variable Passwort jedoch vor der Abfrage mit md5 verschlüsselst, dann müssen die Passwörter in der Datenbank entweder ebenfalls schon md5 verschlüsselt sein oder du änderst den Code
ein wenig ab, da sich sonst keine Übereinstimmung findet:
oderPHP-Code:<?php
session_start();
include "mysql_connection.php";
$kundennummer = mysql_real_escape_string($_POST["id"]);
$passwort = md5($_POST["passwort"]);
$abfrage = "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$PVerschl = md5($row->passwort);
if($PVerschl == $passwort && mysql_num_rows($ergebnis) == 1)
{
$_SESSION["kundennummer"] = $kundennummer;
echo "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
}
?>
... keine Ahnung, ob das 2. Beispiel seinen Dienst verrichtet - bin ein bisschen aus dem Stoff draußenPHP-Code:<?php
session_start();
include "mysql_connection.php";
$kundennummer = mysql_real_escape_string($_POST["id"]);
$passwort = md5($_POST["passwort"]);
$abfrage = "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if(md5($row->passwort) == $passwort && mysql_num_rows($ergebnis) == 1)
{
$_SESSION["kundennummer"] = $kundennummer;
echo "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
}
?>
Mfg, Alex
“The function of good software is to make the complex appear to be simple.” (Grady Booch)
“First, solve the problem. Then, write the code.” (John Johnson)
-
@ Alex_T:
Hat leider nicht funktioniert,..
Danke trozdem
@ timestamp:
Jetzt wird zwar ein Fehlermeldung ausgegeben wenn ich auf den Sumit Button drücke. Auf die member.php
kann ich jedoch extern zugreifen. Dort wirkt die Session nicht.
bin leider ratlos..
Hat jemand noch eine Idee ?
Danke,..
mit freundlichen Grüßen,
*Zenti
ps.: Möchte das ganze ohne MD5 machen.
Dieses Script wird so auch nicht zum einsatz kommen.
Ich bastel einfach nur so rum
Geändert von Zenti (18.05.10 um 23:20 Uhr) Grund: [b] code
-
Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
"Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
RegEx Tutorial
PHP Funktionsreferenz
-
Ja habe ich alles gemacht.
Ich bin auch der Meinug das es funktionieren müsste..
Keine Ahnung
So sieht mein momentaner Code aus,..
PHP-Code:
<?php
session_start();
include "mysql_connection.php";
$kundennummer = mysql_real_escape_string($_POST["id"]);
$passwort = $_POST["passwort"];
$abfrage = "SELECT ID, passwort FROM kunden WHERE ID = '".$kundennummer."' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->passwort == $passwort && mysql_num_rows($ergebnis) == 1)
{
$_SESSION["kundennummer"] = $kundennummer;
echo "Login erfolgreich. <br> <a href=\"member.php\">Geschützer Bereich</a>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>";
}
?>
+++GESCHÜTZTER BEREICH
PHP-Code:
<?php
session_start();
if(!isset($_SESSION["kundennummer"]))
{
echo "Bitte erst <a href=\"login.php\">einloggen</a>";
exit;
}
?>
-
Füg in der geschützen Bereich Datei einfach mal ein
ein. Und geh mal auf Nummer sicher und teste das Script in einem anderen Browser (also geh auf die member.php ohne dich vorher einzuloggen).PHP-Code:var_dump($_SESSION);
Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
"Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
RegEx Tutorial
PHP Funktionsreferenz
-
So habe das ganze jetzt mal getestet.
Wenn ich "var_dump($_SESSION); " einfüge und die member.php öffne dann kommt folgender Code im Browser. Ô.o
array(5) { ["ID"]=> &string(3) "fgh" ["id"]=> &string(5) "10000" ["kundenlogin"]=> &string(0) "" ["kdnr"]=> &string(0) "" ["kundennummer"]=> &string(5) "10114" }
und die Member.php lässt sich auch ohne login öffnen.
hm.. -.-
mit freundlichen Grüßen,
*Zenti
ps.: Hat noch jemand ne Idee ?Geändert von Zenti (19.05.10 um 11:01 Uhr) Grund: login
-
Mahlzeit,
ich hab mir jetzt mal die Zeit genommen und das ganze Ding mal auseinander genommen....
Ich hab mir selber eine Datenbank folgendermaßen angelegt:
Datenbankname = test
Datenbanktabelle = kunden
Struktur der Datenbanktabelle: id(=Primary Key)INT(11) NOT NULL AUTO_INCREMENT, passwort VARCHAR(30) NOT NULL, kunde INT(20) NOT NULL
Dabei ist kunde der Part, in dem die kundennummer gespeichert wird.
Hier also nun mein Code der login.php:
zugegeben - es hat sich nicht viel geändertPHP-Code:<html>
<head>
<title>Test - Login</title>
</head>
<body>
<form action="login_check.php" method="POST">
Deine Kundennummer:<br>
<input type="text" size="24" maxlength="50"
name="nummer"><br />
Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="passwort"><br />
<br />
<input type="submit" value="Login">
</form>
</body>
</html>
(außer das name-Attribut beim Kundennummer-Textfeld)
Code der login_check.php
und der Code der member.php:PHP-Code:<?php
session_start();
/*******************
relevante Daten
in Variablen
speichern
*******************/
$kundennummer = $_POST["nummer"];
$passwort_eingabe = $_POST["passwort"];
/*******************
Abfrage mit
entsprechendem
Ergebnis
*******************/
//Hier sollten die Daten zur Herstellung einer Datenbankverbindung stehen
//Abfrage
$abfrage = mysqli_query($db,"SELECT * FROM kunden WHERE kunde = $kundennummer");
while(@$datensatz = mysqli_fetch_array($abfrage)) {
extract($datensatz);
if($passwort == $passwort_eingabe) {
$_SESSION["kundennummer"] = $kundennummer;
echo"Login erfolgreich. <br><a href='member.php'>Geschützter Bereich</a>";
} else {
echo"Benutzername und/oder Passwort waren falsch. <br><a href='login.php'>Login</a>";
}
}
?>
Das ganze hat bei mir wunderbar funktioniert - hoffe das tut es auch bei dir....PHP-Code:<?php
session_start();
if(!isset($_SESSION["kundennummer"])) {
echo"Bitte erst <a href='login.php'>einloggen</a>";
} else {
echo"Sie sind eingeloggt";
}
?>
Mfg, Alex
“The function of good software is to make the complex appear to be simple.” (Grady Booch)
“First, solve the problem. Then, write the code.” (John Johnson)
-
Hi
ansonten könntest du noch eine Zusatzbedingung einbauen
PHP-Code:if( !isset($_SESSION["kundennummer"]) || empty($_SESSION["kundennummer"]) ){
echo "Bitte einloggen";
}
Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
"Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
RegEx Tutorial
PHP Funktionsreferenz
-
So,.. vielen lieben Dank an euch alle

Nach langem rumbasteln hat sich das ganze doch gelohnt, denn jetzt funktioniert es. xD
Es hätte warscheinlich letztens schon funktioniert aber da war die Session aktiv. Ich dachte das
ich diese lösche in dem ich meine Cookis kill und meinen PC neustarte.
Keine Ahnung was mein Rechner da für ein Problem hatte. Auf jeden fall habe ich das ganze so aufgebaut wie Alex_T
und siehe da.. vor wenigen minuten habe ich einfach die member.php aufgerufen (ohne vorher einzuloggen) und sie blieb mir verwehrt
Nach dem einloggen wurde ich dann Ohne Fehlermeldung mit zugriff auf die member.php weitergeleitet.
Wie bereits erwähnt. Es ist wirklisch schön das sich hier einige Leute die Zeit genommen haben und mir bei meinem Problem geholfen haben xD
Danke nochmal
mit freundlichen Grüßen,
*Zenti
Ähnliche Themen
-
Login script! mysql
Von fla5hi im Forum PHPAntworten: 3Letzter Beitrag: 16.10.07, 09:58 -
Login-Script mit MySQL
Von Migelinho im Forum PHPAntworten: 8Letzter Beitrag: 13.10.05, 03:41 -
Login Script mit Mysql
Von ulf123 im Forum PHPAntworten: 6Letzter Beitrag: 26.10.04, 12:48 -
[PHP/MySQL] Login-Script
Von vipey im Forum PHPAntworten: 14Letzter Beitrag: 15.01.03, 14:51 -
Login Script mit PHP und mySQL
Von Wilhelm im Forum PHPAntworten: 7Letzter Beitrag: 03.05.02, 17:54





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren