X-Git-Url: http://git.cyclocoop.org/?p=ptitvelo%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fprive%2Fformulaires%2Fdater.php;h=9b6d65d5f86e94092306d1a584850cd6d17cc7fe;hp=5ad882854428af055c449dc325f56ffb38e58507;hb=e847eea4a82a7396dd0abf860f9b30d654f38629;hpb=d686c3e22e97dd46ef42bcd0f138c65083f8f232 diff --git a/www/prive/formulaires/dater.php b/www/prive/formulaires/dater.php index 5ad8828..9b6d65d 100644 --- a/www/prive/formulaires/dater.php +++ b/www/prive/formulaires/dater.php @@ -138,11 +138,12 @@ function formulaires_dater_identifier_dist($objet, $id_objet, $retour='', $optio function formulaires_dater_verifier_dist($objet, $id_objet, $retour=''){ $erreurs = array(); - foreach(array('date','date_redac') as $k) - if ($v=_request($k."_jour") AND !dater_recuperer_date_saisie($v)) + foreach(array('date','date_redac') as $k){ + if ($v=_request($k."_jour") AND !dater_recuperer_date_saisie($v, $k)) $erreurs[$k] = _T('format_date_incorrecte'); elseif ($v=_request($k."_heure") AND !dater_recuperer_heure_saisie($v)) $erreurs[$k] = _T('format_heure_incorrecte'); + } if (!_request('date_jour')) $erreurs['date'] = _T('info_obligatoire'); @@ -185,7 +186,7 @@ function formulaires_dater_traiter_dist($objet, $id_objet, $retour=''){ if (!_request('date_redac_jour') OR _request('sans_redac')) $set['date_redac'] = sql_format_date(0,0,0,0,0,0); else { - if (!$d = dater_recuperer_date_saisie(_request('date_redac_jour'))) + if (!$d = dater_recuperer_date_saisie(_request('date_redac_jour'), "date_redac")) $d = array(date('Y'),date('m'),date('d')); if (!$h = dater_recuperer_heure_saisie(_request('date_redac_heure'))) $h = array(0,0); @@ -210,15 +211,25 @@ function formulaires_dater_traiter_dist($objet, $id_objet, $retour=''){ /** * Recuperer annee,mois,jour sur la date saisie * @param string $post + * @param string $quoi * @return array */ -function dater_recuperer_date_saisie($post) { +function dater_recuperer_date_saisie($post, $quoi="date") { if (!preg_match('#^(?:(?:([0-9]{1,2})[/-])?([0-9]{1,2})[/-])?([0-9]{4}|[0-9]{1,2})#', $post, $regs)) return ''; - if ($regs[3]<>'' AND $regs[3] < 1001) - $regs[3] += 9000; + if ($quoi=="date_redac") { + if ($regs[3]<>'' AND $regs[3] < 1001) + $regs[3] += 9000; + + return array($regs[3],$regs[2],$regs[1]); + } + else { + $t = mktime(0,0,0,$regs[2],$regs[1],$regs[3]); + // si la date n'est pas valide selon mktime, la refuser + if (!$t) return ''; + return array(date('Y',$t),date('m',$t),date('d',$t)); + } - return array($regs[3],$regs[2],$regs[1]); } /**