2016-10-09 4 views
0

Ich versuche, ein Benutzer für die Login-Seite hinzufügen, aber es hält Umleiten, obwohl es keine Umleitung im CodeSeite Umleitungen an sich

login.php

<?php 
include './connect.php'; 
session_start(); 
if (($_SERVER["REQUEST_METHOD"] == "POST") && (!empty($_POST['username'])) && (!empty($_POST['password']))) { 
    $postedUsername = $_POST['username']; 
    $postedPassword = $_POST['password']; 
    $userDatabaseFind = $database->login->findOne(array('username' => $postedUsername, 'password' => $postedPassword)); 
    $storedUsername = $userDatabaseFind['username']; 
    $storedPassword = $userDatabaseFind['password']; 

    if (($postedUsername == $storedUsername) && ($postedPassword == $storedPassword)) { 
     $_SESSION['username'] = $storedUsername; 


     if($_SESSION['username'] == 'admin'){ 

      session_regenerate_id(); 
      header('location:printDetail.php'); 
      } 
     else{ 
       session_regenerate_id(); 
       header('location:welcome.php'); 
     } 

    } else { 
     echo 'Error'; 
    } 
} 

printDetail.php vorgesehen ist

<?php 
require './connect.php'; 
require './login.php'; 

//SEARCHING ACROSS THE COLLECTIONS IN THE DATABASE 

$printDetailCollections = $database->details; 
$printDetailCursor = $printDetailCollections->find(); 

//INITIALIZE THE VALUE TO ZERO SO IT CAN GO THROUGH THE DATABASE 

$i = 0; 

//USERNAME AND PASSWORD ARE CHECKED IF IT IS ASSIGNRD THEN THE SESSION IS DISPLAYED 

if (isset($_SESSION['username']) && !(empty($_SESSION['username']))) { 

    //LOOP FOR TRAVERSING ACROSS THE DATABASE 

    foreach ($printDetailCursor as $doc) { 
     $i++; 
    } 
} else { 
    header('location:index.html'); 
} 
?> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
     <style> 
      table, th, td { 
       border: 1px solid black; 
       border-collapse: collapse; 
      } 
      th, td { 
       padding: 15px; 
      } 
      body{ 
       background-image: url(images/16386858141_65a65879cd_b.jpg); 
       background-repeat: no-repeat; 
       background-size: cover; 

      } 
     </style> 
     <script> 
      $(document).ready(function() { 
       window.onload = $('#table').hide(); 
      }); 

     </script> 
    </head> 

    <body> 
     <nav class="navbar navbar-inverse"> 
      <div class="container-fluid"> 
       <div class="navbar-header"> 
        <a class="navbar-brand" href="#">Business card Management</a> 
       </div> 
       <ul class="nav navbar-nav"> 
        <li class="dropdown"> 
         <a class="dropdown-toggle" data-toggle="dropdown" href="#">Menu 
          <span class="caret"></span></a> 
         <ul class="dropdown-menu"> 
          <li><a href="addUser.php">Add entry</a></li> 
          <li><a href="#">Delete entry</a></li> 
         </ul> 
        </li> 
       </ul> 
       <ul class="nav navbar-nav navbar-right"> 
        <li><a href="logout.php"><span class="glyphicon glyphicon-log-out"></span> Log out</a></li> 
       </ul> 
      </div> 

     </nav> 
     <div class="container"> 
      <table id="table"> 
       <thead> 
        <tr> 
         <th>First Name</th> 
         <th>Second Name</th> 
         <th>Company Name</th> 
         <th>Designation</th> 
        </tr> 
       </thead> 
       <tbody> 
        <?php 
        foreach ($printDetailCursor as $printDetailDocument) { 
         ?> 
         <tr> 
          <td> 
           <?php 
           echo (json_decode($printDetailDocument['First Name'])); 
           ?> 
          </td> 
          <td> 
           <?php 
           echo (json_decode($printDetailDocument['Second Name'])); 
           ?> 
          </td> 
          <td> 
           <?php 
           echo (json_decode($printDetailDocument['Company Name'])); 
           ?> 
          </td> 
          <td> 
           <?php 
           echo (json_decode($printDetailDocument['Designation'])); 
          } 
          ?> 
         </td> 
        </tr> 
       </tbody> 

      </table> 

     </div> 
    </body> 
</html> 

