2016-04-27 7 views
2

Ich bin neu in PHP und ich versuche, ein Login-System zu machen, aber irgendwie funktioniert es nicht. Ich habe das Passwort in einer Variablen vordefiniert und eine Funktion erstellt, die überprüft, ob das eingegebene Passwort mit dem Passwort in der Variablen übereinstimmt.Login-System mit Passwort voreingestellt in Variable

Dies ist mein Code so weit:

<?php $validkey = "Test" ?> 
<script type="text/javascript"> 
    function check_value() 
    { 
     var password = document.getElementById("password").value; 
     if (password == '<?php echo $validkey; ?>') 
     { 
      location.href = "tafels.html"; 
     } 
    } 
</script> 
<input type ="text" name="password" id="password" /> 
<button onclick="check_value();">Login</button> 
+2

GERADE nICHT tUN eS IN javascript: o – Bobot

+0

haben Sie irgendwelche Ideen haben, dann für mich, wie es zu tun? –

+1

Bitte verwenden Sie AJAX oder normale Formularübergabe und validieren Sie die Daten auf dem Server –

Antwort

3

Dies ist nicht die Art und Weise ein Login-Prozess arbeiten. Zuerst sollte das Passwort gehashed und in der Datenbank gespeichert werden. NIE Passwörter als Klartext speichern. Zweitens sollte die Passwort-Validierung serverseitig, in einer PHP-Datei passieren.

Sie Um zu erklären, warum es gefährlich ist, ein Passwort im Frontend zu überprüfen, überprüfen Sie einfach diesen Teil des Codes:

if(password=='<?php echo $validkey; ?>') 
{ 

    location.href = "tafels.html"; 

} 

Während der Server PHP-Skript verarbeitet wird das gültige Passwort in den resultierenden Echo HTML. Dieser HTML-Code wird dann an den Browser gesendet. Lassen Sie uns sagen, dass das gültige Passwort „p @ $$ w0rd“ ist, wenn Sie die Seite Quellcode prüfen Sie gehen diese zu finden:

if(password=='[email protected]$$w0rd') 
{ 

    location.href = "tafels.html"; 

} 

Der Server diese ersetzt haben wird:

<?php echo $validkey; ?> 

mit dem Wert des Passworts. Und das wird für alle sichtbar sein. Überhaupt nicht sicher.

+0

Es muss nicht sicher sein. Es ist für eine Webapplikation für ein Restaurant, das von den Bediensteten auf dem kleinen Bestellgerät verwendet wird, das sie tragen. –

+0

Trotzdem ist es keine gute Übung. Es ist ein sehr ernsthafter Sicherheitsfehler, der jedoch leicht behoben werden kann, wenn die Validierung auf die Serverseite verschoben wird – dimlucas

1

Sie Um einen Anfang zu geben, hier ist ein Beispiel, aber achten Sie bitte auf diese Antwort https://stackoverflow.com/a/36883388/3799829

Eine sehr einfache und staatenlos (kein Speicher/keine Sitzung) Beispiel Login-System

Login. php

<?php 

$password = 'Test'; 
$url = 'tafels.html'; 

if(isset($_POST['password']) && $_POST['password'] === $password) 
{ 
    header('Location: ' . $url); 
    exit; 
} 

?> 
<html> 
    <head> 
     <title>You need a password to continue</title> 
    </head> 
    <body> 
     <form action="" method="POST"> 
      <input type="password" name="password" placeholder="Password"><button type="submit">Go on !</button> 
     </form> 
    </body> 
</html> 
Verwandte Themen