• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] If-Abfrage endet immer in else!?!

Defc0n

Neues Mitglied
Guten Abend,

ich sitze grade an einem kleinen Projekt für meinen Info Kurs. Ich bin schon fast fertig doch jetzt habe ich noch ein kleines Problem und weiß nicht weiter.

Hiermit sende ich Benutzernamen und Passwort an die .php - Datei :

<form action="geheim.php" method="post">
<p>Benutzername:<br>
<input type="text" size="20" name="benutzer" value="">
</p>
<p>Passwort:<br>
<input type="password" size="20" name="pw" value="">
<br>
<br>
<input type="submit" value="Login">


Hiermit wertet die .php - Datei Benutzername und Passwort aus und leitet mich dementsprechend weiter:

<html>
<?php
$var1 = Nutzer;
$var2 = 1234567;
if($benutzer == $var1 and $pw == $var2)
{
include ('Alex.html');
}
else
{
include ('sorry.html');
} ?>
</html>

Letztendlich lande ich immer in der else-Schleife und somit auf der sorry.html. Egal ob Benutzername und Passwort richtig oder falsch sind.
Hat irgendjemand eine Idee, wie ich bei der korrekten Eingabe der Daten auf der Alex.html landen kann?

Ich würde mich sehr über Antworten freuen da ich bis morgen fertig sein muss und dies das letzte klein Problem in meinem Projekt ist.

MFG Defc0n
 
1. was sind das denn für Variablen, wenn das strings sein sollen, musst du sie in Anführungszeichen setzen 2. um ein 'und' in einer if-abfrage zu benutzen, nimmt man '&&' und für oder '||'
 
in den Variablen hab ich Benutzername und Passwort gespeichert um sie dann in der if-Abfrage abzugleichen.
Danke, und habe ich gleich in && geändert. Leider läuft es immer noch nicht :/
 
Hallo,

Ich glaube nicht dass das das letzte kleine Problem in dem Projekt ist.

Aber um die Frage zu beantworten:
  1. Wo werden $benutzer und $pw gefüllt? Die musst Du doch erst aus dem POST-Array ziehen ( Vorsicht: Bitte nicht ungefiltert User-Eingaben übernehmen!!! )
  2. Nutze Hashes für die Passwörter
Ungetestet, aber in etwa so sollte Dein PHP passend zur Form aussehen:
PHP:
$sUserName = htmlspecialchars( $_POST['benutzer'], ENT_SUBSTITUTE|ENT_HTML5, 'UTF-8' );
$bPassValid = password_verify( $_POST['pw'], $ownerPass );

$sTargetDocument =
    ( $bPassValid && $sUserName == $ownerName )
    ? 'Alex.html'
    : 'sorry.html';

include_once $sTargetDocument;
in $ownerName befindet sich natürlich der Benutzername, gegen den Du prüfen willst und äquivalent dazu in $ownerPass das bereits gehashte Passwort dessen Benutzers.

Gruß Arne

EDIT: Code leicht angepasst...
 
Zuletzt bearbeitet von einem Moderator:
Wenn du dir vorher deine posts in Variablen speicherst, sollte es fürs erste klappen. Zb sofort den Benutzer: $benutzer = filter_input(INPUT_POST, 'benutzer', FILTER_SANITIZE_STRING);

Gesendet von meinem SM-N910F mit Tapatalk
 
Zurück
Oben