Login Auswertung

Warum geht das nicht?
[PHP]<?php
$fBenutzer = $_REQUEST[„fBenutzer“];
$fKennwort = $_REQUEST[„fKennwort“];

if ($fBenutzer = „“ and $fKennwort = „“)
{
echo „Bitte alle Felder ausfüllen!“;
}
else if ($fBenutzer = „Name“ AND $fKennwort = „wort“)
{
echo „Willkommen im Administratoren Bereich“;
}
else
{
echo „Bitte nochmal!“;
}
?>[/PHP]

aber das?
[PHP]<?php
$fBenutzer = $_REQUEST[„fBenutzer“];
$fKennwort = $_REQUEST[„fKennwort“];

if ($fBenutzer = „“ and $fKennwort = „“)
{
echo „Bitte alle Felder ausfüllen!“;
}
else if ($fBenutzer == „Name“ AND $fKennwort == „wort“)
{
echo „Willkommen im Administratoren Bereich“;
}
else
{
echo „Bitte nochmal!“;
}
?>[/PHP]

Der Unterschied liegt nur darin das in der else if nur 1 mal „=“ ist!

Weil du mit nur einem = eine Variablenzuweisung machst, auch in einem if! Zum vergleichen muss man immer == verwenden. (Wenn nicht sogar ===, mit === vergleicht man zudem auch den Variablentyp das heisst 3 === ‚3‘ ist nicht wahr)

Hallo,

nur ein Gleichheitszeichen ist ein Zuweisungsoperator.
Wohingegen zwei Gleichheitszeichen, Vergleichsoperatoren sind.

Schau mal hier

PHP: Operatoren - Manual

Da findest Du Informationen dazu !

Das Problem ist nu, das ich obwohl ich alles richtig eingebe (Nick und Passwort) trotzdem „Bitte nochmal“ da steht!

Das ist kein Wunder, denn beide von Dir geposteten Codeschnipsel sind fehlerhaft.

Du solltest zudem mal über „einrückungen“ nachdenken.

So müsste es eigentlich gehen.

[php]

<?php $fBenutzer = $_REQUEST["fBenutzer"]; $fKennwort = $_REQUEST["fKennwort"]; if ($fBenutzer == "" and $fKennwort == "") { echo "Bitte alle Felder ausfüllen!"; } else if ($fBenutzer == "Name" AND $fKennwort == "wort") { echo "Willkommen im Administratoren Bereich"; } else { echo "Bitte nochmal!"; } ?>

[/php]

1.) kann einrückungen so viel ausmachen?
2.) nein es geht immer nocht nicht!

Hallo,

Einrückungen machen gar nichts aus, allerdings erleichtern sie für Leute die Dir helfen sollen, die Übersichtlichkeit Deines Quelltextes.

Hast Du schon einmal geschaut was überhaupt Requested wird ?! Also einfach Testweise

[PHP]
echo $fBenutzer;
echo $fKennwort;
[/PHP]

Nach dem Request hinzugefügt.

Hatte es eben aus $_POST gemacht, geht trotzdem nicht :frowning:

Immer wenn ich was schreibe geht nie was, hatte letztens nen Quiz machen wollen, geht auch nciht!

Du sollst den Request net ändern sondern gucken ob überhaupt was übergeben wird. Wie sieht denn Dein Formular aus … Anbei mal mein Vorschlag …

[PHP]

<?php if(isset($_POST['sender'])) { $fBenutzer = trim($_POST["fBenutzer"]); $fKennwort = trim($_POST["fKennwort"]); if (empty($fBenutzer) || empty($fKennwort)) { echo "Bitte alle Felder ausfüllen"; } else { if(strcmp($fBenutzer, "Benutzername") == 0 && strcmp($kennwort, "Kennwort") == 0) { echo "Du bist drin"; } else { echo "Benutzerdaten fehlerhaft."; } } } ?> Very simple login

Benutzername:

Kennwort :

[/PHP]

Das sollte gehen - hab es nicht getestet !

Danke es geht, und wie geht das, wenn die Angaben richtig sind, das man dann umgeleitet wird auf eine andere Seite!

Es soll ein Login für den Admin-Bereich werden!
Aba da fällt mir gerade ein, das ich dann den Admin-Bereich auch gleichzeitig mit dem Login-Script machen muss.
mhhp

Du kannst doch auch mit Sessions arbeiten.

Weiterleitungen werden mit [PHP]header(„Location: seite.endung“);[/PHP] gemacht.

Schau mal in den Tutorialbereich - da gibt es einige PHP Login Tutorials die auf Sessions basieren !

Gruß Sven

Oky habe das so nach Tutorial gemacht, aber ein Fehler kommt!

Fehler:Parse error: syntax error, unexpected T_STRING, expecting ‚,‘ or ‚;‘ in C:\Programme\xampp\htdocs\Homepage\Admin2\login.php on line 18

[php]echo’Sie sind erfolgreich eingeloggt!‚; // Und hier wird ein text kurz erscheinen. Dann wird man weitergeleitet.
echo’Sie werden zur Administration weitergeleitet.‘;
// Imfalle, dass der Besucher JavaScript deaktiviert hat, wird noch ein Link zum Login angeboten[/php]

Line 18 ist die in der Mitte!

[php]echo’Sie werden zur Administration weitergeleitet.‚;
//musst du ändern in
echo’Sie werden zur Administration weitergeleitet.‘;[/php]

Okay Fehler weg, jetzt gebe ich das Passwort ein, sagt aber das die Session nciht gültig ist!

startetst du die sessions immer und überall am anfang des dokuments?

Nils aka XraYSoLo

Es geht jetzt, noch 3 Fragen.

1.) Kann man das irgendwie machen, wenn ich auf Zurück („Werkzeug“ im Brwoser) das man da auf die Login-seite kommt?
Also das die Session beendet wird?

2.)PHP: Habe versucht nen Frameset in PHP zu schreiben, geht nicht, kann mir mal jemand eine vorlage schreiben.
Kopf: 100%breit, 15%hoch
Rest: - 20%breit und 85% hoch
- 80% breit und 85% hoch

3.) für meine Adminnavigation will ich das so machen, das wenn ich auf zu´: Benutzer klicke (als Link), das sich ein weiteres unterverzeichniss öffnet z.B. neu anlegen, bearbeiten, ect. Gewusst wie ich es meine?

danke für Hilfe!

ja, du kannst in der logout.php die sessions zerstören und dann zum login weiterleiten.
eine garantierte methode, eine session zu schließen/zerstören gibt es nicht, da immernoch der befehl ausgeführt werden muss. automatisch wird sie i.d.r. nach einer halben stunde gelöscht.

Nils aka XraYSoLo

mhhp, des doof g
Also besteht nicht anders möglichkeit es so zu machen, also muss ich nur aus der logout.php die Session entfernen, also herauslöschen?

Und wie geht das, wenn ich zum. www.deinedomain.de/Admin/Admin.php eingebe, oder irgend eine Datei im Ordner Admin, das sich dann Automatisch www.deinedomain.de/Admin/Login.php öffnet, also, das man sich anmelden muss, bevor man es sieht.

du setzt an den anfang jeder datei einen include z.b. zur Datei test.php

test.php sieht dann so aus
[PHP]
session_start();
if(!isset($_SESSION[„login“]) || $_SESSION[„login“] !== true)
header(„Location: login.php“);
[/PHP]

in der login.php darf der include natürlich nicht sein, sonst entsteht eine Endlosschleife

Ansonsten könnte man das ganze noch über htaccess machen.