我很难通过已经存在的Symfony项目的登录页面。我遵循了这里规定的流程,但我在传递登录页面时仍然存在问题,甚至没有给我任何错误或任何东西。它只是不断地将我重定向到同一个登录页面。
此外,在apps/log/dev.log文件中也没有写入任何错误。我可以看到,每次我试图通过localhost上的数据库phpMyAdmin访问网站时,都会创建会话。
这是我的app/config/config.yml文件
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
- { resource: easy.yml }
framework:
#esi: ~
#translator: { fallback: %locale% }
secret: %secret%
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: %kernel.debug%
form: true
csrf_protection: true
validation: { enable_annotations: true }
templating: { engines: ['twig'], assets_version: v32 }
default_locale: %locale%
trust_proxy_headers: false
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
globals:
applicationUrl: http://10.50.1.39:8080/Performance/web/app_dev.php
form:
resources:
- AppraisalAdminBundle:Form:label.html.twig
- AppraisalAdminBundle:JobPosition:business_unit_department_multiple.html.twig
- AppraisalAdminBundle:FunctionalRole:business_unit_department_single.html.twig
- AppraisalAdminBundle:FunctionalRole:app_functional_role_position.html.twig
- AppraisalAdminBundle:FunctionalRole:app_functional_role_position_fixed.html.twig
- AppraisalAdminBundle:Employee:app_employee_job.html.twig
- AppraisalAdminBundle:Skill:app_skill_applied.html.twig
- AppraisalAdminBundle:JobFunction:app_job_function.html.twig
- AppraisalAdminBundle:Job:app_job_filter.html.twig
- AppraisalAdminBundle:Job:app_job_all_filter.html.twig
- AppraisalAdminBundle:Competency:app_competency_area.html.twig
- AppraisalAdminBundle:Competency:app_competency_filter.html.twig
- AppraisalAdminBundle:Form:datepicker.html.twig
- AppraisalAdminBundle:DepartmentObjective:app_goal.html.twig
- AppraisalAdminBundle:DepartmentObjective:app_goal_filter.html.twig
- AppraisalAdminBundle:DepartmentObjective:app_department_multiple.html.twig
- AppraisalAdminBundle:CompetencyObjective:app_competency_objective_type.html.twig
- AppraisalAdminBundle:CompetencyObjective:app_competency_objective.html.twig
- AppraisalAdminBundle:Kpi:app_kpi_type.html.twig
- AppraisalAdminBundle:AppraisalForm:app_appraisal_form_filter.html.twig
- AppraisalAdminBundle:AppraisalCycle:app_appraisal_cycle_business_unit_department.html.twig
- AppraisalAdminBundle:Form:app_attachment.html.twig
swiftmailer:
encryption: tls
auth_mode: login
host: mail.ipnxnigeria.net
username: perfmgt@ipnxnigeria.net
password: ipnx
spool:
type: file
path: "%kernel.root_dir%/spool"
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
dbname: "%database_name%"
port: "%database_port%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
这是我的app/config/security.yml文件
security:
encoders:
Symfony'Component'Security'Core'User'User: plaintext
# Appraisal'AdminBundle'Business'User'UserSession: sha512
providers:
AppSecurityBundleUserProvider:
id: app_user_provider
# default_provider:
# memory:
# users:
# admin: { password: kitten, roles: 'ROLE_ADMIN' }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/Admin/Login/ShowLogin
security: false
secured_area:
pattern: ^/
form_login:
check_path: /Admin/Security/LoginCheck
login_path: /Admin/Login/ShowLogin
username_parameter: username
password_parameter: password
always_use_default_target_path: true
default_target_path: /Admin/Default/
logout:
path: /Admin/Security/Logout
target: /Admin/Login/ShowLogin
access_control:
- { path: ^/Admin/Profile/, roles: [ROLE_ADMIN, ROLE_APPRAISER, ROLE_APPRAISEE] }
- { path: ^/Admin/Default/, roles: [ROLE_ADMIN, ROLE_APPRAISER, ROLE_APPRAISEE] }
#- { path: ^/Admin/AppraiserObjectiveSetting/, roles: [ROLE_ADMIN, ROLE_APPRAISER] }
#- { path: ^/Admin/Appraisee/, roles: [ROLE_ADMIN, ROLE_APPRAISER] }
- { path: ^/Admin/, roles: [ROLE_ADMIN] }
这是我的LoginController.php文件
<?php
namespace Appraisal'AdminBundle'Controller;
use Symfony'Bundle'FrameworkBundle'Controller'Controller;
use Symfony'Component'HttpFoundation'Response;
use Sensio'Bundle'FrameworkExtraBundle'Configuration'Route;
use Appraisal'AdminBundle'Business;
use Symfony'Component'Security'Core'SecurityContext;
/**
*@Route("/Login")
*/
class LoginController extends Controller
{
/**
* @Route("/ShowLogin/", name="Appraisal_Login_ShowLogin")
*/
public function ShowLoginAction() {
$request = $this->getRequest();
$session = $request->getSession();
$formErrors = array();
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$formError = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$formError = $session->get(SecurityContext::AUTHENTICATION_ERROR);
$session->remove(SecurityContext::AUTHENTICATION_ERROR);
}
$data = array(
'form_url' => $this->generateUrl('Security_LoginCheck'),
'form_error' => $formError
);
return $this->render('AppraisalAdminBundle:Login:LoginPage.html.twig', $data);
}
}
这是我的Login.html.twig视图
<html>
<head>
<title>{{ title | default('Appraisal System')}}</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
{% block header %}
<link rel="stylesheet" type="text/css" href="{{ asset('bundles/designjeasyui/jquery-easyui/themes/default/easyui.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('bundles/designjeasyui/jquery-easyui/themes/icon.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('bundles/designjeasyui/style.css') }}">
<script type="text/javascript" src="{{ asset('bundles/designjeasyui/jquery-easyui/jquery-1.8.0.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/designjeasyui/jquery-easyui/jquery.easyui.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/designjeasyui/general.js') }}"></script>
<script type="text/javascript">
function switchPage(pageTitle, pageHref) {
var centerPanel = jQuery('#main').layout('panel', 'center');
centerPanel.panel('setTitle', pageTitle);
centerPanel.panel('refresh', pageHref);
}
</script>
{% endblock %}
</head>
<body>
<div id="topBanner">
{% block topBanner %}
<img src="{{ asset('bundles/designjeasyui/images/company-logo.jpg')}}" height="58px" />
{% endblock %}
</div>
<div class="easyui-layout" id="main" style="height:550px;margin-left: 10px; margin-right: 10px;">
<div id="content" region="center">
<div id="LoginDialog" class="easyui-dialog" title="Login" style="width:500px;height:200px"
closable="false">
<form id="LoginForm" class="stdform" method="post" action="{{ form_url }}">
<p>
<label>Email</label>
<span class="field">
<input type="textbox" name="username" style="width: 180px"/>
</span>
</p>
<p>
<label>Password</label>
<span class="field">
<input type="password" name="password" style="width: 180px"/>
</span>
</p>
<p>
<label></label>
<span class="field">
<label for="selection" class="error" style="margin-top: 5px; width: 50%">
{% if form_error is not empty %}Login failed{% endif %}
</label>
</span>
</p>
<p class="stdformbutton" id="LoginForm_submit_button_p">
<a class="easyui-linkbutton" iconCls="icon-ok" href="javascript:submitForm('LoginForm')">
<span>Login</span>
</a>
</p>
<p class="stdformbutton" style="display: none" id="LoginForm_submit_ajax_loader">
<a class="ajax-loader"></a>
</p>
</form>
</div>
</div>
</div>
<div style="margin-left: 10px; margin-right: 10px;">
<div style="margin-left: auto; margin-right: auto; width: 300px; margin-top: 10px">
<b style="font-size: 11px">Powered by </b> <img src="{{ asset('bundles/designjeasyui/images/footer-logo.jpg')}}" height="20px" />
</div>
</div>
</body>
</html>
我已经检查了.htaccess文件和web根目录,已经进行了检查,但我不知道该怎么办。我需要在捆绑包中进行一些更改,但我无法登录。
根据您提供的从web服务器将Symfony2站点转移到localhost的链接,步骤2显示:
2)从实时Web服务器导出数据库,并将其导入本地主机。这可以使用PhpMyAdmin完成
您是否使用PhpMyAdmin检查了数据库是否正确导入?(或终端中的MySQL)
我已经出现了"无法退出登录页面"的错误,而且发生在我身上的次数是因为我忘记运行我的Doctrine Fixtures。忘记运行我的Fixture导致没有将我的"标准"用户插入数据库,所以我无法登录。
也许你也有类似的错误:)
验证你的/app/config/parameters.yml,并检查数据库名称、用户和密码是否正确。它们应该是您的用户所在的数据库(请参阅终端中的PhpMyAdmin或or MySQL),以及您用于PhpMyAdmin/MySQL 的用户和密码
谢谢Victor。问题是,我最初是在windows平台上(使用wamp服务器)构建web应用程序的,我试图在ubuntu(lamp服务器)上重新打开它,但没有成功。我忘了,最初在windows上构建的网络应用程序可能无法在任何其他操作系统平台上运行,但在Ubuntu(或类似linux的平台)上构建的web应用程序可以在包括windows在内的任何其他平台上运行。让我们注意一下。