ayuda con funcion mail()

Hola amigos,

tengo un problema con esta funcion mail():

olvidopass-action.php
<?php	
		$sql = "SELECT * FROM usuarios WHERE EMAIL = '".$_POST['email']."'" ;
		$res = mysql_query($sql) or die(mysql_error());
				
		if(mysql_num_rows($res)>0)
		{
				$r=mysql_fetch_assoc($res);		
				$mensaje="Hola ".$r['NOMBRE'].",\n\nEl equipo de www.Buscohueco.es ha recibido una petición para recuperar su contraseña. Si no es así entonces ignore este mensaje y si es posible bórrelo para mayor seguridad en su cuenta de www.buscohueco.es \n\nSi desea continuar con el proceso para recuperar su contraseña entonces pulse el siguiente enlace: www.buscohueco.es/nuevopass.php?idu=".$r['ID']."&codigo=".$r['CODIGO_VERIF'];
					
				mail($_POST['email'], "Recuperación de Contraseña en Buscohueco.es", $mensaje, "From: Buscohueco <[correo eliminado]>");
							
				die("<script>alert('Correo enviado con éxito.'); parent.location.href='index.php'</script>");
				exit;
		}else{
				echo("<script>alert('El email introducido es incorrecto.');parent.location.href='olvidopass.php'</script>"); 
		}
?>

tras darle al boton de enviar.... no pasa absolutamente nada! ni un mensaje... NADA!

tengo otros formularios parecidos a este en mi web.... y los he revisado buscando alguna diferencia... y lo único que cambia es el texto del mensaje. así que no entiendo! si puedierais ayudarme os lo agradeceria =)

Un saludo.
Hola:

Yo no veo ningún error, excepto que si MySQL devuelve más de un resultado vas a tener problemas. Cambia el if por if( mysql_num_rows( $res ) == 1 ) {}, pues así te aseguras de que sólo haya un resultado. También podrías hacer UNIQUE la columna email en la base de datos :P.

¿Esto lo estas probando en un servidor local o remoto? De cualquier forma, deberías revisar la consola de errores y los log de errores de PHP. La consola te sirve para ver los errores de Javascript (o cualquier librería basada en este) y depende del navegador que uses como la puedes ver. Los errores de PHP son algo más difíciles de ver, especialmente si estas en el servidor remoto pues no sabría como esta configurado.

En el servidor local Xampp, vete a xampp/apache/logs/error.log y/o xampp/php/logs/error.log, en esos archivos verás los errores y te darán alguna pista (o publícalo aquí).
Hola skaparate! =)

Lo tengo todo pensado para que no puedan registrarse dos usuarios con el mismo email. Mi proyecto está subido en un servidor gratuito: http://buscohueco.host22.com

este problema de al darle olvide contraseña es uno de los 3 que me quedan! y no lo entiendo la verdad! Está todo igual que en otros ficheros con funcion mail()

la consola de errores dice:

Fecha y hora: 11/09/2012 22:13:25
Error: La hoja de estilos http://www.hostinger.es/error_404 no se ha cargado porque su tipo MIME, "text/html", no es "text/css".
Archivo de origen: http://buscohueco.host22.com/Registro/olvidopass.php


otro problema es que como podrás comprobar en IE se me descuadran muxas cosas.... aparte de no cargar los fondos de mi cabecera y footer...
Ok, la consola no dice nada útil XD...

Intenta esto (ponlo al comienzo del script):

error_reporting( E_ALL );

Esto es para que muestre incluso las advertencias, pues solo mostrará los errores y los errores que impiden la ejecución del script (como por ejemplo, el uso de una variable sin ningún valor cuando no se espera).

Con Internet Explorer es realmente un problema ¬¬ (hay que hacer una campaña para que la gente deje de utilizarlo XD). Te aconsejo que busques en google sobre "responsive design", en inglés, pues no he visto muy buenos tutoriales en español. Igualmente, la traducción literal es "Diseño Responsivo", por si lo quieres ver en español. También podrías leer el libro The CSS3 Anthology 4th edition, también en inglés y relacionado con el mismo tema. Yo tampoco (hasta hace poco) entendía por qué se veían distintos los diseños en los navegadores, pero este último libro me ayudo mucho (si quieres te lo paso, mándame un Mensaje Privado si lo quieres).

Otra cosa que debes aprender y, sobre todo, entender, es la diferencia entre los elementos en línea y los elementos de bloque. Creo que lo expliqué en otra publicación del Foro general :P.

A todo esto, ¿el script funciona si quitas todo lo relacionado con mysql?

Ahí me avisas si muestra algún error nuevo (para poder avanzar :P).
Bueno pues he hecho las dos pruebas que me comentaste:

en una quité(comenté) todo lo relacionado con mysql y funcionó! recibí el correo con un mensaje simple "Hola"(ya que todo el código mysql es para personalizar un poco el mensaje nada mas), apareció el alert de mensaje enviado, y cargó la página index... así que revisé todo el código php.... y no encontré nada!

y ahora mismo está puesto este código por si ves algo nuevo en la consola de errores: error_reporting( E_ALL ); yo no vi nada... pero mi experiencia con la consola de errores no es muy buena aun =)

puse el siguiente código para ver si saltaba el echo""; y nada! impresionante k no funcione este echo:

<?
                error_reporting( E_ALL );
		$sql2 = "SELECT * FROM usuarios WHERE EMAIL = '".$_POST['email']."'" ;
		echo $sql2;   NO MUESTRA NADA!!! Y SIMPLEMENTE ESTOY IMPRIMIENDO UNA CADENA... AFUSS
		$res2 = mysql_query($sql2) or die(mysql_error());
				
		if(mysql_num_rows($res2)>0)
		{...............

Si encuentras algo comentamelo ;) Saludoss
Primero, una aclaración: la consola de errores solo muestra los errores de JavaScript y los errores como el 404, nota found, pero no PHP. error_reporting te permite mostrar mayor cantidad de errores directamente en la pagina.

En cuanto a tu problema... puede ser que no estén llegando los datos necesarios. Intenta con print_r( $_REQUEST ) y asegurate de obtener los datos necesarios. De cualquier forma, el problema esta en que no pasas del if, por eso no enviar el email. También revisa la conexión con la base de datos.

Saludos.