preg_replace

Hola, estoy intentando validar un campo de un formulario para que solo se pueda ingresar "numeros" y la "/" usando el preg_replace.
Lo tengo asi: preg_replace("[[0-9]/]","",$_POST ['fecha']) pero no funciona.
¿Como sería?
Gracias
Lo mejor de caerse al tropezar, es volverse a levantar.
lo primero que se necesita saber es cual es el formato de tu fecha, dia/mes/año o año/mes/dia por ejemplo: 10/15/2011 para validar la fecha anterior se utilizaria algo como:

if (preg_match('/^\d{1,2}\/\d{1,2}\/\d{4}$/', $fecha)) {
echo "La fecha Es Correcta";
}

pero lo anterior solo comprueba que tenga el forma correcto, mas no que la fecha sea correcta, lo anterior dejaria pasar algo como esto: 99/99/9999 , pero todo depende del formato de tus fechas, aunque en lo personal para introducir fechas utilizaria campos preestablecidos, asi el usuario solo tendria que seleccionar los numeros a la fecha que decea, y no podria introducir mas que lo permitido.
Lo que me interesa es el formato ya que puede ser una futura fecha.
Pero no consigo poner asi 2/10/12, por ejemplo. Y he tenido que ponerlo asi 2-10-12.
Soy muy nuevo en esto del php ¿que son los campos preestablecidos?
Lo mejor de caerse al tropezar, es volverse a levantar.
gjulian escribió:Hola, estoy intentando validar un campo de un formulario para que solo se pueda ingresar "numeros" y la "/" usando el preg_replace.
Lo tengo asi: preg_replace("[[0-9]/]","",$_POST ['fecha']) pero no funciona.
¿Como sería?
Gracias

Hola gjulian, debes de saber que preg_replace realiza una búsqueda y la sustituye por una expresión regular y bien como dice nuestro compañero serverdns preg_match realiza una comparación con una expresión regular.

No tengo nada de experiencia con preg_match, así que te dejo la definición y la utilidad y uso de la función.
Pienso, comparto, aprendo, luego creo
Me refiero a campos a los que tu les pones un valor para que el usuario elija, generalmente del tipo select, algo como:

<select name="mes" size="1">
<option>01</option>
<option>02</option>
<option>03</option>
</select>

claro que con este metodo en lugar de usar una variable para la fecha, serian tres, dia mes y año, a los cuales tu les asignarias el rango de valores, para mes desde 01 hasta 12, asi el usuario solo tendria que formar la fecha que decea, incluso para fechas futuras, para mi seria mas sensillo hacer eso.
Gracias serverdns y Áldaron, por vuestras aclaraciones y ayuda.
Ahora está bastante mejor. Aunque me gustaría saber si hay alguna funcion que impida que en los campos "lugar de salida","destino" y "recorrido" puedan poner cosas sin sentido, como 'ndkfnm' o cosas así.
¿Conoceis alguna.
Lo mejor de caerse al tropezar, es volverse a levantar.
No gjulian, lo único que puedes limitar en un campo de texto son el número de caracteres, definir si es alfabético, alfanumérico o numérico y restringir que tipo de contenido se introduce, como en tu primera duda.

Pensándolo mejor, podrías hacer una clase PHP con preg_match() para realizar dicha función que dices, pero morirías loco antes de terminarla y aún habiendola terminado los usuarios te seguirían dando dolores de cabeza xD, ya que hay un montón de convinaciones posibles de caracteres que no tienen sentido, como por ejemplo: def312, knmrg,013unf...
Pienso, comparto, aprendo, luego creo
Me esta fallando mucho el server de CCTW.
Gracias Áldaron, pero me suponía algo así.
Lo mejor de caerse al tropezar, es volverse a levantar.