Bonjour à tous, 

Je met les mains dans le cambouis et voici mes
premier problème. 

Lorsque j'essaye d'envoyer mon form (pour tester les
gestions des erreurs) 

J'ai l'erreur suivante: 

FORBIDDEN (403)

CSRF
verification failed. Request aborted. 

HELP

Reason given for failure:


 CSRF cookie not set.

In general, this can occur when there is a
genuine Cross Site Request Forgery, or when Django's CSRF mechanism [1]
has not been used correctly. For POST forms, you need to ensure: 

        *
Your browser is accepting cookies.
        * The view function uses
RequestContext [2] for the template, instead of Context.
        * In the
template, there is a {% csrf_token %} template tag inside each POST form
that targets an internal URL.
        * If you are not using
CsrfViewMiddleware, then you must use csrf_protect on any views that use
the csrf_token template tag, as well as those that accept the POST
data.

You're seeing the help section of this page because you have
DEBUG = True in your Django settings file. Change that to False, and
only the initial error message will be displayed. 

You can customize
this page using the CSRF_FAILURE_VIEW setting. 

Voici ce que j'ai
concernant le CSRF: 

settings.py: 

MIDDLEWARE_CLASSES = (

'django.middleware.csrf.CsrfViewMiddleware',

'django.middleware.common.CommonMiddleware',

'django.contrib.sessions.middleware.SessionMiddleware',

'django.contrib.auth.middleware.AuthenticationMiddleware',

'django.contrib.messages.middleware.MessageMiddleware',
 # Uncomment the
next line for simple clickjacking protection:
 #
'django.middleware.clickjacking.XFrameOptionsMiddleware',
) 

Mon
template: 

{% extends "base.html" %}
{% block title %}Connexion{%
endblock %}
{% block bodyId %}loginPage{% endblock %}
{% block content
%}
<form action="." method="POST">
{% csrf_token %}
{% if error %}
<p
class="error">{{ error }}</p>
{% endif %}
 <p>
 <label
for="email">Courriel:</label>
 <input name="email" id="email" size="30"
tpe="email" />
 </p>

 <p>
 <label for="password">Mot de passe:</label>

<input name="password" id="password" size="30" type="password" />

</p>

 <p>
 <input type="submit" value="Se connecter"/>
 <a href="">
Créer un compte</a>
 </p>
</form>
{% endblock %} 

Ma vue: 

# -*-
coding: utf-8 -*-
'''
Created on 8 nov. 2012

@author:
m.cornelis
'''
from django.shortcuts import render_to_response
from
django.http import HttpResponseRedirect
from datetime import
datetime

def welcome(request):
 return
render_to_response('welcome.html',
 {'current_date_time': datetime.now}
),

def login(request):
 #teste si le formulaire a été envoyé
 if
len(request.POST) >0:
 # Teste si mes paramètres attendus ont été
transmis
 if 'email' not in request.POST or 'password' not in
request.POST:
 error = "Veuillez entrer votre adresse email et votre mot
de passe."
 return render_to_response('login.html', {'error' : error})

else:
 email = request.POST['email']
 password =
request.POST['password']
 #teste si le mot de passe est le bon
 if
password != 'password' or email != '[email protected]':
 error = "Adresse
email ou mot de passe erroné."
 return render_to_response('login.html',
{'error': error})
 #Tout est bon, on va a la page d'accueil (welcome)

else:
 return HttpResponseRedirect('/welcome')
 #Le formulaire n'a pas
été envoyé
 else:
 return render_to_response ('login.html')

Merci à
vous :) 

-- 

Michaël Cornelis

Rue Terne des vaches N°8
6460
Chimay

Gsm: +32 (0)475/ 517.866 
Fixe: +32 (0)60/ 779.010
E-Mail:
[email protected]
______________________________
http://nut.lu [3] |
Raccourcisseur d'URL

 

Links:
------
[1]
http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ref-contrib-csrf
[2]
http://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext
[3]
http://nut.lu
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à