Php formulaire date de naissance

Fermé
jupiter - 11 août 2009 à 17:33
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 11 août 2009 à 18:19
Bonjour,

voila j ai un script avec un formulaire en html et un script en php qui insère dans ma base les données entrer par les visiteurs il y a notamment un champ date de naissance mais c est un pu flou pour moi je souhaite que la dat soit au format :

DD/MM/YYYY

j ai récupérer un script php permettant de contrôler cela mais je me pose quelques questions :

1) quel type doit avoir mon champ naissance dans ma table ?
2) comment utiliser le script récupérer pour l'intégrer au mien ?

mon script :

<?php
if (isset($_POST['envoyer'])) {

$result = mysql_query("SELECT COUNT(*) FROM login WHERE ss='".$_POST['ss']."'");
$count = mysql_result($result,0);
if($count== 0)
{

foreach($_POST as $index => $valeur) {
$$index = mysql_real_escape_string(trim($valeur));
}
$sql = "INSERT INTO login VALUES ('', '".$nom."', '".$prenom."','".$naissance."', '".$ss."')";
$res = mysql_query($sql);
if ($res) { ?>
<meta http-equiv="refresh" content="0;url=confirm_login.php" />
<?php
}

}
else {
?>
<meta http-equiv="refresh" content="0;url=doublon.php" />
<?php

}
}


?>

le script récupérer :

if (strlen($naissance) == 0) {
$errs["naissance"][] = "La date de naissance est obligatoire";
} else if (!ereg("^([0-9]){2}/([0-9]){2}/([1-2])([0-9]){3}$", $naissance)) {
$errs["naissance"][] = "La date de naissance n'est pas au bon format.";
}

Merci de votre aide

1 réponse

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
11 août 2009 à 18:19
Hello !
Quand c'est flou dans la tête le mieux c'est de bien se fixer les idées en lisant la doc officielle, en plus ça donne plein d'idées.
- manipuler une date avec PHP (j'ai choisi cette fonction, mais il y en a plein d'autres) : https://www.php.net/manual/fr/function.date.php
- gérer des dates et heures dans une BDD MySQL : http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-types.html

Ces deux liens parlent d'un format qui s'appelle timestamp, et qui est une façon pratique de manipuler des dates/heures. Puisque ça existe, autant s'en servir, n'est-ce pas ;)

Concrètement, un timestamp est un nombre, du genre 1250006024, qui représente le nombre de secondes écoulées depuis une date qu'on appelle l'Heure POSIX et qui a été fixée au 1er janvier 1970 à 00:00:00.
Ça a l'air barbare, mais beaucoup d'applications savent manipuler ce format, et c'est le cas de PHP avec la fonction date().

Un exemple :
tu as récupéré un timestamp de ta base MySQL, et tu l'as stocké dans la variable $timestamp.
<?php
// afficher le timestamp tel quel (pas très utile)
echo $timestamp;
// afficher le timestamp au format qui t'intéresse, DD/MM/YYYY
echo date("d/m/Y", $timestamp);
?>

Et je ne t'aiderais pas si j'oubliais de te dire comment faire l'inverse, c'est-à-dire transformer une date en timestamp pour la stocker. Il s'agit de la fonction strtotime(), https://www.php.net/manual/fr/function.strtotime.php

Dernier point : attention à ta version de PHP ! Il y a des options qui ne fonctionnent que depuis PHP 5.0 ou supérieur.

Note que je t'encourage à utiliser le format TIMESTAMP sous MySQL mais que j'ai autrefois utilisé les formats DATE et DATETIME et qu'ils sont aussi bien. À toi de voir ;)
4