PHP Passwortschutz
Manfred
- php
Hallo zusammen,
ich habe ein kleines Problem und zwar habe ich einen Passwortschutz mit Php in meine Homepage eingebaut, folgende dateien verwende ich:
login.php fürs login Fenster
inhalt.php :
<html>
<head>
<title>Bot</title>
</head>
<body>
<?php
include("pwd.php");
if (($benutzer == $_GET['user']) and ($passwort == $_GET['pass']))
{
echo '
.... Inhalt ....
}
else
{
echo "Falsche Zugangsdaten.";
}
?>
</body>
</html>
pwd.php :
<?php
$benutzer = "Test"
$passwort = "abc";
?>
das funktioniert auch alles soweit, doch jetzt möchte ich mehrere Benutzer mit verschiedenen Passwörtern, was muss ich dafür verändern?
Und dann hätte ich noch ein frage wenn beim loginfenster das passwort eingegeben wird, sieht man die Eingabe, kann ich des ändern dass mann dafür Sternchen sieht?
Wär voll super wenn mir jemand helfen könnte, vielen dank im voraus!
Manfred
Hallo Manfred
das funktioniert auch alles soweit, doch jetzt möchte ich mehrere Benutzer mit verschiedenen Passwörtern, was muss ich dafür verändern?
Und dann hätte ich noch ein frage wenn beim loginfenster das passwort eingegeben wird, sieht man die Eingabe, kann ich des ändern dass mann dafür Sternchen sieht?
Wär voll super wenn mir jemand helfen könnte, vielen dank im voraus!
Ich denke nicht, dass du eine MySQL Datenbank benutzen willst oder? Damit wäre es natürlich am einfachsten zu realisieren. Ansonsten könntest du natürlich abfragen:
if((($benutzer == $_GET['user']) and ($passwort == $_GET['pass'])) OR (($benutzer1 == $_GET['user']) and ($passwort1 == $_GET['pass'])))
{
...
}
Ist aber relativ umständlich bei vielen Benutzern. Ich würde dir also zu einer Datenbank raten.
Was die Passworteingabe mit den Sternchen angeht:
<INPUT TYPE="password" NAME="pwd">
So in etwa könnte dein Eingabefeld aussehen.
Hallo,
also die Sternchen funktionieren, danke.
Ich denke nicht, dass du eine MySQL Datenbank benutzen willst oder? Damit wäre es natürlich am einfachsten zu realisieren. Ansonsten könntest du natürlich abfragen:
if((($benutzer == $_GET['user']) and ($passwort == $_GET['pass'])) OR (($benutzer1 == $_GET['user']) and ($passwort1 == $_GET['pass'])))
{
...
}
Wie soll dann meine pwd.php datei aussehen?
so funktionierst nicht:
<?php
$benutzer = "Test" or "Testen";
$passwort = "abc" or "def";
?>
Hmm, also ich hab noch nie mit MySQL gearbeitet, von demher weis ich nicht wie schwer so etwas wäre.
Vielen dank, manfred
Wie soll dann meine pwd.php datei aussehen?
so funktionierst nicht:<?php
$benutzer = "Test" or "Testen";
$passwort = "abc" or "def";?>
<?php
$benutzer = "Test";
$passwort = "abc";
$benutzer1 = "Testen";
$passwort1 = "def";
?>
Hmm, also ich hab noch nie mit MySQL gearbeitet, von demher weis ich nicht wie schwer so etwas wäre.
Für sowas brauchst du eigentlich nicht viel mehr als die Grundkenntnisse und die sind relativ leicht zu erlernen. MySQL ist im allgemeinen relativ leicht zu erlenen wie ich finde.
Moin!
<?php
$benutzer = "Test";
$passwort = "abc";
$benutzer1 = "Testen";
$passwort1 = "def";?>
Was'n das für ein Müll? Wann immer man gleichartige Daten in unterschiedlichen Variablen speichern würde, empfiehlt sich dringend die Nutzung eines Arrays!
$user['Test'] = "abc";
$user['Testen'] = "def";
Dann kann man prüfen, ob es einen User gibt (if (isset($user['Test'])
), man kann dessen Passwort ermitteln, man kann alle User durchgehen (foreach) - insgesamt viel leichterer Umgang mit den Benutzerdaten.
- Sven Rautenberg
Lieber Sven,
Wann immer man gleichartige Daten in unterschiedlichen Variablen speichern würde, empfiehlt sich dringend die Nutzung eines Arrays!
$user['Test'] = "abc";
$user['Testen'] = "def";
prinzipiell stimme ich Dir zu. Deine Array-Struktur ist für eine reine Login/Passwort-Prüfung ideal. Wenn aber weitere Daten abgelegt werden sollen (z.B. Zusatzinfos, erweiterte Rechte etc.), dann möchte ich zu folgender Struktur raten:
~~~php
$alle_user = array(
'Test' => array(
'pwd' => 'abc',
'anrede' => 'Herr',
'name' => 'Fritz Müller',
'admin' => false
),
'Testen' => array(
'pwd' => 'def',
'anrede' => 'Frau',
'name' => 'Gloria von Testenfelde',
'admin' => true
)
);
Man kann das Array auch numerisch aufbauen, sodass der Loginname nicht als Index in $alle_user, sondern im jeweiligen Unterarray als Wert zu einem neuen Index ('login') liegt...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Was'n das für ein Müll? Wann immer man gleichartige Daten in unterschiedlichen Variablen speichern würde, empfiehlt sich dringend die Nutzung eines Arrays!
Bevor du deinen Kommentar dazu abgibst, solltest du lieber erstmal überlegen, ob ein Anfänger besser mit 2 verschiedenen Variablen klarkommt oder mit einem Array und einer foreach-Schleife. Ebensogut könnte man sich hier erstmal lang und breit über Passwortverschlüsselung etc. auslassen, was hier allerdings wohl kaum jemanden eine Hilfe sein wird.
Moin!
Was'n das für ein Müll? Wann immer man gleichartige Daten in unterschiedlichen Variablen speichern würde, empfiehlt sich dringend die Nutzung eines Arrays!
Bevor du deinen Kommentar dazu abgibst, solltest du lieber erstmal überlegen, ob ein Anfänger besser mit 2 verschiedenen Variablen klarkommt oder mit einem Array und einer foreach-Schleife.
Und bevor du meinst, einen Anfänger vor Wissenszuwachs schützen zu müssen, solltest du lieber überlegen, was denn passiert, wenn nicht zwei, sondern zwanzig User Zugriff kriegen sollen, und ob der dabei entstehende Code dem Anfänger vielleicht über den Kopf wächst.
Wenn ich eine Antwort gebe, dann die bestmögliche entsprechend _meines_ Wissens. Nur damit erreiche ich, dass andere dieses Wissen auch erreichen können. Würde ich eine Antwort ausgerichtet auf das Wissen des Anfängers geben wollen, müßte ich ja wissen, was der schon kann, und was nicht.
Wenn er was nicht versteht, wird er schon nachfragen, da bin ich sicher.
Ebensogut könnte man sich hier erstmal lang und breit über Passwortverschlüsselung etc. auslassen, was hier allerdings wohl kaum jemanden eine Hilfe sein wird.
Kann man, hast du aber nicht gemacht. Und ich auch nicht. Weil es vielleicht ja auch gar nicht um Fort Knox geht.
- Sven Rautenberg
Ebensogut könnte man sich hier erstmal lang und breit über Passwortverschlüsselung etc. auslassen, was hier allerdings wohl kaum jemanden eine Hilfe sein wird.
Kann man, hast du aber nicht gemacht. Und ich auch nicht. Weil es vielleicht ja auch gar nicht um Fort Knox geht.
Mit Fort Knox haben meine Projekte auch nicht viel zu tun. Trotzdem legen ich und meine Auftraggeber sehr viel Wert auf Sicherheit. Deswegen würde ich _niemals_ Benutzername und Passwort per GET übergeben und auf eine angemessene Verschlüsselung verzichten. Da du ja aber geschrieben hast, dass du das "bestmögliche entsprechend _deines_ Wissens" weitergibst, gehe ich mal davon aus, dass du in dieser Richtung wenig bis garkein Wissen besitzt :)
Moin!
Mit Fort Knox haben meine Projekte auch nicht viel zu tun. Trotzdem legen ich und meine Auftraggeber sehr viel Wert auf Sicherheit. Deswegen würde ich _niemals_ Benutzername und Passwort per GET übergeben und auf eine angemessene Verschlüsselung verzichten. Da du ja aber geschrieben hast, dass du das "bestmögliche entsprechend _deines_ Wissens" weitergibst, gehe ich mal davon aus, dass du in dieser Richtung wenig bis garkein Wissen besitzt :)
Fakt ist: Der Fragesteller hat SSL nicht erwähnt, wird es vermutlich auch nicht einsetzen. Also ist jegliche Sicherheit sowieso nur pseudomäßig.
Aber von dir kam bislang zu dem Thema ja auch nichts. Wissensbasiert, oder weglassend?
- Sven Rautenberg
Aber von dir kam bislang zu dem Thema ja auch nichts. Wissensbasiert, oder weglassend?
Weil ich die Variante "weglassend" in diesem Fall bevorzuge :)
Hi Mr. Spock,
[...] gehe ich mal davon aus, dass du in dieser Richtung wenig bis garkein Wissen besitzt :)
Pssst! ;-)
Viele Grüße aus Kanada,
~ Dennis.
Super es funktioniert, danke!