CodeIgniter Comment checker la validité d'une date

Fermé
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 - Modifié par roms95200 le 7/01/2017 à 17:33
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 - 9 janv. 2017 à 21:05
Bonjour,

J'ai fait un formulaire que je dois envoyer en bdd sous Codeigniter mais j'aimerais faire des vérifications avant d'envoyer les données en bdd.

J'aimerais checké si la date de début est inférieure à la date de fin && supérieure à la date d'aujourd'hui

Ne connaissant pas tres bien CodeIgniter je ne sais pas où et comment placer ces verifications.

Seriez vous m'aider ?

Merci d'avance

2 réponses

roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7
8 janv. 2017 à 14:22
Personne ne pourrait m'aider ??
0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
9 janv. 2017 à 07:36
Bonjour

Je ne connais rien à codeigniter, ni à Php, mais il faut bien que tu saisisses tes dates d'une façon ou d'une autre (zone de texte, calendrier, ect....).
C'est pendant cette saisie qu'il faut faire tes vérifications.
Dans le cas d'un calendrier, tu peux placer la date de fin par défaut à "demain" ou au jour suivant celui saisie pour le début, et si le contrôle le permet, interdire la saisie plus tôt.
0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7
Modifié par roms75001 le 9/01/2017 à 21:06
Bonsoir,

J'ai fais ça dans mon controlleur :

public function create()
{
     
    $this->load->helper(array('form', 'url'));
    $this->load->library('form_validation');
 
 
    // On teste si le formulaire est valide
    $date_deb=$this->input->post('date_END');
 
    $this->form_validation->set_rules('name_competition', 'Nom du concours', 'required');
    $this->form_validation->set_rules('date_START', 'Date de début', 'required');
    $this->form_validation->set_rules('date_END', 'Date de fin', 'required');
    $this->form_validation->set_rules('create_accueil', 'Page d\'accueil', 'required');
   //$this->form_validation->set_rules('create_prix', 'Page prix', 'required');
    $this->form_validation->set_rules('create_rules', 'Page régles',
        'required');
 
    // Si le formulaire n'est pas valide on le ré-affiche
    if ($this->form_validation->run() == FALSE)
    {
            $this->load->view('Admin/headerAdmin');
            $this->load->view('Admin/menuAdmin');
            $this->load->view('Admin/CreerConcours');
            $this->load->view('Admin/footerAdmin');
    }
 
    // On vérifie la coherance des dates saisies
    elseif ($this->input->post('date_START') < date("Y-m-d") || $this->input->post('date_START') > $this->input->post('date_END')){
 
            $this->load->view('Admin/headerAdmin');
            $this->load->view('Admin/menuAdmin');
            $this->load->view('Admin/CreerConcoursErreur');
            $this->load->view('Admin/footerAdmin');
    }
 
 
    // Si il est valide on l'envoi en bdd
    else
    {      
            //Transfering data to Model
            $this->load->model('Concours_model');
            $this->Concours_model->add_concours();
            $this->load->view('Admin/formsuccess');
    }
 
}


Ça fonctionne mais du coup j'ai du créer deux vue :

"CreerConcours" et "CreerConcoursErreur"

Dans la vue "CreerConcoursErreur" c'est exactement le même code que dans la vue "CreerConcours" sauf que j'ai rajouté un <h2> pour indiquer qu'il y a une erreur sur les dates.



Y a t-il un moyen plus optimisé pour faire ça ?
0