我的項目在本地計算機上正常工作。但是,一旦我將其上傳到OVH服務器上,當我提交我有的任何表格時(例如註冊FOSUserBundle
以及我自己的表格),我都會遇到一些問題。Symfony CSRF令牌無效
問題是當我提交表單時我有一個無效的CSRF令牌。
我嘗試了許多解決方案:
我加
{{ form_rest(form) }}
我的樹枝文件。我更改
csrf_protection
爲false
app/config/config.yml
然後請求被submited沒有任何領域的形式。
注意:我嘗試了symfony 2.4和2.3,但問題仍然存在。
我的樹枝:
<form id="modifier_form" name="modifier_form" method="post" {{ form_enctype(form) }}>
<div id="form_prenom">{{ form_row(form.prenom) }}</div>
<div id="form_nom">{{ form_row(form.nom) }}</div>
<div id="form_situation_pro">
<label>Situation professionnelle</label>
<select name="optone"
id="pays_select"
onchange="setOptions(document.modifier_form.optone.options[document.modifier_form.optone.selectedIndex].value);">
<option value=" " selected="selected"> </option>
{% for a in pays %}
<option value="{{ a.getId }}">{{ a.getName }}</option>
{% endfor %}
</select>
</div>
<div id="form_situation_pro_sous">
<label></label>
<select name="opttwo" id="region_select">
<option value=" " selected="selected"></option>
</select>
</div>
{{ form_widget(form) }}
{{ form_restt(form) }}
<input type="submit" value="Enregistrer" />
我的控制器
public function modifierAction(){
$connecteduser =$this->getUser();
$fich=$connecteduser->getFichsig();
//si l'utulisateur a deja une fiche sinon il faut le remplire
if(!$fich){
$fich = new Fichsig;
$connecteduser->setFichsig($fich);
}
$myuser=$this->getDoctrine()
->getManager()
->getRepository('TS\InscriptionBundle\Entity\User')->findByEmail($connecteduser->getEmail());
$form = $this->createForm(new UserType($this->getDoctrine()->getManager()), $connecteduser);
$request = $this->getRequest();
if ($request->isMethod('POST')) {
$form->bindRequest($request);
if ($form->isValid()) {
//get parametres
////
$connecteduser->setFichsig($fich);
$em = $this->getDoctrine()->getManager();
$em->merge($connecteduser);
$em->flush();
return $this->redirect($this->generateUrl('ts_inscription_profil'));
}
}
// On passe la méthode createView() du formulaire à la vue afin qu'elle puisse afficher le formulaire toute seule
return $this->render('TSInscriptionBundle:Logged:modifier_logged_layout.html.twig', array(
'form' => $form->createView(),
'pays'=>$this->pays(),
'region'=>$this->region(),
));
}
我config.yml
framework:
#esi: ~
translator: { fallback: "%locale%" }
secret: "%secret%"
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
templating:
engines: ['twig']
#assets_version: SomeVersionScheme
default_locale: "%locale%"
trusted_hosts: ~
trusted_proxies: ~
session:
# handler_id set to null will use default session handler from php.ini
handler_id: ~
fragments: ~
http_method_override: true
你可以發佈一些PHP,樹枝和相應的生成HTML嗎? –