Tengo un problema y es que no me funciona el envio del resultado de un cuestionario,me envia la ip del visitante no lo que yo quiero que es lo ke el elige.Tengo el mail.html y el mail.php colgados en la misma ruta de mi servidor.
Os adjunto el php y el html..Por favor ayuda please..
Código HTML:
<!-- Encabezamiento del formulario. Antes de enviarlo, ejecuta la rutina de validación JScript --> <!-- Si el JScript retorna falso, no se produce el envío de correo --> <!-- Modificar la trayectoria del scipt mail.php si lo tenemos en otro directorio ACTION="directorio/mail.php" --> <!-- para ASP, utilizar ACTION="mail.asp" --> <!-- <FORM name = "formulario" ACTION="mail.asp" METHOD="POST" onSubmit="return validate1(this)"> --> <FORM name = "formulario" ACTION="????????.observamasquemira.???/mail.php" METHOD="POST"> <!-- Los nombres de campos correo, y nombre, son obligatorios para todos los formularios --> <font color="#000000" size="2"><b> Correo</b></font> <input type="text" name="correo" size="52"> <BR> <FONT color="#000000" size="2"><b>Nombre</b></FONT> <INPUT TYPE="text" name="nombre" size="40"> <BR> <!-- El resto de campos, puede tener un nombre cualquiera, mejor alguno indicativo--> <font color="#000000" size="2"><b>Asunto</b></font> <input type="text" name="asunto" size="52"> <!-- Puedes poner el asunto del correo, y otros campos como de tipo oculto que el usuario no ve --> <!-- <input type="hidden" name="asunto" VALUE="Asunto que quieras poner en el mensaje"> --> <BR> <!-- Campo de lista de selección --> <FONT size="2"><b>Página web</b></FONT> <SELECT name="selectweb"> <!-- Campo seleccionado inicialmente --> <OPTION value="Ninguna" selected>Ninguna</OPTION> <OPTION value="Chollolinks">Chollolinks</OPTION> <OPTION value="Eurogratis">Eurogratis</OPTION> <OPTION value="Mycapo">Mycapo</OPTION> <OPTION value="EBA">EBA</OPTION> <OPTION value="Walpapers">Walpapers</OPTION> <OPTION value="Animaciones">Animaciones</OPTION> <OPTION value="Cholloweb">Cholloweb</OPTION> <OPTION value="Otra">Otra</OPTION> <!-- útil para obtener un ancho mayor para la lista de selección (toma la cadena mas grande) --> <!-- otra alternativa es utilizar estilos css <SELECT name="selectweb" style="width:300px;"> donde px son pixeles, y 300 su ancho o incluso puedes hacerlo mas complejo, y utiliza estilos predefinidos, pero se sale del tema estudia Cascade Style Sheets--> <OPTION>__________________</OPTION> </SELECT> <BR> <!--Campo que puede omitir, añadir, o modificar a conveniencia --> <FONT size="2"><b>Valoracion</b></FONT> <!-- Campo cuadro selección, permite seleccionar varios valores para este caso, no es muy apropiado, pues puede seleccionarse mas de una valoración. Está, a título ilustrativo. Sería mas correcto utilizar un grupo de opciones. Se suele usar el ejemplo de gustos en colores, frutas, ... para escoger varios gustos a la vez--> <!-- podríamos omitir el valor, value="x ", para esta función nos basta con un nombre descriptivo ó utilizar el mismo nombre para todos los cuadros. Entonces, si que necesitamos especificar un valor --> <B> <!-- Inicialmente, tenemos seleccionado No sabe, no contesta--> <INPUT name="Ns/Nc" type="checkbox" id="Ns/Nc" value="checkbox" checked> Ns/Nc <INPUT name="v1" type="checkbox" id="v1" value="1"> 1 <INPUT name="v2" type="checkbox" id="v2" value="2"> 2 <INPUT name="v3" type="checkbox" id="v3" value="3"> 3 <INPUT name="v4" type="checkbox" id="v4" value="4"> 4 <INPUT name="v5" type="checkbox" id="v5" value="5"> 5 </B> <BR> <!--Campo que puede omitir, añadir, o modificar a conveniencia --> <FONT size="2"><b>Consulta</b></FONT> <!--Grupo de Campo Alternos. Solo permite seleccionar un estado siempre que tengan el mismo name, en este caso grupo de opciones --> <LABEL> <B> <!--Inicialmente, tenemos seleccionado el valor General. Solo se envía un valor, el seleccionado--> <INPUT type="radio" name="GrupoOpciones" value="General" checked> General</B></LABEL> <B> <LABEL> <INPUT type="radio" name="GrupoOpciones" value="Cambio Enlaces"> Cambio Enlaces</LABEL> <LABEL> <INPUT type="radio" name="GrupoOpciones" value="Publicidad"> Publicidad</LABEL> </B> <BR> <!--Campo de líneas múltiples de 50 columnas (caracteres) y 10 filas (líneas) --> <textarea name="mensaje" cols="50" rows="10">Contenido de tu mensaje </textarea> <BR> <!-- Campo oculto con la dirección de la página de gracias final--> <!-- Permite individualizar la página final para cada formulario--> <INPUT TYPE="hidden" NAME="pagina_gracias" VALUE="????.buscarportal.???/anuncios/gracias.html"> <!-- Puedes quitar variables del script, como la página de error y ponerlo como un campo oculto con el mismo nombre, pero sin $ en el caso del php. Recuerde, que php, distingue entre mayúsculas y minúsculas. --> <!--Lo tengo así porque resulta mas sencillo. Lo importante del script, es que maneja cualquier número de campos sin modificar el script --> <!-- Botón de enviar . Los botones siempre al final, para que los elimine nuestro script php--> <INPUT name="submit" TYPE="submit" VALUE="Enviar"> </FORM>
Código PHP:
<?php
##################################
## © Hector Fernandez Pereda 2003 ####
#################################
## Script formulario de correo mail.php ##
#################################
## VARIABLES
## Dirección de tu correo
$micorreo="contacto@observamasquemi?????";
## Asunto axiliar si no lo introduce un asunto que identifique la procedencia del correo.
$xasunto="Correo desde tu pagina";
## Pagina final de gracias. Si el formulario no incluye este campo oculto del formulario.
$gracias_defecto="??????????????buscarpo????";
## Página final si se produce un error al enviar el correo
$error_correo="??????.????????????????";
## variable auxiliar, que produce un salto de línea
$retorno="\r\n";
## CABECERAS DE CORREO
## Diversas cabeceras para el correo. Luego, lo usaremos para enviar el correo.
## $nombre $correo son variables que contienen los valores de: nombre y correo del formulario.
$headers = "MIME-Version: 1.0\r\n" ;
## campos y variables nombre, $nombre y correo $correo. No pueden ser modificados
## Han de mantenerse en el formulario para utilizar el mismo script con distintos formularios
$headers .= "From: $nombre<$correo>\r\n";
## Responder al correo
$headers .= "Reply-To: $correo<$correo>\r\n";
## Otras cabeceras que pueden ponerse si ocurren problemas u omitirse si todo va bien.
## Obligatoriamente, cada elemento de la cabecera termina en \r\n Nueva línea.
## $headers .= "X-Mailer: PHP/" . phpversion();
## $headers .= "X-Sender: $correo<$correo>\r\n";
## $headers .= "Return-Path: <$correo>\r\n";
## $headers .= "Cc: $nombre<$correo>\r\n";
## CUERPO DEL MENSAJE INICIO
## Obtención de la IP del visitante
## Empezamos a contruir el mensaje final, sumando los elementos del mensaje
$mfinal.="IP visitante: ";
## Guardamos la IP del visitante
$mfinal.=$HTTP_SERVER_VARS['REMOTE_ADDR'];
$mfinal.=": ";
## Y el puerto del usuario
$mfinal.=$HTTP_SERVER_VARS['REMOTE_PORT'];
## añadimos dos retornos de línea
$mfinal.=$retorno;
$mfinal.=$retorno;
## CUERPO DEL MENSAJE AÑADIDO DE CAMPOS AL MENSAJE
## $vareliminar Número de botones del formulario y campos ocultos (últimos elementos) + 1 --> en este caso (1+1)
## Si queremos eliminar del mensaje el campo oculto de la página final $vareliminar=3;
$vareliminar=2;
$claves_array=array_keys($HTTP_GET_VARS);
for ($i=0;$i<=(count($HTTP_GET_VARS)-$vareliminar);$i++){
$nombrevar=$claves_array[$i];
$mfinal .= $nombrevar;
$mfinal .= ": ";
$mfinal .= $HTTP_GET_VARS[$nombrevar];
$mfinal .= $retorno;
$mfinal .= $retorno;
}
## Si no hay asunto, o no contiene nada, le damos al email un asunto defecto
if (is_null($asunto)){ $asunto2="coRreo desde la web";}
## Si hay asunto, añadimos un prefijo propio para identificar que es correo desde la web.
else { $asunto2 ="Asunto-> $asunto"; }
## ENVÍO DEL CORREO
## Para finalizar, envíamos el correo, y comprobamos el resultado
$resultado=mail($micorreo, $asunto2, $mfinal, $headers);
## Si quisiésemos enviar un mensaje de acuso de recibo, añadimos esta línea, sabiendo que:
## tenemos que asignar estas variables $asuntoreply (Asunto), $mreply (mensaje), $headers2(mensaje)
## de modo similar a como hemos construido las variables anteriores
## $resultado2=mail($correo, $asuntoreply, $mreply, $headers2);
## COMPROBACIÓN
## Si no se ha podido enviar el correo.
if ($resultado ==true)
{
## Si no hay página de gracias carga las página de defecto
if (is_null($pagina_gracias)){ header( "Location: $gracias_defecto" );}
else{
## Si hay página de gracias, cárgala
header( "Location: $pagina_gracias" );
}
}
## Si se ha producido un error, advierte al usuario
else header( "Location: $error_correo" );
?>
un Saludo y gracias