2016-04-26 154 views
0

我遇到了登錄問題。我已經閱讀了symfony doc。,主題在stackoverflow和其他教程。當我嘗試使用Firefox或Chrome登錄時,我第一次不會登錄,但是第二次嘗試成功。在IE中我根本不會登錄。你可以幫忙嗎?我沒有想法。這裏是我的代碼:Symfony簡單登錄表單問題

index.html.twig

<form action="{{ path('login_check') }}" method="post"> 
    <input type="text" id="username" name="_username" placeholder="{{ 'INDEX_LOGIN_USERNAME'|trans }}" /> 
    <input type="password" id="password" name="_password" placeholder="{{ 'INDEX_LOGIN_PASSWORD'|trans }}" /> 
    {#<input type="hidden" name="_target_path" value="/admin" />#} 
    <button type="submit"></button> 
</form> 

的routing.yml

login: 
    path: /login 
// without next line (defaults) I receive an error: Unable to find the controller for path "/login". The route is wrongly configured. 
    defaults: { _controller: FC_Hlinsko_Bundle:Default:index } 
    options: { i18n: false } 

logout: 
    path: /logout 
    options: { i18n: false } 

homepage: 
    path: /
    defaults: { _controller: FC_Hlinsko_Bundle:Default:index } 

admin: 
    path:  /admin 
    defaults: { _controller: FC_Hlinsko_Bundle:Admin:index } 

security.yml

security: 
    providers: 
     in_memory: 
      memory: 
       users: 
        admin: 
         password: $2y$12$aE7n0XduDqfYd5xZVfm.G.uiIZSMUCdtPxfz6VRgdBKrU2ihxcC7i 
         roles: 'ROLE_ADMIN' 
    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
      anonymous: true 

     secured_area: 
      pattern: ^/ 
      form_login: 
       check_path: /login_check 
       login_path: login 
      logout: 
       path: logout 
       target: homepage 
      anonymous: ~ 

    access_control: 
     # require ROLE_ADMIN for /admin* 
     - { path: /login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: /admin, roles: ROLE_ADMIN } 

    encoders: 
     Symfony\Component\Security\Core\User\User: 
      algorithm: bcrypt 
      cost: 12 
+0

請提供FC_Hlinsko_Bundle /Controllers/DefaultController.php indexAction方法。看起來像你對每個前端請求使用相同的控制器方法。這是一個錯誤的方式。你應該有單獨的方法主頁,登錄,註銷 –

+0

'公共功能indexAction(Request $ request) { return $ this-> render('FC_Hlinsko_Bundle:Default:index.html.twig'); }' }只是呈現index.html.twig ... 這是因爲我有隱藏在index.html.twig中的登錄表單,它出現在登錄鏈接 – Pesino

+0

相同就像他們在這裏[link](http ://www.fcviktoria.cz/eng/)..網站頂部的SIGN IN鏈接:-) – Pesino

回答

0

問題解決了。我已經探索dev.log,因爲它寫了這個錯誤:你的會話已超時,或者你已經禁用了Cookie ...所以經過一些搜索後,我發現不喜歡在域名(我有我的域名fc_hlinsko.local /app_dev.php/),所以我創建了新的Symfony項目和新的Bundle,現在一切似乎都可以。另外我還需要在form_login下添加我的security.yml代碼:require_previous_session: false