2017-12-29 1 views
-1

Ich bin neu in der Codierung der Serverseite mit PHP und habe eine einfache fest codierte Anmeldung vorgenommen. Ich möchte sicherstellen, dass der Benutzer von memberLogin.html angemeldet ist, bevor sie die Elemente in memberPage.html anzeigen können, so dass, wenn sie in den Browser die URL/memberPage.php eingeben, werden sie an memberLogin.html an erster Anmeldung weitergeleitet. Momentan funktioniert die Anmeldung von memberLogin.html korrekt, aber ich kann immer noch den Inhalt von memberPage.php anzeigen, ohne mich einzuloggen, indem Sie URL/memberPage.php in den Browser eingeben. HierÜberprüfen Sie, ob sich der Benutzer angemeldet hat, bevor der Inhalt angezeigt wird.

ist der Code, die ich verwendet habe:
memberLogin.html

<form name="memberLogin" class="form-horizontal" method="post" action="memberLoginSubmit.php"> 
    <div class="form-group"> 
    <label class="control-label col-sm-2" for="usr">Username:</label> 
    <div class="col-sm-10"> 
     <input type="username" class="form-control" name="username" placeholder="Enter Username"> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label class="control-label col-sm-2" for="pwd">Password:</label> 
    <div class="col-sm-10"> 
     <input type="password" class="form-control" name="password" placeholder="Enter Password"> 
    </div> 
    </div> 
    <div class="form-group"> 
    <div class="col-sm-offset-2 col-sm-10"> 
     <button type="submit" class="btn btn-default">Submit</button> 
    </div> 
    </div> 
</form> 

memberLoginSubmit.php

$username = ""; 
    $password = ""; 
    if(!empty($_POST['username']) && !empty($_POST['password'])){ 
     $username = $_POST['username']; 
     $password = $_POST['password']; 
    } 

    $usr = "123"; 
    $pwd = "123"; 
    $invalidLogin = 'Incorrect Username and/or Password. Please try again.'; 

    if ($password == $pwd && $username == $usr){ 
     session_start(); 
     $_SESSION['loggedin'] = true; 
     header('Location: memberPage.php'); 
    }else{ 
     echo '<script type="text/javascript">'; 
     echo 'alert("Incorrect Username and/or Password. Please try again.");'; 
     echo 'window.location.href = "memberLogin.html";'; 
     echo '</script>'; 
    } 

memberPage.php

<?php 
    session_start(); 
    if ($_SESSION['loggedin'] != true){ 
     header('memberLogin.html'); 
    } 
?> 

<!DOCTYPE html> 
<!--Rest of the HTML code--!> 

Vielen Dank für Ihre Hilfe im Voraus!

+0

@ memberPage.php - Entfernen Sie einfach die Anforderung 'memberLoginSubmit.php' und ändern Sie dann Ihre Bedingung in nur: if (! $ _ SESSION ['angemeldet]] {header (' memberLogin.html '); } –

Antwort

0

Sie müssen überprüfen, ob $_POST['username'] und $_POST['password'] vorhanden sein, bevor mit isset() mit ihnen

memberLoginSubmit.php

$username = ""; 
$password = ""; 
if(!empty($_POST['username']) && !empty($_POST['password'])){ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
} 

// ... 

Sie es tun können, zu

+0

Ich habe dies hinzugefügt und entfernt 'require 'memberLoginSubmit.php';' in ** memberPage.php ** und jetzt einloggen von ** memberLogin.html ** funktioniert, aber ich kann immer noch die 'URL/memberPage.php eingeben 'und es zeigt den Inhalt dieser Seite an, ohne sich einzuloggen. –

+0

@AnhadJangra hast du sicherlich einen Fehler bei der Verwendung von '$ _SESSION ['logged']' gemacht, vielleicht lässt du es als 'true' oder die Bedingung ist nicht gut, in ** memberPage.php ** versuche die umzuleiten Benutzer auf der Anmeldeseite, wenn die Sitzung falsch ist – pirs

-1

Sie brauchen nicht neu zu schreiben require 'memberLoginSubmit.php'; in memberPage.php zur Überprüfung der Benutzeranmeldung. Sie müssen nur die SITZUNG

session_start(); 
if ($_SESSION['loggedin'] != true){ 
    header('memberLogin.html'); 
} 
0

Ich denke, Ihr Code braucht nur ein wenig Verbesserung. Versuchen Sie, diese Dinge hinzufügen: Versuchen Sie, eine neue Variable Hinzufügen genannt passwordEntered, ein anderes namens memberPassword, dann gehen Sie folgendermaßen vor:

  1. Fügen Sie einige Code, so dass Sie das Passwort der Benutzer eingegeben bekommen kann, dann setzen Sie passwordEntered darauf.
  2. Vergleichen passwordEntered mit memberPassword.
  3. Wenn gleich passwordEntered ist, ist der Benutzer angemeldet. Andernfalls wird der Zugriff verweigert.

Versuchen Sie und sehen Sie, ob es funktioniert. Wenn nicht, antworte einfach auf diesen Kommentar und dann werde ich dir helfen, eine andere Lösung zu finden. Viel Glück!

Verwandte Themen