ich habe 3 Sammlungen im mongodb Login und details.The Benutzer hinzufügen versucht, die Login-Sammlung zugreifen zum hinzufügen des Benutzers

addUser.php

<?php 

    include './connect.php'; 
$username = NULL; 
$password = NULL; 
$confPassword = NULL; 
$passwordError = ""; 
$userEntryCollection = NULL; 

if (isset($_SESSION['username']) && !(empty($_SESSION['username']))) { 
    if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     $userEntryCollection = $database->login; 
     if (isset($_POST['username'])) { 
      $username = $_POST['username']; 
     } 
     if (isset($_POST['password'])) { 
      $password = $_POST['password']; 
     } 
     if (isset($_POST['confPassword'])) { 
      $confPassword = $_POST['confPassword']; 
     } 
    } else { 
     echo 'error'; 
    } 
    if ($password != $confPassword) { 
     $passwordError = "Your passwords doesnot match"; 
    } else { 
     $userEntry = array(
      "username" => $username, 
      "password" => $password, 
     ); 
     $userEntryCollection->insert($userEntry); 
    } 
} 
?> 

<html> 
    <head> 
     <link rel="stylesheet" href=bootstrap-3.3.7-dist/css/bootstrap.min.css> 
     <script src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> 
     <style> 
      .col-lg-10{ 
       position: relative; 
       width: 350px; 
       border-radius: 25px; 

      } 
      form{ 
       position: absolute; 
       top: 10%; 
       left: 40%; 
      } 
      body{ 
       background-image: url(images/16386858141_65a65879cd_b.jpg); 
       background-repeat: no-repeat; 
       background-size: cover; 
      } 
      form{ 
       color: black; 
      } 

     </style> 

    </head> 
    <body> 
     <nav class="navbar navbar-inverse"> 
      <ul class="nav navbar-nav navbar-left"> 
       <li><a href="printDetail.php"><span class="glyphicon glyphicon-arrow-left">Back</span></li> 
      </ul> 
     </nav> 
     <form method="POST" class="col-lg-10" <?php echo $passwordError; ?> > 
      <div class="form-group form-inline"><br> 
       <label for="firstName">Username</label><br> 
       <input type="text" class="form-control" id="username" name="username"> 
      </div> 
       <div class="form-group form-inline"> 
       <label for="secondName">Password:</label><br> 
       <input type=password class="form-control" id="password" name="password"> 
       </div> 
       <div class="form-group form-inline"> 
       <label for="secondName">Confirm Password</label><br> 
       <input type=password class="form-control" id="confPassword" name="confPassword"> 
       </div> 
       <button type="button" class="btn btn-success">Submit</button> 
     </form> 
    </body> 
</html> 

Ich habe versucht, über die URL-Zugriff auf die printDetail.php zu deaktivieren und ich denke, dass der Hauptgrund für redirection.But ist, könnte den Fehler im Code nicht herausfinden

die Seite wird durch klicken auf das Feld der Benutzername

Ps gerade umgeleitet: ich weiß, das Passwort auf diese Weise gespeichert ist unsicher

+0

, was in der 'index.php' ist? – imrealashu

+0

es hat nur die HTML-Vorlage für den Benutzernamen und pwd Eintrag nichts anderes – abhishek

+0

Glaubst du nicht, dass 'session_regenerate_id();' könnte der Grund sein, warum Sie kein 'isett ($ _ SESSION ['Benutzername']) 'in printDetail.php? –

Antwort

0

ich habe versucht den Code auf meinem Server und ich bestätigen Ihre Seite Umleitung Problem, wenn die Eingabe etwas in der addUser.php Form ...

Ihre Fehler versucht, ist in diesen Zeilen:

<nav class="navbar navbar-inverse"> 
    <ul class="nav navbar-nav navbar-left"> 
     <li><a href="printDetail.php"><span class="glyphicon glyphicon-arrow-left">Back</span></li> 
    </ul> 
</nav> 

Sie nicht die ancor für "Back" geschlossen hat.

Das Ergebnis ist alle Ihre Form und jedes einzelne Elemente der Seiten (bis eine andere Ancor ... Aber es gibt keine) sind von der Browser in diesem Ancor enthalten.
Dann sind auch "Zurück" -Links. enter image description here Es ist einfach so.

Verwenden [F12] über die Konsole und Code-Inspektor zu debuggen, das nächste Mal ...
;)

+0

Sicher! Ich werde das machen ! und danke, dass es funktioniert! – abhishek