gaitagarci
Ok, .. no repitas mensajes . .pero continua en los que abras, aportando los datos que creas que falten ...
Sobre tu problema . .ya te comenté que revises los tipos. Tu variable $fecha ... es un timestamp de UNIX .. nada que ver con el formato de un campo DATE que ya te comenté como debes hacerlo.
Usa la función date() para darle el formato que corresponde a ese timestamp por el que corresponde a un DATE de Msyql .
De hecho .. ya usas "date()":
$fechaok = date( "YmdHis", .. etc ...)
pero no con el formato que requiere date que es algo tipo Y/d/m o algo similar
www.php.net/date
Hasta que no "formatees" ese timestamp que generas con tus varaibles al que corresponde al campo DATE de tu BD no se insertará en tu BD o te dará problemas con tipos.
Un saludo