0

我在使用 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();
?>

查询:

  $("#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,因此非常感谢您在正确方向上的任何帮助。

4

1 回答 1

0

获取您正在检查的用户 ID

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

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

于 2013-11-13T01:05:36.877 回答