2016-09-19 3 views
-4

Also habe ich ein Anmeldesystem entwickelt. Wenn sich der Benutzer jedoch anmeldet, leite ich ihn auf eine neue Seite um, auf der sich ein Menü befindet. Aber wenn sich der Benutzer abmeldet und die Homepage-URL kopiert. Er kann wiederkommen. Wie verhindere ich das?Verhindern, dass Benutzer sich anmelden, sobald sie abgemeldet sind.

login.php

<html> 
 

 
<head> 
 
    <title>Log in</title> 
 
</head> 
 

 
<body> 
 
    <h1>Welcome please sign in!</h1> 
 

 
    <?php if (!isset($_POST[ 'submit'])){ ?> 
 
    <!-- The HTML login form --> 
 
    <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
 
    Username: 
 
    <input type="text" name="username" /> 
 
    <br />Password: 
 
    <input type="password" name="password" /> 
 
    <br /> 
 

 
    <input type="submit" name="submit" value="Login" /> 
 
    </form> 
 
    <?php } else { require_once("db_const.php"); $mysqli=n ew mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); # check connection if ($mysqli->connect_errno) { echo " 
 
    <p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; exit(); } $username = $_POST['username']; $password = $_POST['password']; $sql = "SELECT * from users WHERE username LIKE '{$username}' AND password LIKE '{$password}' LIMIT 1"; 
 
    $result = $mysqli->query($sql); if (!$result->num_rows == 1) { echo " 
 
    <p>Invalid username/password combination</p>"; } else { echo ' 
 
    <script language="javascript"> 
 
    '; 
 
\t \t echo ' 
 
    alert("Log in successfull!") 
 
    '; 
 
\t \t echo ' 
 
    </script>'; header("refresh:5;url=home.php"); } } ?> 
 
</body> 
 

 
</html>

Abmelden:

<?php 
 
session_start(); 
 
session_destroy(); 
 
header('Location: login.php'); 
 
exit; 
 
?>

Und die Menüseite:

<a href="login.php">Logout</a>

+1

So funktioniert php nicht! –

+0

Was speichern Sie in Ihrer Sitzung? – Virb

+0

Erfahren Sie, wie Sie PHP verwenden. :) –

Antwort

1

diesen Code Versuchen und in-Homepage im oben setzen.

if(!isset($_SESSION['username'])) { 
    header("Location: login.php"); 
    exit; 
} 
+0

Nachdem ich mich eingeloggt habe, werde ich sofort zu login.php weitergeleitet, aber ich möchte auch den Logout-Button und das Menü sehen. –

+0

Verwenden Sie diese Bedingung also nicht, wenn (! Isset ($ _ SESSION ['username'])) {} für den Abmelde-Button und den Menübereich. Verwenden Sie nur für Ihre erforderliche Abschnitt –

+0

Es hat nicht funktioniert, leitet mich immer noch zu login.php ohne Anzeige von home.php –

Verwandte Themen