Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function contact()
- {
- // je charge mes librairies
- $this->load->helper(array('form', 'url'));
- $this->load->library('form_validation');
- $this->load->library('random_question');
- //les règles de validation du formulaire
- $this->form_validation->set_message('required', 'Le champ %s est requis');
- $this->form_validation->set_error_delimiters('<li>', '</li>');
- $this->form_validation->set_rules('nom', 'nom', 'required');
- $this->form_validation->set_rules('mail', 'Email', 'required|valid_email');
- $this->form_validation->set_rules('objet', 'objet', 'required');
- $this->form_validation->set_rules('message', 'message', 'required');
- $this->form_validation->set_rules('bot', 'bot', 'callback_anti_bot');
- //je pioche une question aléatoire
- $num = rand() % 5;
- $dateU = date('U');
- $question = $this->random_question->question($num).$dateU;
- $reponse = $this->random_question->reponse($num);
- //Je mets en session la réponses pour la comparer avec la soumission via callback_anti_bot
- $this->session->set_flashdata('reponse', $reponse);
- $this->session->set_flashdata('question', $question);
- //les echo pour vérifier mes variables
- echo "<br>";
- var_dump($question);
- echo "<br>";
- var_dump($reponse);
- echo "<br> flashdata question ";
- var_dump($this->session->flashdata('question'));
- echo "<br> flashdata reponse ";
- var_dump($this->session->flashdata('reponse'));
- //m'affiche dans un premier temps :
- //string(45) "Quelle est la couleur des bananes ? 1422442444"
- //string(5) "jaune"
- //flashdata question bool(false)
- //flashdata reponse bool(false)
- //puis après soumission :
- //string(41) "Quelle est la couleur du bois ?1422442503"
- //string(6) "marron"
- //flashdata question string(45) "Quelle est la couleur des fraises ?1422442446"
- //flashdata reponse string(5) "rouge"
- //Normalement, "$this->session->flashdata('question')" devrait afficher le var_dump($question) de l'affichage précédent.
- //Or, il apparaît qu'une nouvelle question a été cherchée.
- //On envoie la question à la vue
- $data = array();
- $data['MessageOk'] ="";
- $data['question'] = $question;
- if ($this->form_validation->run() == FALSE)
- {
- $this->layout->view('/themes/contact', $data);
- }
- else
- {
- $this->load->library('email');
- $this->email->from($this->input->post("mail"), $this->input->post("nom"));
- $this->email->to('**************@gmail.com');
- $this->email->subject("contact : ".$this->input->post("nom"));
- $this->email->message($this->input->post("message"));
- $this->email->send();
- $data['MessageOk'] = "<p class='messageOk'>Votre message à bien été envoyé.</p>";
- $this->layout->view('/themes/contact', $data);
- }
- }
- public function anti_bot($str)
- {
- if ($str == $this->session->flashdata('reponse'))
- {
- return TRUE;
- }
- else
- {
- $this->form_validation->set_message('anti_bot', 'fail à la question anti-bot');
- return FALSE;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement