2014-07-09 186 views
1

我是拉拉維爾的新手。我使用的是版本4,我試圖在我的登錄表單中執行ajax請求。由於我的登錄表單處於引導模式,因此在表單提交之前,它會檢查輸入的密碼和用戶名是否與我的數據庫中的密碼和用戶名相同,並使用ajax。然後,如果表單提交,它只會重新加載頁面。 這裏是我的代碼:Ajax請求laravel 4

JS-script.php的

$("#login-submit").submit(function(event) { 
    var un = 'input[name="username"]'; 
    var pw = 'input[name="password-login"]'; 

    $.ajax({ 
       type: "POST", 
       url: "/login=success", 
       data : { 'un' : $(un).val(), 'pw' : $(pw).val() }, 
       datatype: "json", 
       success: function(data){ 
        if(data == 0){ 
         $('#message-error').show(); 
         setTimeout(function() { 
          $('#message-error').hide(); 
         }, 5000); 
        } 
        if(data != 0){ 
         window.location.reload(); 
        } 
       } 
      }); 

}); 

usercontroller.php

// Login User 
    public function login(){ 
     $un = Input::get('un'); 
     $pw = Input::get('pw'); 
     $password = md5($pw); 
     if (Auth::attempt(array('username'=>$un, 'password'=>$password))) { 
      return Redirect::to('/login=success')->with('message', 'You are now logged in!'); 
     } else { 
      return Redirect::to('users/login') 
       ->with('message', 'Your username/password combination was incorrect') 
       ->withInput(); 
     }  

    } 

route.php

Route::post('/login=success', '[email protected]'); 

我不知道如何訪問我的數據庫,並在我的ajax中做一些查詢。

回答

0

請求db並檢查給定的輸入。你應該把你的控制器:

$num = DB::where("username", $username)->where("password", $password)->count(); 

if ($num != 0) 
{ 
// do something 
} 

$password可能是一個哈希密碼。這取決於如果你已經使用Laravel的驗證,那麼你將要使用Laravel的是哈希:

$hashedPassword = Hash::make(Input::get('password')); 

雖然然後你可以檢查它,再次使用Laravel的哈希:

if (Hash::check($_POST['password'], $hashedPassword)) 
{ 
    // The passwords match... 
} 

如果你的網站有其數據庫在Laravel中工作,那麼你的數據庫配置在Laravel中設置,否則你必須在Laravel中設置你的數據庫配置。爲此,您可以諮詢Laravel的文檔。

所有上述信息也可通過Laravel的文檔獲得。對於散列您可以訪問:

http://laravel.com/docs/security

+0

我得到我的開發工具沒有發現錯誤404 console.The要求我的服務器上沒有找到URL。你能指導我如何重新加載相同的頁面,但在我的地址欄應該是這樣public/login = success – PandaUser

+0

讓我問你這個問題:你的ajax調用是響應404?如果是的話,我應該給你一個解決方法... –

+0

我認爲這個錯誤尋找我的目錄中的一個頁面,在我的route.php中分配,但我搜索了關於如何在laravel中執行ajax的教程,並且此代碼可能與他們。 – PandaUser