2016-06-30 5 views
0

Ich habe header.php auf jeder Seite für Header-Logo und überprüfen Sie die Seite Erlaubnis von SESSION!Überprüfen Sie die Seitenberechtigungen nach Sitzung?

  • Also, wenn Sie main.php ohne Login (Session Nullzustand) anfordern, wird es Login-Seite angezeigt werden und beende in header.php für keine aktuellen Seiteninhalt zeigt.
  • Seine header.php ist die Arbeit für jede Seite außer login.php .Because Login-Seite ist für seine Login-Formular nicht zeigen

Deshalb möchte ich Login-Formular zeigen, wie kann ich in header.php überprüfen? Sorry für mein schlechtes Englisch :(

login.php

<?php 
session_start(); 
include("header.php"); 
if($_POST){ 
//set session logged in 
} 
?> 
<div class="login-box "> 
      <h3> Log In </h3> 
      <form method="POST"> 
       <input type="text" name="user" placeholder="Type User Name"><br> 
       <input type="password" name="pass" placeholder="Type Password"><br> 
       <input type="submit" name="submit" value="Login" class="button"> 
      </form> 
      <span id="signup_text">You are not still a member.Click <a href="signup.php">Sign Up</a></span> 
</div> 

header.php

<?php 
session_start(); 
?> 
<div id="header" class="container"> 
     <div id="logo"> 
      <h1>Online Quiz Management</h1> 
     </div> 
</div> 
<?php   
if (isset($_SESSION['login'])) { 
      echo "<div id='menu'><ul><li><a href=\"sublist.php\">HOme</a></li><li><a href=\"signout.php\">Signout</a></li></ul></div>"; 
      } 
     else { 
      echo "<div class=head1> Your are not logged in<br> Please <a href=login.php>Login</a><div>"; 
      exit; 
     } 
      ?> 
     </div> 
    </div>     
?>  

main.php

<?php 
session_start(); 
include("header.php"); 
?> 
//show main code if logged in 
+1

eine bessere Lösung mi ist Um den Benutzer auf die Anmeldeseite umzuleiten (z.B. 'login.php') wenn er nicht eingeloggt ist. Dann würden Sie das Formular in' login.php' erstellen, anzeigen und überprüfen. – Pete

Antwort

0

fügen sie einfach einen Scheck wenn die aktuelle Seite login.php und laufen nicht dem Block, wenn es

else if(!basename($_SERVER['PHP_SELF']) == "login.php") { 

      echo "<div class=head1> Your are not logged in<br> Please <a href=login.php>Login</a><div>"; 
      exit; 
     } 
0

ich denke, u dont die header.php umfassen müssen, um login.php, da es überprüfen für die Sitzung, während die login.php die Sitzung Starter ...

nach allem, versuchen, dies zu dem header.php hinzuzufügen:

session_start(); 
if(!isset($_SESSION['login'])){ 
echo '<script language="javascript">'; 
echo 'alert("Please Login")'; 
echo '</script>'; 
echo("<script>location.href = 'login.php';</script>");//direct the user to login.php if they aren't logged in 
}