weixin_33701617 2016-01-14 21:52 采纳率: 0%
浏览 21

ajax登录脚本问题

I'm very new to ajax, and I'm trying to make a login script that doesn't require a page reload - it's working well except I attempt to set a session variable on the processing page, but no session variable is set.

My form:

<div class="form-bottom">
    <form role="form" class="login-form">
        <div class="form-group">
            <label class="sr-only" for="username">Username</label>
        <input type="text" name="username" placeholder="Username..." class="form-username form-control" id="username">
        </div>
        <div class="form-group">
        <label class="sr-only" for="password">Password</label>
        <input type="password" name="password" placeholder="Password..." class="form-password form-control" id="password">
        </div>
        <input type="submit" id="submit" class="btn" style="width:100%;background-color:lightblue;" value="Log In" id="login"/>
    </form>
        <? echo $_SESSION['Name']; ?>
</div>

My ajax:

<script type="text/javascript" >
      $(function() {
          $("#submit").click(function() {
          var username = $("#username").val();
          var password = $("#password").val();
          var dataString = 'username='+ username + '&password=' + password;

        if(username=='' || password=='')
        {
          $('.success').fadeOut(200).hide();
          $('.error').fadeOut(200).show();
        }
        else
        {
          $.ajax({
            type: "POST",
            url: "ajax/login.php",
            data: dataString,
            success: function(){
             $('.success').fadeIn(200).show();
             $('.error').fadeOut(200).hide();
             window.setTimeout(function () {
                location.href = "index.php";
            }, 3000);
            }
          });
        }
        return false;
        });
    });
    </script>

My php script:

 include('./static/config.php');

if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }

if(isset($_POST)) {

    $username = mysqli_real_escape_string($con, $_POST['username']);
    $password = mysqli_real_escape_string($con, $_POST['password']);

    $sql = "SELECT Name FROM techs WHERE Username='$username' AND Password='$password'";
    $result = mysqli_query($con, $sql);
    $exists = mysqli_num_rows($result);

    if($exists == 1) {
    $row = mysqli_fetch_assoc($result);
        $_SESSION['Name'] = $row['Name'];
    }

}
  • 写回答

4条回答 默认 最新

  • weixin_33681778 2016-01-14 21:59
    关注

    I think you forget to start the session.So start the session at the top of your script. Hope it will help.

     session_start();
    
        include('./static/config.php');
    
        if(isset($_POST)) {
    
    
            $username = mysqli_real_escape_string($con, $_POST['username']);
            $password = mysqli_real_escape_string($con, $_POST['password']);
    
            $sql = "SELECT Name FROM techs WHERE Username='$username' AND Password='$password'";
            $result = mysqli_query($con, $sql);
            $exists = mysqli_num_rows($result);
    
            if($exists == 1) {
            $row = mysqli_fetch_assoc($result);
                $_SESSION['Name'] = $row['Name'];
            }
    
        }
    
    评论

报告相同问题?