Advertisement
saajuck

Untitled

Feb 9th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.55 KB | None | 0 0
  1.     public function contact()
  2.     {
  3. // je charge mes librairies
  4.             $this->load->helper(array('form', 'url'));
  5.             $this->load->library('form_validation');
  6.             $this->load->library('random_question');
  7.        
  8. //les règles de validation du formulaire
  9.             $this->form_validation->set_message('required', 'Le champ %s est requis');
  10.             $this->form_validation->set_error_delimiters('<li>', '</li>');
  11.             $this->form_validation->set_rules('nom', 'nom', 'required');        
  12.             $this->form_validation->set_rules('mail', 'Email', 'required|valid_email');
  13.             $this->form_validation->set_rules('objet', 'objet', 'required');
  14.             $this->form_validation->set_rules('message', 'message', 'required');
  15.             $this->form_validation->set_rules('bot', 'bot', 'callback_anti_bot');
  16.  
  17. //je pioche une question aléatoire
  18.             $num = rand() % 5;
  19.             $dateU = date('U');
  20.             $question = $this->random_question->question($num).$dateU;
  21.             $reponse = $this->random_question->reponse($num);
  22.  
  23. //Je mets en session la réponses pour la comparer avec la soumission via callback_anti_bot
  24.             $this->session->set_flashdata('reponse', $reponse);
  25.             $this->session->set_flashdata('question', $question);
  26.  
  27. //les echo pour vérifier mes variables
  28.             echo "<br>";
  29.             var_dump($question);
  30.             echo "<br>";
  31.             var_dump($reponse);
  32.  
  33.             echo "<br> flashdata question ";
  34.             var_dump($this->session->flashdata('question'));
  35.             echo "<br> flashdata reponse ";
  36.             var_dump($this->session->flashdata('reponse'));
  37.  
  38. //m'affiche dans un premier temps :
  39. //string(45) "Quelle est la couleur des bananes ? 1422442444"
  40. //string(5) "jaune"
  41. //flashdata question bool(false)
  42. //flashdata reponse bool(false)
  43.  
  44. //puis après soumission :
  45. //string(41) "Quelle est la couleur du bois ?1422442503"
  46. //string(6) "marron"
  47. //flashdata question string(45) "Quelle est la couleur des fraises ?1422442446"
  48. //flashdata reponse string(5) "rouge"
  49.  
  50. //Normalement, "$this->session->flashdata('question')" devrait afficher le var_dump($question) de l'affichage précédent.
  51. //Or, il apparaît qu'une nouvelle question a été cherchée.
  52.  
  53. //On envoie la question à la vue
  54.             $data = array();
  55.             $data['MessageOk'] ="";
  56.             $data['question'] = $question;
  57.            
  58.             if ($this->form_validation->run() == FALSE)
  59.             {            
  60.                 $this->layout->view('/themes/contact', $data);
  61.             }
  62.             else
  63.             {  
  64.                 $this->load->library('email');
  65.  
  66.                 $this->email->from($this->input->post("mail"), $this->input->post("nom"));
  67.                 $this->email->to('**************@gmail.com');
  68.                 $this->email->subject("contact : ".$this->input->post("nom"));
  69.                 $this->email->message($this->input->post("message"));  
  70.  
  71.                 $this->email->send();
  72.  
  73.                 $data['MessageOk'] = "<p class='messageOk'>Votre message à bien été envoyé.</p>";
  74.                 $this->layout->view('/themes/contact', $data);
  75.  
  76.             }
  77.        
  78.            
  79.        
  80.     }
  81.  
  82.     public function anti_bot($str)
  83.     {
  84.  
  85.         if ($str == $this->session->flashdata('reponse'))
  86.         {          
  87.             return TRUE;
  88.         }
  89.         else
  90.         {
  91.             $this->form_validation->set_message('anti_bot', 'fail à la question anti-bot');
  92.             return FALSE;
  93.         }
  94.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement