在php用户验证之后查找user_id以授予用户一定的访问权限

时间:2013-11-13 01:01:56

标签: php jquery html ajax

我在站点中内置了一个使用PHP和JQuery进行验证的登录表单。但是,我想在PHP或JQuery验证器中添加一个函数,该函数将获取登录用户的user_id并将其与同一数据库中的另一个表进行比较。另一个表将包含允许用户从特定于该用户的项目的下拉列表中选择的数据,该列表最终将控制用户在网站中看到的内容。这两个表是“登录”表和“项目”表。我想我需要从登录表中获取user_id并与项目表中的user_id进行比较以查看它是否匹配。不确定如何去做。

PHP:

<?php
session_start();
$con = mysqli_connect("localhost","****","****","db") or die("Connection error: " . mysqli_error($con));
$query = mysqli_query("projects");

if(isset($_POST['submit'])){
  $username = $_POST['user_name'];
  $password = $_POST['pwd'];

  $stmt = $con->prepare("SELECT * FROM login WHERE username = ? AND password = ? LIMIT 1");
  $stmt->bind_param('ss', $username, $password);
  $stmt->execute();
  $stmt->bind_result($username, $password);
  $stmt->store_result();
  if($stmt->num_rows == 1)
  {
    while($stmt->fetch())
      {
    $_SESSION['Logged'] = 1;
        $_SESSION['user_name'] = $username;
    $_SESSION['timeout'] = time();
    echo 'true';
      }
  }
  else {
    echo 'false';
  }
  $stmt->close();
}
else{
}
$con->close();
?>

JQuery的:

  $("#login_validation").click(function(){
    var username=$('#user_name').val();
    var password=$('#password').val();
if(username===''){
      $("#add_err").html("*Please enter a user name.");
  return false;
}
else if(password===''){
  $("#add_err").html("*Please enter a password.");
  return false;
}
else{
  var loadTimeout = setTimeout(tick, 12100);
  $.ajax({
        type: "POST", 
    timeout:12000,
        url: "login_validation.php",
        data: "submit=true&user_name="+username+"&pwd="+password,
    beforeSend:function(){    
          $("#add_err").fadeIn("fast").html('<img src="image/loader.gif" />');
    },
        success: function(html){
      clearTimeout(loadTimeout);
      var html=trim(html);
      if(html=='true'){
            $("#login_b").fadeOut("normal");
    $("#login_b").promise().done(function(){
      $('#projects').css("display", "block");
        })
        //$('#profile').css("display", "block");
            //$("#profile").html("<a href='logout_session.php' id='logout'>Logout</a>");
          }          
          else{
            $("#add_err").html("*Wrong username or password");
          }
        }
      });//end ajax
      return false;
    }
  });//end #login_validation
  $("#project_validation").click(function(){
});
var tick = function(){
  $("#add_err").html('Unable to fetch page!');
}
function trim(str){
  var str=str.replace(/^\s+|\s+$/,'');
  return str;
}

形式:

<fieldset id="login_form_wrap" class="login_form_header">
  <legend>CUSTOMER LOGIN</legend>
  <?php session_start(); ?> 
  <div id="profile">
<?php if((!isset($_SESSION['user_name'])) || ($_SESSION['timeout'] + 10 * 60 < time())){ ?>
  <div id="login_a">
    <a id="login_profile" href="#">click to login</a>
  </div>
<?php }else {;?>
  <a href='logout_session.php' id='logout'>Logout</a>
  <!-- header('location: dashboard.php'); -->
<?php } ?>
</div>
<form action="login_validation.php" id="login_form" method="POST">
  <div id="login_b">
    <div class="welcome"></div>
    <div class="wrapper">
      <span class="col1">USER NAME:</span>
      <input type="text" id="user_name" name="user_name" class="input" required />
    </div>
    <div class="wrapper">
      <span class="col1">PASSWORD:</span>
      <input type="password" id="password" name="password" class="input" required />
    </div>
    <div class="wrapper">
      <span class="col1"></span>
      <input type="submit" name"submit" id="login_validation" value="SUBMIT" />
      <input type="reset" id="cancel_hide" value="CANCEL" />
      <div class="err" id="add_err"><br></div>
      <div id="divMayus" style="visibility:hidden">Caps Lock is on.</div>
    </div>
  </div>
  <div id="projects">
  <div class="welcome">Welcome <?php echo $_SESSION['user_name']; ?></div>
    <div class="wrapper">
      <span class="col1">PROJECTS:</span>
      <select id="Projects" class="input">
        <option value="" selected="selected" disabled='disabled'>Choose a Project...</option>
        <?php
        // Loop through the query results, outputing the options one by one
        while ($row = mysql_fetch_array($query)) {
          echo '<option value="'.$row['projects'].'">'.$row['projects'].'</option>';
        }?>
      </select>  
    </div>
    <div class="wrapper">
      <span class="col1"></span>          
      <input type="submit" name"submit" id="project_validation" value="SELECT" />
      <div class="err" id="add_err"><br></div> 
    </div>
  </div>
</form>

我还在学习JQuery和PHP,所以非常感谢任何正确方向的帮助。

1 个答案:

答案 0 :(得分:0)

获取您正在检查的用户ID

运行查询表,允许用户ID,并将其分解为数组

然后检查您正在检查的用户ID是否在该数组中。