Ich wusste nicht, wo ich es posten soll, hab aber gedacht, hier passt es besser:
Ich will ein sicheres Login-Formular mit den FORM-Tags von HTML erstellen, das ganze mit JavaScript auswerten (z.B. auf leere Felder), die Inhalte dann irgendwie an PHP schicken, und von da aus dann die weitere Bearbeitung machen.
[html]
A Secret Homepage
Username:
Password:
[/html]Irgendwie so
PS: Warum macht der eigentlich so eine komische Code-Ansicht?
Das meinte ich eigentlich nicht, sondern dass der fast alles in eine Zeile schreibt. Ich hab eigentlich für jeden Abschnitt eine neue Zeile eingegeben.
Bsp:
Something
some text
Aber darum geht es mir eigentlich nicht. Fands nur komisch.
Wieso mit JS?
Das ist nur umständlich. Mach es mit PHP und MySQL. Speicherst Namen in die Datenbank und das Passwort verschlüsselst du mit einer Checksumme (MD5).
Dann fragst du ab, und dann, wenns stimmt, startest du ne Session.
<?php
session_start();
$password = 'password'; //Das Passwort das eingegeben werden soll
if(isset($_POST['pass']) && $_POST['pass'] == $password)
$_SESSION['login'] = true;
if(!isset($_SESSION['login']) || $_SESSION['login'] != true)
{
?>
Passwort benötigt!
Passwort:
<?php
}
?>
[/PHP]
Bei diesem Beispiel definierst du einmal das Passwort das angegeben werden muss in der Variable $password. Hat ein Benutzer das Formular für das Passwort abgesendet und das Passwort stimmt, so wird die $_SESSION['login'] auf true gesetzt. Nun kannst du überall mittels[PHP]if($_SESSION['login'] == true)[/PHP]prüfen, ob der Benutzer eingeloggt ist.
Sollte er nicht eingeloggt sein spricht das Script die 2. if-schleife an und gibt das Formular zum eintragen des Passwortes aus.
Man erstellt ein Formular mit dem Passwortfeld und dem Login-Feld:
[html]
Passwort:
[/html]Lass dich bei action= nicht durch den PHP Code irritieren. Es wird einfach nochmals an dieselbe Datei geschickt, wenn man auf Login geklickt hat.
Nun muss man prüfen, ob der Benutzer schon angemeldet ist. Wenn nein, dann erscheint der obige Code. Wenn doch, erscheint der Inhalt, der geschützt ist, und man erstellt eine Session.
Also so:
[php]
<?php
session_start(); // Die Session muss immer in der 1. Zeile stehen
#####################
$passwort = "deinpasswort"; // Hier dein Loginpasswort
#####################
if(!isset($_REQUEST['login'])) // Wenn nichts abgeschickt wurde, bzw. wenn er nicht angemeldet ist,
{
// Formular ausgeben
echo'
Passwort:
';
}
// Wenn doch, dann prüfen ob das Passwort stimmt.
elseif($_REQUEST['passwort'] == $passwort)
{
$_SESSION['login'] == true; // Session setzen.
?>
<?php
}
// Wenn das Passwort nicht stimmt,
elseif($_REQUEST['passwort'] !== $passwort)
{
echo'Das Passwort ist falsch!'; // Meldung herausgeben
}
?>
[/php]Ich hoffe, jetzt ist es dir klar.
MfG, matibaski
edit:
Habe dentext nicht ganz gelesen von Frank. Also die Session wie oben Abfragen
@Frank:
Es gibt keine if-Schleife! Das nennt man eine if-Abfrage
[php]
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output startet at C:\Programme\xampp\htdocs\Login.php:8) in C:\Programme\xampp\Login.php on line 9
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output startet at C:\Programme\xampp\htdocs\Login.php:8) in C:\Programme\xampp\htdocs\Login.php on line 9
Informiere Dich mal über Operatoren und ihre Funktion.
[php]
= != == ;ugl
[/php]Kleiner Tipp:
[php]if( ($username=„name1“ AND $passwort=„passwort1“)[/php]in dieser Zeile tust Du nichts anderes als $username und $passwort einen wert zuzuweisen. Deine Bedingung ist also immer TRUE
Das sieht etwa so aus, wenn du checken willst, ob $user1 mit dem user1 übereinstimmt:
[php]
if($user1 == „user1“ AND $passwort1 == „passwort1“) {
// Dann hier was
}
[/php]
LG script-man
edit:
Ich rate es dir aber an, mit einer Datenbank zu arbeiten. Wer hat schon lust, immer alles einzeln einzutragen und den Code zu ergänzen?
Schlussendlich, wenn du 100 Mitglieder hast, dann hast du einen Bombencode, und musst für jedes Mitglied einen neuen Code schreiben.