Deberias "obligar" al usuario a ingresar la fecha en un formato, hay formas de hacerlo... y validar que esa forma es la que recibes en php sino mandas un mensaje de error "formato erroneo debe ingresar la fecha en tal <formato>". Asi te aseguras que puedes procesar la fecha y pasarsela a mysql. Por ejemplo recibirla con el formato español dd-mm-yyyy, puedes hacer esto
Código :
<?php
$date = "01-10-2007";
$mkTime = strtotime($date);
$mkTimeToMysql = date("y-m-d", $mkTime); // salida: 2007-10-01
?>
Aunque ese codigo funciona con mucho de los formatos conocidos, es bueno que lo recibas con un formato conocido, para que strtotime pueda convertirlo en la marca de tiempo que esperas.
Para obligar al usuario de escribir un formato puedes apoyarte de calendarios hechos en javascript (solo busca en google), pero no olvides validar ese formato pues asi te cuidas de "hackers".
saludos