Antworten auf deine Fragen:
Neues Thema erstellen

Login

ckaiser

Nicht mehr ganz neu hier

Puuh....PHP ist für eine Themenstarterin wie mich nicht so einfach.

Ich will ein Login-Formular mit 2 Usern ohne Datenbank erstellen und habe mir folgendes zusammengesucht.

Formulardatei

html>
<body>
<form action = "sc_schutz_b.php" method = "post">
<p><input name="vn" />Vorname</p>
<p><input type="password" name = "pw" />Passwort</p>
<p><input type = "submit" /><input type = "reset" /></p>
</form>
</body>
</html>


Datei mit Usern und Passwörtern

<?php
session_start();
if(isset($_POST["vn"]))
if($_POST["vn"] == "Rolf" && $_POST["pw"] == "Rom")
if($_POST["vn"] == "Lisa" && $_POST["pw"] == "London")

$_SESSION["vn"] = $_POST["vn"];
if(!isset($_SESSION["vn"]))
exit("Kein Zugang<br /><a href='sc_schutz_a.php'>Zum Login</a>");
?>
<html>
<body>
<h3>Start-Seite</h3>
<?php
echo "<p>Hallo " . $_SESSION["vn"] . "</p>";
?>
<p><a href="sc_schutz_c.php">Zur beliebigen Seite</a></p>
<p><a href="sc_schutz_a.php">Logoff</a></p>
</body>
</html>

Ich bin in PHP erst am Anfang. Deswegen habe ich 2 Fragen

1. Die Anmeldung klappt nur mit dem User Rolf. Was muss ich verändern, damit auch Lisa sich anmelden kann und mit Lisa angesprochen wird?

2. Haben Rolf und Lisa sich erfolgreich angemeldet, soll jeder User eine andere Website angezeigt bekommen. Beispiel: Rolf-> tiber.html und Lisa -> bigben.html. Wie kann ich den Code ergänzen?

Gibt es dazu ein Tutorial oder kann mir hier ein netter Mensch weiterhelfen?

Danke im Voraus!!!
 

Duddle

Posting-Frequenz: 14µHz

AW: Login

Deinem Code fehlt etwas Struktur, um die Logik korrekt erfassen zu können. Gewöhn dir an, if-Blöcke immer mit geschweiften Klammern einzugrenzen, auch wenn es nur eine Anweisung ist. Wenn ich deinen Code so wie er jetzt ist strukturiere und einrücke, sieht er so aus:

PHP:
<?php
session_start();
if(isset($_POST["vn"]))
    if($_POST["vn"] == "Rolf" && $_POST["pw"] == "Rom")
	  if($_POST["vn"] == "Lisa" && $_POST["pw"] == "London")
	      $_SESSION["vn"] = $_POST["vn"];

if(!isset($_SESSION["vn"]))
    exit("Kein Zugang<br /><a href='sc_schutz_a.php'>Zum Login</a>");
?>
Die if-Blöcke sind so verschachtelt, dass die $_SESSION-Zeile nur erreicht wird wenn vn sowohl Rolf als auch Lisa ist (gleiches für pw). Offensichtlich ist das so nicht möglich. Wenn ich den gleichen Code leicht anpasse und in Blöcke packe, wird schon mal ein Schuh draus:
PHP:
<?php
session_start();
if(isset($_POST["vn"])) {
    if($_POST["vn"] == "Rolf" && $_POST["pw"] == "Rom") {
	  $_SESSION["vn"] = $_POST["vn"];
    }
    if($_POST["vn"] == "Lisa" && $_POST["pw"] == "London") {
	  $_SESSION["vn"] = $_POST["vn"];
    }
}
if(!isset($_SESSION["vn"]))
    exit("Kein Zugang<br /><a href='sc_schutz_a.php'>Zum Login</a>");
?>
Aber dort wiederholt sich die $_SESSION-Zeile. Also könnten wir ein logisches Oder einsetzen:
PHP:
    if(($_POST["vn"] == "Rolf" && $_POST["pw"] == "Rom") || ($_POST["vn"] == "Lisa" && $_POST["pw"] == "London")) {
	  $_SESSION["vn"] = $_POST["vn"];
    }
Das ist schon besser, aber für mich recht unübersichtlich. Und nicht besonders erweiterbar. Falls du schon ein wenig mit Arrays gearbeitet hast, solltest du folgenden Ansatz verstehen:
PHP:
<?php
session_start();
$nutzer = array("Rolf" => "Rom", "Lisa" => "London");
if(isset($_POST["vn"])) {
    $vn = $_POST["vn"];
    $pw = $_POST["pw"];

    if($nutzer[$vn] == $pw) {
	  $_SESSION["vn"] = $vn;
    }
}
if(!isset($_SESSION["vn"]))
    exit("Kein Zugang<br /><a href='sc_schutz_a.php'>Zum Login</a>");
?>

Für deine zweite Frage könntest du entweder die gewünschten Inhalte per include() einbinden oder auf die Seite per header() umleiten. Für letzteres musst du beachten, dass vor der header()-Zeile keine Ausgaben (echo o.ä.) gemacht werden.


Duddle
 

piepel

LocalDurst

AW: Login

Falls dir noch der Schnipsel für den Weiterleitungslink fehlt, füge nach
PHP:
<?php
echo "<p>Hallo " . $_SESSION["vn"] . "</p>";
folgende Zeilen ein
PHP:
<?php
$weiter = array("Rolf" => "tiber", "Lisa" => "bigben");
$weiterleitung = $weiter[$vn].".html";
?>
<p><a href="<?php echo $weiterleitung; ?>">Zur beliebigen Seite</a></p>
 

ckaiser

Nicht mehr ganz neu hier

AW: Login

Großes Dankeschön an Euch!

@ duddle
Deine Nachricht war top informativ und sehr gut verständlich.

@ piepel
Du hast das richtig gesehen. Die Weiterleitung fehlte noch.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben