2017-09-09 49 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檢查。 –

相關問題