From 4ba81f3a6ba49f0b68b0ed8d38918bf54d042908 Mon Sep 17 00:00:00 2001 From: julien Date: Tue, 3 Nov 2026 16:47:04 +0100 Subject: [PATCH] Add contact flash --- lib/contact_form.rb | 5 ++++- lib/contact_mailer.rb | 6 +++--- views/contact.erb | 13 +++++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/contact_form.rb b/lib/contact_form.rb index 917a4ab..f27e915 100644 --- a/lib/contact_form.rb +++ b/lib/contact_form.rb @@ -6,6 +6,8 @@ class ContactForm "message" => 5000 }.freeze + EMAIL_PATTERN = /\A[A-Z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[A-Z0-9!#$%&'*+\/=?^_`{|}~-]+)*@[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?(?:\.[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?)+\z/i + def initialize(params) @params = params end @@ -26,7 +28,8 @@ class ContactForm return false unless fields_valid - email_valid = @params["email"].strip.match?(/\A[^\s@]+@[^\s@]+\.[^\s@]+\z/) + email_valid = @params["email"].strip.match?(EMAIL_PATTERN) + headers_valid = %w[name subject].none? do |key| @params[key].match?(/[\r\n]/) end diff --git a/lib/contact_mailer.rb b/lib/contact_mailer.rb index 24908c3..3fa2287 100644 --- a/lib/contact_mailer.rb +++ b/lib/contact_mailer.rb @@ -6,9 +6,9 @@ class ContactMailer end def build - email = @params["email"] - name = @params["name"] - subject = @params["subject"] + email = @params["email"].strip + name = @params["name"].strip + subject = @params["subject"].strip message = @params["message"] Mail.new do diff --git a/views/contact.erb b/views/contact.erb index 7f42a01..9032240 100644 --- a/views/contact.erb +++ b/views/contact.erb @@ -1,6 +1,19 @@

Contact

+ + <% if flash["error"] || flash["notice"] %> +
+ <% if error = flash["error"] %> + + <% end %> + + <% if notice = flash["notice"] %> +

<%= notice %>

+ <% end %> +
+ <% end %> +

Vous avez un projet en tête ? Un service vous intéresse ? Ou simplement une question ? Ce formulaire est là pour ça !