2017-09-09 47 views
1

想成功登录时重定向到某页面我正在使用jQuery表单插件提交我的表单。一切正常,但响应打印而不是重定向。jquery表单插件重定向,而不是在html上打印响应成功的php mysql脚本

登录表单提交使用jquery表单插件

<script> 
    $(document).ready(function(){ 
     // Form submit via jQuery form plugin 
     $('#formUserSignIn').ajaxForm(function(response){ 
      if(parseInt(response) !== 1){ 
      $('#flashMessage').html(response);    
      } 
      else{ 
       window.location.href='/apps/home/dashboard'; 
      } 
     }); 
    }); 
</script> 

process.php

if(isset($_POST['btnUserSignIn'])){ 
    $userEmail = mysqli_real_escape_string($conn, $_POST['txtUserEmail']); 
    $userPass = mysqli_real_escape_string($conn, $_POST['txtUserPassword']); 
    $userPass = $encrypt->hash_pass($userPass); 

    $sql_check_user = $conn->query("SELECT * FROM workflow_users 
     WHERE user_email = '$userEmail' AND user_pass = '$userPass'") 
    or die(query_error('queryCheckUser', $conn->error)); 

    if($sql_check_user->num_rows > 0){ 
     $row_check_user = $sql_check_user->fetch_array(); 
     $userName = $row_check_user['user_name']; 

     /* 
     |----------------------------------------------------- 
     | SET PHP SESSION FOR CURRENT USER 
     |----------------------------------------------------- 
     */ 
     // Set session name 
     session_name('currentuser'); 
     // Set session expire time 
     ini_set('session.gc_maxlifetime', 7200); 
     // Start php session 
     session_start(); 
     // Store query result to session array 
     $_SESSION['user_id']  = $row_check_user['user_id']; 
     $_SESSION['user_name']  = $row_check_user['user_name']; 
     $_SESSION['user_email']  = $row_check_user['user_email']; 
     $_SESSION['user_pass']  = $row_check_user['user_pass']; 
     $_SESSION['user_type']  = $row_check_user['user_type']; 
     $_SESSION['user_status'] = $row_check_user['user_status']; 
     $_SESSION['user_otp']  = $row_check_user['user_otp']; 

     return 1; 
    } 
    else{ 
     $msg->set_flash_msg("Error", "Incorrect email or password."); 
    } 


} 

回答

0

你需要做echo当你调用AJAX,而不是return

if(isset($_POST['btnUserSignIn'])){ 
    $userEmail = mysqli_real_escape_string($conn, $_POST['txtUserEmail']); 
    $userPass = mysqli_real_escape_string($conn, $_POST['txtUserPassword']); 
    $userPass = $encrypt->hash_pass($userPass); 

    $sql_check_user = $conn->query("SELECT * FROM workflow_users 
     WHERE user_email = '$userEmail' AND user_pass = '$userPass'") 
    or die(query_error('queryCheckUser', $conn->error)); 

    if($sql_check_user->num_rows > 0){ 
     $row_check_user = $sql_check_user->fetch_array(); 
     $userName = $row_check_user['user_name']; 

     /* 
     |----------------------------------------------------- 
     | SET PHP SESSION FOR CURRENT USER 
     |----------------------------------------------------- 
     */ 
     // Set session name 
     session_name('currentuser'); 
     // Set session expire time 
     ini_set('session.gc_maxlifetime', 7200); 
     // Start php session 
     session_start(); 
     // Store query result to session array 
     $_SESSION['user_id']  = $row_check_user['user_id']; 
     $_SESSION['user_name']  = $row_check_user['user_name']; 
     $_SESSION['user_email']  = $row_check_user['user_email']; 
     $_SESSION['user_pass']  = $row_check_user['user_pass']; 
     $_SESSION['user_type']  = $row_check_user['user_type']; 
     $_SESSION['user_status'] = $row_check_user['user_status']; 
     $_SESSION['user_otp']  = $row_check_user['user_otp']; 

     echo 1; // echo 1 if success 
    } 
    else{ 
     echo "error"; // echo error or any thing else if there is an error 
     $msg->set_flash_msg("Error", "Incorrect email or password."); 
    } 


} 
+0

我试过了,但'echo'获取打印的内容而不是重定向。目前,我正在使用'echo'“; ** ** Process.php **上成功的'query_user_check'重定向但等待**登录。 PHP **页面一段时间然后做重定向,但这使它Improfessional。 –

+0

不要回显脚本从PHP文件。你的jquery文件必须是你指定的问题,只是改变php文件 –

+0

尝试了你的答案,但它在结果div'#flashMessage'中打印1而不是重定向。可能是我在做错误的JavaScript检查。 –

相关问题