Justi 31 de marzo de 2008 a las 13.25
   Imprimir artículo
elWebmaster.com

Taller de PHP: Procesar un formulario (Recibiendo los datos)


Taller de PHP - Procesar un formulario PHP¬°Hola, bienvenidos a la clase n√ļmero once del Taller de PHP! Ya vimos todo el frontend del formulario, ahora nos resta ver como levantamos las variables enviadas atrav√©s del mismo con PHP.

Hay que tener mucho cuidado en esta parte, como en general, dado que un peque√Īo descuido al tipear el c√≥digo puede provocar un error al intentar enviar los datos a trav√©s del formulario. ¬°Sigue atentamente las indicaciones y no tendr√°s problemas!

Recibiendo los datos

Antes de ver como recibimos los datos, veamos como nos quedó el formulario de contacto completo. Supongamos que lo tenemos en el archivo contacto.php

<form action="contacto_script.php" method="post" id="contacto">

<label for="input_nombres">Nombre y Apellido</label><br />
<input id="input_nombres" type="text" name="nombres" value="" /><br /><br />


<label for="input_email">Email</label><br />
<input id="input_email" type="text" name="email" value="" /><br /><br />

<label for="input_sexo">Sexo</label><br />
<select id="select_sexo" name="sexo">
<option value="M">Masculino</option>
<option value="F">Femenino</option>
</select><br /><br />

<label for="textarea_mensaje">Mensaje</label><br />
<textarea id="textarea_mensaje" name="mensaje" rows="5" cols="50"></textarea><br /><br />

<input type="submit" name="submit" value="Enviar consulta" />

</form>

Este formulario será enviado al archivo contacto_script.php por el método post. Ahora la pregunta del millón es qué contiene el archivo contacto_script.php.

contacto_script.php

Este archivo va a interpretar los datos enviados a través del formulario. Para ello lo que vamos a hacer es primero ver si llegaron todos los parámetros y agregarlos cada uno a una variable.

<?
// definimos las variables o marcamos el error
if ( !empty($_POST['nombres']) ) $nombres = $_POST['nombres']; else $error = true;
if ( !empty($_POST['email']) ) $email = $_POST['email']; else $error = true;
if ( !empty($_POST['sexo']) ) $sexo = $_POST['sexo']; else $error = true;
if ( !empty($_POST['mensaje']) ) $mensaje = $_POST['mensaje']; else $error = true;
?>

Expliquemos paso por paso.

Lo primero que hacemos es preguntar si NO está vacío el parámetro enviado por post, ya que la función empty pregunta si esta vacío (va a responder si el contenido es un string vacio, un cero o un false) pero como le anteponemos el ! estamos preguntando por lo contrario.

En caso de que nuestra condici√≥n se cumpla, asignamos a una variable el par√°metro recibido, caso contrario definimos una variable llamada error con contenido TRUE. Esta √ļltima nos va a servir para hacer que todos los campos del formulario sean obligatorios a la hora de enviarse.

Perfecto, ya tenemos definidas nuestras variables ahora vamos a verificar que no exista la variable error, y si existe redireccionamos a una p√°gina con el mensaje de error.

// verificamos que no exista un error
if ( !empty($error) ) {
header( 'Location: contacto_error.php' );
die;
}

¬ŅQu√© esta pasando ac√°?

Lo mismo que antes, preguntamos si no está vacío error, si la respuesta a esta pregunta es verdadera, tenemos un problema, uno de los campos del formulario no fue completado, por lo que el script de php lo vamos a frenar y vamos a redireccionar al usuario a una página que contenga el mensaje de error, esta página va a ser en este caso contacto_error.php.

La redirecci√≥n la hacemos por medio de la funci√≥n header( ‘Location: …’ ) que va a hacer que recargue la nueva p√°gina que le estamos pasando, y tenemos que poner la linea siguiente con el die para que se frene el script en ese momento y pueda ejecutarse la funci√≥n header, ya que si no frenamos el script, primero va a leer y ejecutar todo y despu√©s va a tener acci√≥n el header( ‘Location: …’ ).

La p√°gina contacto_error.php puede contener simplemente un mensaje que diga “El formulario de contacto no ha podido ser enviado, por favor aseg√ļrese de que haya completado todos los campos correctamente.” y un link a la p√°gina del formulario de contacto para que vuelva a enviarlo.

Cuerpo del Mensaje

Nos resta por definir el cuerpo del mensaje que queremos recibir a través del formulario de contacto, el mismo puede ser algo así:

// definimos el cuerpo del email
$cuerpo = "
De: $nombres \n\r
Email: $email \n\r
Sexo: $sexo \n\r
Mensaje: \n\r
$mensaje
";

Como el e-mail llega como texto plano, debemos definirle los saltos de linea con \n\r.

Perfecto, ya definimos las variables, ya nos aseguramos que no tengo ning√ļn error, creamos el cuerpo del email, ahora lo que vamos a hacer es enviar el mensaje que recibimos atrav√©s del formulario a nuestra casilla de email. Para ello vamos a utilizar una funcion de php que se llama mail() :)

Función mail

mail ( string $para , string $asunto , string $mensaje );

esta función va a responder true o false, dependiendo si se pudo ejecutar correctamente, en nuestro script quedaria algo así:

// enviamos el email
if ( mail( 'direccion.del.destinatario@email.com','Recibiste un mensaje a través del formulario de contacto de tu sitio',$cuerpo ) ) {
header( 'Location: contacto_exitoso.php' );
die;
} else {
header( 'Location: contacto_error.php' );
die;
}

Fíjense que en el primer parámetro de la función mail agregamos a dónde queremos que se envíe el mensaje, en el segundo parámetro ponemos el asunto y en el tercero el cuerpo que definimos anteriormente.

Si la condici√≥n es verdadera, es decir, el e-mail se envi√≥ correctamente redireccionamos a una nueva p√°gina llamada contacto_exitoso.php, la cual contendr√° un mensaje del estilo: “El e-mail ha sido enviado correctamente, a la brevedad nos pondremos en contacto con usted.”

Y en caso de que no se cumpla redireccionamos a la p√°gina de error.

Script Completo

El script completo quedaría algo asi:

<?


// definimos las variables o marcamos el error
if ( !empty($_POST['nombres']) ) $nombres = $_POST['nombres']; else $error = true;
if ( !empty($_POST['email']) ) $email = $_POST['email']; else $error = true;
if ( !empty($_POST['sexo']) ) $sexo = $_POST['sexo']; else $error = true;
if ( !empty($_POST['mensaje']) ) $mensaje = $_POST['mensaje']; else $error = true;

// verificamos que no exista un error
if ( !empty($error) ) {
header( 'Location: contacto_error.php' );
die;
}

// definimos el cuerpo del email
$cuerpo = "
De: $nombres \n\r
Email: $email \n\r
Sexo: $sexo \n\r
Mensaje: \n\r
$mensaje

";

// enviamos el email
if ( mail( 'direccion.del.destinatario@email.com','Recibiste un mensaje a través del formulario de contacto de tu sitio',$cuerpo ) ) {
header( 'Location: contacto_exitoso.php' );
die;
} else {
header( 'Location: contacto_error.php' );
die;
}

?>

<< CLASE ANTERIOR  

CLASE SIGUIENTE >>


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (126)

  1. freeman dice:

    q tal.. S aludos ….

    solamente tengo una pregunta en donde puedo placticar PHP… en dreaw! o en dode,…

    por que lo hago escrito pero si es platico mucho mejor para poder implementar todo y jugar con todo….

    ok.

    nos vemos espero su respuesta—………

    SALUDOS A TODOS…..

    ATTE: FREEMAN…..

    mi email por los que me quierna agregar….?

  2. Diego BUR dice:

    Muy bueno…lo voy a bajar y loprobare en un SItio q estoy haciendo

  3. Debi dice:

    ¬°Hola, Freeman!
    PHP es un lenguaje de programación que puedes escribir en un simple blog de notas (notepad), también puedes utilizar el Dreamweaver

  4. Luis Alfonso dice:

    Que tal, Te felicito por la loable labor que haces al impartir cursos de php, entre otros, me gusta la forma en que lo ense√Īas pues lo haces en un nivel entendible. Te comento actualmente estoy aprendiendo php de un libro que compre y lo complemento con lo que tu ense√Īas, en el tema de los formularios me gustaria que nos explicaras un poco hacerca de enviar archivos, tb procesando archivos, bueno te comente que ya estoy aprendiendo un poquito asi que si puede servir de algo te envia algunas cosas sobre estos temas, solo dime si a tu correo o aqui mismo los escribo, saludos y hasta pronto, estamos para servios!!!

  5. kendrick dice:

    Hola, tengo dudas en cómo insertar un comentario y que este aparezca en una dirección de correo para ser valorado antes de publicarlo. Saludos

  6. Justi dice:

    Hola Kendrick, todav√≠a no expliqu√© lo que me estas preguntando jeje, pero en cuanto arranque con las clases que hacen referencia a la creaci√≥n de un “blog” lo voy a explicar.
    Tenes que tener un poquito de paciencia solamente, gracias por seguir el curso.

    Saludos.

  7. Nelson Obando dice:

    hola, te escribo porque, cuando ejecuto el archivo contacto.php todo bien, pero cuando presiono el boton enviar consulta(obvio con todos los datos ingresados), sale el siguente error:

    Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in E:\AppServ\www\Clase11\contacto_script.php on line 23

    eh instalado, un servidor SMTP del mismo Windows, pero daba el mismo error, he bajado uno que se llama QK SMTP Server 3, y como que funciona (muestra el archivo contacto_exitoso.php), pero en realidad no envia nada.
    Que es lo que podria hacer para darle solucion al problema, que imagino no sere el unico que lo tiene, GRACIAS!!

  8. Nelson Obando dice:

    bueno, y era solo ese el problema cuando solo ponia el if sin else porque de lo contario tambien me sale el error anterios junto al segundo:

    Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in E:\AppServ\www\Clase11\contacto_script.php on line 23

    Warning: Cannot modify header information – headers already sent by (output started at E:\AppServ\www\Clase11\contacto_script.php:23) in E:\AppServ\www\Clase11\contacto_script.php on line 26

    bueno espero su ayuda, GRACIAS!!!

  9. José Luis dice:

    Hola, Justi
    Estoy encantado con tu curso, hasta ahora lo he seguido sin ning√ļn problema.
    Sin embargo, en esta clase, el scrip de contacto_scrip.php no me funciona.

    Me env√≠a este mensaje ” Warning: Cannot modify header information – headers already sent by (output started …etc ” que traducido viene a ser “Advertencia: No puede modificar la informaci√≥n de header – headers ya enviados por (la salida comenzada …etc. ”

    Si en el condicional
    “if ( !empty($error) ) {
    header( ‘Location: contacto_error.php’ );
    die;
    }”
    sustituyo
    “header( ‘Location: contacto_error.php’ );
    die;”
    por otra instruccio√≥n, por ejemplo “echo $nombres;” y en el header del final hago lo mismo, la instrucci√≥n se ejecuta y el correo es enviado sin novedad.
    Te agradecería me explicaras qué hago mal.
    Aprovecho para saludarte y felicitarte por tu curso

  10. Angeles dice:

    Estoy probando esto del envio de los datos por correo, y aparentemente no existe problema, sin embargo al realizar una prueba no llega a mi email, que estar√° pasando???
    Por favor es para un proyecto, gracias!!!!

  11. Lucrecia dice:

    Hola, estuve probando este codigo porque lo necesito para una pagina que estoy haciendo pero no me anda, cuando apreto el boton enviar me tira una pantalla en blanco y no hace nada ni me manda el correo ni me muestra la pagina contacto_error.php ni la de contacto_exitoso.php.
    Te agradeceria si me pudieras ayudar con esto porque lo necesito. Gracias.

  12. Justi dice:

    Hola nelson,

    El error que te esta tirando es un problema con el envío de emails del servidor, tendrías que ponerte en contacto con los encargados del servidor para que hagan funcionar la función mail de php.

    Con respecto al error de “Warning: Cannot modify header information – headers already sent by …”, eso es porque no se puede mostrar en pantalla absolutamente nada antes de un “headar location”, y el mismo error anterior, el del mail es el que esta disparando el error del header location. Solucionando uno se solucionan los dos.

    Saludos.

  13. Justi dice:

    Hola José Luis,

    El error que te tira el “header location” es como le explique a Nelson, porque no podes enviar a pantalla aboslutamente nada antes del “header location”, es por eso que casi siempre se coloca lo mas arriba de todo, si tenes un “echo” o algo en html antes que el “header” te va a tirar el error ese.

    Saludos.

  14. Justi dice:

    hola Angeles,

    El que no te tire ning√ļn error el script pero nunca te llega el email es por como esta configurada la funcion mail de php, te recomiendo que te pongas en contacto con la gente que te brinda el servicio de hosting para comunicarles este problema (que es bastante com√ļn).

    Saludos.

  15. Justi dice:

    Lucrecia,

    Pueden estar ocurriendo dos posibles cosas ante tu problema, la primera que el formulario no se este enviando a donde se tiene que enviar, asegurate que el action del formulario apunte bien. Y la segunda es que tenga un error el php y el servidor este configurado para que no muestre ning√ļn error.

    Una forma de debuggear estos problemas, es poner arriba de todo en el script un echo “hola”; e ir bajando esta linea de a poco, para ver hasta donde llega la ejecucion del script y hasta donde no.

    Saludos.

  16. Camilo dice:

    El formulario me ha funcionado perfectamente en cuanto a recibir el mail en mi cuenta, pero me da el error de (Warning: Cannot modify header information…), entonces, ¬Ņcual codigo php debo poner en contacto_exitoso.php y contacto_erro.php ?

    Gracias.

  17. Daniel Zu√Īiga Escobedo dice:

    Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in \\ una ip \s003\midominio.com.mx\Correo\envio.php on line 20
    si alguien me pudiera ayudar pa empezar no se por donde atacar el problema soy un burro!! definitivamente

  18. Mijael dice:

    Hola amigo Justi
    Primero felicitarte por el exelente curso que estas brindando y agradecerte de antemano por tu respuesta mi inquietud es la siguiente como recupero datos cuando tengo un formulario con el metodo GET seria de la forma ($_GET[‘nombres’]) o es de una diferente forma muchas gracias por la respuesta

  19. Mario dice:

    Hola, antes que nada quería comentarles que es excelente este curso.
    Ahora (pido un salvavidas), tengo el mismo problema que en los post 7-8 y 17 (Failed to connect to mailserver at ‚Äúlocalhost‚ÄĚ port 25 …), lo triste es que instal√© Apache y Php en mi pc para depurar localmente (no hay adminstrador a quien reclamar…), he revisado toda la documentaci√≠n que encontr√© sobre Apache… y na, tambi√©n busqu√© otra bibliograf√≠a sobre Php, pero no encuentro en ning√ļn lado alguna referencia a la variable smtp_port (supuestamente, se deber√≠a configurar en php.ini).
    Agradeceré alguna orientación.
    Mario

  20. Mario dice:

    Hola de nuevo, luego de probar unas cuantas alternativas (con distintos niveles de éxito, combinando diversos SMTPServer -free- con ejemplos descargados de scripts y personalizando para superar situaciones de error) encontré que la mejor solución se me da utilizando la validación de usuario.
    $host, ‘auth’ => true, ‘username’ => $username, ‘password’ => $password));
    // envía email
    $headers = array (‘From’ => $from, ‘To’ => $to, ‘Subject’ => $subject);
    $mail = $smtp->send($to, $headers, $body);
    if (PEAR::isError($mail))
    $coment = ‘Error: ‘ . $mail->getMessage();
    else
    $coment = ‘El mensaje ha sido enviado.’;
    //…
    ?>
    Espero ayude a alguien,
    Salu2

  21. Mario dice:

    Perd√≥n, repito xq no sali√≥ completo…
    Hola de nuevo, luego de probar unas cuantas alternativas (con distintos niveles de éxito, combinando diversos SMTPServer -free- con ejemplos descargados de scripts y personalizando para superar situaciones de error) encontré que la mejor solución se me da utilizando la validación de usuario.
    //…
    require_once “Mail.php”;
    //… inicializar variables
    $host = ‘localhost’;
    // el servicio SMTP debe estar iniciado
    $smtp = Mail::factory(‘smtp’,
    array (‘host’ => $host, ‘auth’ => true, ‘username’ => $username, ‘password’ => $password));
    // envía email
    $headers = array (‘From’ => $from, ‘To’ => $to, ‘Subject’ => $subject);
    $mail = $smtp->send($to, $headers, $body);
    if (PEAR::isError($mail))
    $coment = ‘Error: ‘ . $mail->getMessage();
    else
    $coment = ‘El mensaje ha sido enviado.’;
    //…

    Espero ayude a alguien,
    Salu2

  22. César Cancino dice:

    Hoal, aver si los puedo ayudar un poquito, para todos quienes tienen problemas para trabajar con la función mail, pueden probar con este script mas sencillo, (espero que no se moleste nuestro amigo Justin jejee)..ahí les va:

    $email=”nombre@mail.com”;
    $asunto=”ac√° va el asunto del mensaje”;
    $contenidomail=”variable1 “.$variable1.”variable2 “.$variable2;/*en esta variable guardan los datos ingresados por el usuario en el formulario*/
    mail ($email,$asunto,$contenidomail);//acá envían las tres variables a través de la función mail de PHP

    Bueno eso ser√≠a, y por supuesto, no olviden que tienen que estar conectados a Internet para poder trabajar con esta funci√≥n, y si lo prueban en el servidor local, NO podr√°n enviar los mails porque el Apache no est√° conectado con el puerto 25, que es el encargado de enviar los correos, si es que quieren hacer pruebas, deben subir sus archivos a un servidor remoto, o en caso contrario, puede buscar alg√ļn programa que trabaje a nivel local con pruebas de mails…eso ser√≠a, y nuevamente amigo Justin, buen√≠simo tu curso. Te comento que soy un apasionado de PHP, me gusta mas que ASP o cualquier otro lenguaje del lado del servidor, porque es mas flexible…bueno un abrazo..

  23. admin dice:

    gracias Cesar, excelente tu explicación!

  24. Mary Peralta dice:

    Muy bueno el fromulario, pero me da el mismo error de todos, y en tu respuesta a este problemas dabas dos alternativas, no se cual me corresponde en mi caso, en una dices que es problema del servidor y hay que pedir habilitar la opcion de correo, pero en mi caso el correo me llega con contenido y todo pero no me muestra la pagina esa Contacto Exitoso, y no entendi la verdad eso de que si tenes un ‚Äúecho‚ÄĚ o algo en html antes que el ‚Äúheader‚ÄĚ te va a tirar el error ese. mi codigo es tal cual esta en esta pagina, asi que no tengo nada antes… entonces no se cual es el problema, ojala me pudieras ayudar, ya que soy nueva en esto, con suerte soy disenadora y no se nada de programacion …

  25. David dice:

    hola

    A mi me envia la informacion al mail pero lo que falla es cuando no metes algun dato y tiene que llamar a la pagina de error, o cuando despues de realizar la funcion mail, y si esta se realiza ok tiene que llamar a la pagina de contacto_exitoso.php, no se que es lo que esta mal, Ayudaaaaaa

    yo creo que el fallo puede estar en la linea de header en lo de Location, pero no se como se podria arreglar.
    Un saludo

  26. David dice:

    La modificacion de Cesar funciona, pero cambiando algunas cosillas.
    Asi es como lo puso el:
    $email=‚ÄĚnombre@mail.com‚ÄĚ;
    $asunto=‚ÄĚac√° va el asunto del mensaje‚ÄĚ;
    $contenidomail=‚ÄĚvariable1 ‚Äú.$variable1.‚ÄĚvariable2 ‚Äú.$variable2;/*en esta variable guardan los datos ingresados por el usuario en el formulario*/
    mail ($email,$asunto,$contenidomail);//acá envían las tres variables a través de la función mail de PHP

    Asi lo puse yo y Funciona
    $email2 = ‘yogysp@gmail.com’;
    $asunto = ‘Mensaje de mi web’;
    //$contenidomail=‚ÄĚvariable1 ‚Äú.$variable1.‚ÄĚvariable2 ‚Äú.$variable2;/*en esta variable guardan los datos ingresados por el usuario en el formulario*/
    mail ($email2,$asunto,$cuerpo);//acá envían las tres variables a través de la función mail de PHP

    Elimine lo de $contenidomail=‚ÄĚvariable1 ‚Äú.$variable1.‚ÄĚvariable2 ‚Äú.$variable2;/, por que ya teniamos lo de $cuerpo

  27. Alejandra Gomez dice:

    Muchas Gracias por el curso es excelente!!!

  28. Alejandra Gomez dice:

    gracias

  29. César Cancino dice:

    Evidentemente todos los caminos son buenos siempre y cuando lleguemos al resultado correcto…Nuevamente felicitaciones amigo de el webnaster, y bueno, ah√≠ cualquier cosa que necesiten estamos a la orden..saludos cordiales..

  30. jose dice:

    Hola justi, mira tu dices que uno se tiene que poner en contacto con queien te brinda el servidor pero que ellos me dirian para solucionar el mail

  31. Snowdarth dice:

    Nada que decir, simplemente es excelente este taller de php, hace bastante tiempo que estaba googleando en busca de un buen tutorial y todo lo he encontrado ac√°. Felicitaciones al creador, recomendare este sitio a mis compa√Īeros de universidad.
    salu2

  32. Marcelo dice:

    Hola, Muchas Gracias por el curso es excelente!!!

    Te queria consultar algo, a mi me llaga el mail pero con el numbre ” Apache (apache@ws03.host4g.com)” es posible configurarlo para que me llege info@mipagina ? pense que creando un webmail era sufuciente.

    Gracias de nuevo.

  33. edgar dice:

    Este manual me ha sacado de un gran problema, muchas gracias.

  34. danilo dice:

    ESTOY USANDO EL XAMPP COMO SERVIDOR LOCAL Y ESTE TRAE EL MERCURY UN SERVIDOR DE CORREOS PERO SOO LOGRO QUE ME ENVIE LOS MAIL A MI CUENTA DE GMAIL Y LOS MAIL NO ME LLEGAN A LA DE HOTMAIL PORQEU SERIA ESTO???
    AQUI DEJO EL CODIGO
    //desde aqui

    //hasta aqui

  35. danilo dice:

    // definimos las variables o marcamos el error
    if ( !empty($_POST[‘nombres’]) ) $nombres = $_POST[‘nombres’]; else $error = true;
    if ( !empty($_POST[‘email’]) ) $email = $_POST[‘email’]; else $error = true;
    if ( !empty($_POST[‘sexo’]) ) $sexo = $_POST[‘sexo’]; else $error = true;
    if ( !empty($_POST[‘mensaje’]) ) $mensaje = $_POST[‘mensaje’]; else $error = true;

    // verificamos que no exista un error
    if ( !empty($error) ) {
    header( ‘Location: contacto_error.php’ );
    die;
    }

    // definimos el cuerpo del email
    $cuerpo = “felizidades ya estas registrado en el servicio de empleo”;

    // enviamos el email
    if ( mail( $email,’Recibiste un mensaje a trav√©s del formulario de contacto de tu sitio’,$cuerpo,’From:dajogere@hotmail.com’) ) {
    //echo “salio” ;
    header( ‘Location: contacto_exitoso.php’ );
    die;
    } else {
    //echo “no salio” ;
    header( ‘Location: contacto_error.php’ );
    die;
    }

  36. elvis dice:

    hola tengo una duda me sale estos errores
    el primero es:Warning: mail() [function.mail]: “sendmail_from” not set in php.ini or custom “From:” header missing in C:\AppServ\www\practicando\contacto_script.php on line 29
    y mi linea 29 es:if (mail(‘e_helloy_149@hotmail.com’, ‘Recibiste un mensaje de tu formulario’, $cuerpo)){
    y mi segundo error q me sale junto con el otro es :Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\practicando\contacto_script.php:8) in C:\AppServ\www\practicando\contacto_script.php on line 33
    bueno y mi linea 33 es:header(‘Location: contacto_error.php’);

  37. elvis dice:

    bueno espero q me ayuden ,uchas gracias necesito eso xq quiero aprender php estoy muy entusiasmado bueno y pienso q esta web el muy buena gracias.

  38. Justi dice:

    hola elvis, el 2do error es porque quiere redireccionar pero como te esta mostrando el mensaje de error anterior no te deja, no te preocupes que se soluciona solucionando el primero (valga la redundancia).

    el 1er error es porque no debes tener configurada en tu php la funcion mail().

    Saludos.
    Justi

  39. elvis dice:

    justi pero como configuro la funcion mail podria explicarme si no fuera molestia

  40. elvis dice:

    bueno espero q me ayudes xq estoy interesado en aprender bueno estuve viendo otros formas y veo que configuran parametros bueno lo unico que quiero es q me salga el envio gracias

  41. elvis dice:

    hoa justi entiendo un poco creo q me dices q entre al php.ini pero que configuro ahi eso seria mi duda

  42. Justi dice:

    @elvis: configurar la funcion mail le tendrias que pedir a los de tu hosting que te la configuren, eso ya excede al curso de php, ya que es una cuestion de servidores, y depende mucho la plataforma donde estes corriendo php, si es apache, que version de apache, que version de php tenes instala, etc, etc.

  43. elvis dice:

    hola justi pero tengo entendido q tengo q configurar eso en el php.ini y q hay q cambiar algo solo quisiera saber eso no seria molestia si me ayudas con eso, bueno mi apache es 2.5.9 bueno espero qu no t molestes gracias, es muy bueno lo q eplicas aca x eso es que me dan las ganas de aprender php

  44. Justi dice:

    la verdad que no tengo ni idea como configurar la funcion mail(), seguramente haya que buscar el modulo mail para php, lamento no poder ayudarte con ese problema.

  45. elvis dice:

    muchas gracias justi x ayudar a los demas y x compartir lo que sabes q tengas exitos

  46. Fableton dice:

    Ufff… por fin pude usar los header, lo que pasa es que debes de usarlos antes de cualquier codigo HTML lo que hice fu poner el codigo php () al principio de la pagina antes de todo lo de

    Y sobre el correo debes de habilitar en los servicios de XAMPP el servidor mercury de mensajeria y quitarle lo de los correos locales que dice arriba… y si quieres mandar es otro problema configurarlo jeje… suerte,,,

  47. Mariangeles dice:

    Hola, estoy probando de hacer un formulario y he encontrado excelente este sitio, por ello me he animado a realizar el formulario como se describe anteriormente, he copiado el formulario de contacto, tambi√©n el de contacto_script (colocando mi direcci√≥n de correo), cuando hago click en el boton enviar con los datos cargados, solo abre una nueva pesta√Īa en blanco y no aparece nada, tampoco env√≠a algo.
    He instalado el xampp y he activado apache, mysql y Mercury (adm de correos), pero tampoco aparece algo.
    AL hablar con los administradores del servidor de mi correo me han dicho ….coloca en location los datos de SMTP, mi pregunta a que se refieren solo a los datos del smtp o debo colocar tb mi direccion de correo o algo m√°s? Muchiiiiiiiiiisimas gracias por la ayuda se sostener este sitio.

  48. Justi dice:

    @Mariangeles a mi me llama la atencion dos cosas, por un lado la pantalla en blanco, seguramente esta tirando un error pero no lo muestra en pantalla, no debe estar llegando a la redireccion. Y por otro lado n oentendi lo del administrador del servidor, instalaste Xampp o contrataste un hosting? O a quien te referis por Admnistrador del Servidor, porque en Location no van los datos de smtp, en todo caso a la hora de enviar el email.
    Saludos

  49. Mariangeles dice:

    Holas de nuevo, les cuento que he copiado mi carpeta de formulario con todo dentro de la carpeta htdocs de Xampp y con mercury habilitado he logrado que por lo menos me dé error, (antes solo mostraba página en blanco).
    El error que me dá lo transcribo abajo, si alguien tiene idea que puede ser, se lo agradecería
    Parse error: syntax error, unexpected T_ECHO in C:\xampp\htdocs\LOPD-AEDHE\enviar1.php on line 5

    y el código es el que sigue:

    Gracias nuevamente…

  50. Mariangeles dice:

    Gracias Justi, yo también me había mareado un poco.
    Te cuento lo que hice, instalé el xampp y lo que tenía de prueba realizado (replique un formulario de la web en php) lo copie en una carpeta dentro de htdocs de xampp, luego desde el navegador he podido acceder al formulario via, http://localhost/carpeta/formulario.php, hasta allí bien, ahora me da un error; que es el que sigue

    Warning: mail() [function.mail]: “sendmail_from” not set in php.ini or custom “From:” header missing in C:\xampp\htdocs\Sitio sin nombre 2\formulario.php on line 29

    Esta es la l√≠nea 29 mail(“angeleszarate@gmail.com”,”Formulario recibido”,$cuerpo);

    supongo que tengo algo mal en la función mail, es lo que estoy por ver.

    Muchas Gracias por tu interés en este problema.

  51. Marrion dice:

    hola. he seguido atentamente este curso y como todos, me he quedado enganchado en la funcion mail() del script contato_script.php. he seguido todos los pasos para crear el formulario pero al ejecutarlo, me aparece el mensaje de error siguiente:

    Warning: mail() [function.mail]: “sendmail_from” not set in php.ini or custom “From:” header missing in C:\AppServ\www\membasoft\UP\contacto_script.php on line 24

    Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\membasoft\UP\contacto_script.php:24) in C:\AppServ\www\membasoft\UP\contacto_script.php on line 31

    Este es el script contacto_script.php:

    Te agradeceria que me sacases las casta√Īas del fuego. gracias.

  52. Robert Burgos dice:

    Donde se encuentra ese archivo que tratara el formulario?, Si esta en algun lado como en el servidor de tu pagina o uno tiene que hacerlo y ubicarlo en determinado lugar?, si la accion es igual archivo php y el methodo post, que va en el campo enctype es imprecindible llenarlo o no?
    Es inventado varios methodos para enviar formulario incluso el tradicional que es el siguiente: accion: mailto: direccion correo, Methodo: Post, Enctype: text/plain y nada usted puede probarlo en mi pagina en construccion los aspirantesrd. tambien he probado el envio de correo a traves del mailto en aparrece outlook pero cuando envio aparece un mensaje que dice que hotmail no recibe correo a traves de outlook o algo parecido. Lo que pido es simple que alguien me diga pon esto aqui, aquello alli y punto ver lo que hace no com lo hace.

    At.
    Robert Burgos

  53. Ricardo dice:

    Muy bueno esto, pero… tengo un problema.
    Cuando presiono el boton enviar me aparece la un ventana para descargar el formulario PHP y no me muestra la informacion

    Que pasaa???

  54. Nelson dice:

    Hola que tengo que agregar para que este formulario vaya a mi correo nelson5544@gmail.com
    Saludos
    Muchas garcias
    Nelson

    Nombre:

    Pedido C:

    Empresa:

    Cant.:

    piezas.

    Teléfono:

    Pedido D:

    Email:

    Cant.:

    piezas.

    Interés:

    Elegir
    Pedido

    Pedido E:

    Pedido A:

    Cant.:

    piezas.

    Cant.:

    piezas.

    Pedido F:

    Pedido B:

    Cant.:

    piezas.

    piezas.

    Cant.:

  55. Justi dice:

    @nelson hola nelson, es practicamente a lo que se explica en los tallers, pero tenes que agregar mas campos y definir mas variables, dependiendo la cantidad de campos que quieras tener.
    Saludos.

  56. Justi dice:

    @ricardo hola ricardo, asegurate que este configurado tu servicio de hosting para procesar php, tenes que hablarlo con los encargados del servidor.

  57. luis dice:

    Me da este error:

    Parse error: syntax error, unexpected ‘:’ in contacto_script.php on line 10

    Que puede ser?¬Ņ

    Gracias, un saludo.

  58. Justi dice:

    @luis me tendrías que decir que es lo que tenes en la linea 10 de contacto_script.php porque hay algo de sintaxis que está mal.

  59. luis dice:

    Esto es lo que tengo en la linea 10

    header( ‚ÄėLocation: contacto_error.php‚Äô );

    Muchas gracias.

  60. Justi dice:

    fijate que las comillas simples que se estan usando estan mal, eso es porque este blog las cambias, hay que usar las que son bien verticales. Y no esas que son como una especie de acento. En mi teclado yo las tengo en la misma tecla que el signo de cierre de interrogación. Esta '

  61. Maximiliano dice:

    Hola no se si lo estoy haciendo bien.. estoy trabajando con dreamweaver… y ya abre el formulario… pero cuando le doy enviar una pagina en blanco solamente… creo q debe ser por cree un archivo en dreamweaver q se llama contacto_script.php… no se si ese se el error….y alli pegue las acciones de php

  62. Justi dice:

    @Maximiliano disculpame, pero no entendi la pregunta muy bien. Fijate que si te aparece una pagina en blanco desdepus del formulario quizas estas teniendo un error y tenes configurado PHP para que no muestre los errores. Tendrías que hablar con el encargado de servidores donde tenes montado el sitio para que te habiliten esa opcion, o que te digan donde esta el log de errores.

  63. benjamin dice:

    Hola les mando un saludo. Les planteo mi duda haber si me pueden ayudar.
    Hice el formulario tal como esta, pero, llene o no el formulario lo unico que sale es la pagina
    de contacto error, que he creado y no lo envia a mi correo.
    Que esta pasando Por que no lo envia?
    Gracias.

  64. Justi dice:

    @benjamin podría ser por muchas cosas, habría que ver como tenes configurado el envio de emails, o como tenes armado los scripts, etc etc

  65. benjamin dice:

    Hola mira te pongo el script yo creo que esta bien, no se ustedes que opinen.

    Mil gracias.

  66. Victor dice:

    Hola muy bueno el taller de PHP, mi inquietud es acerca de los formulario y el env√≠o de datos bueno ya los datos los env√≠o y recibo en el otro php pero no se env√≠an al mail como dices, estoy trabajando desde ubuntu tiene q ver o xq no se env√≠an, no me sale ning√ļn error solo q salta al else del env√≠o…
    // enviamos el email–> las xxxx son un supuesto, uso uno real…
    if ( mail(“vicanall@xxxx.com”,”Recibiste un mensaje”,$cuerpo) ) {
    header(‘Location: cont_exitoso.php’);
    die;
    }else{
    header(‘Location: cont_error.php’);
    die;
    }

  67. Justi dice:

    @victor hola, seguramente no tengas configurada la salida de emails desde el servidor que tenes corriendo la aplicacion. Saludos.

  68. Javier dice:

    hola que tal!? tengo el mismo problema que benjamin, me salta la pagina de error que yo dise√Īe pero no me salta nunca la pagina de contacto_exitoso, ni me envia el mail. dices que hay k configurar el envio de mails?..como se hace eso? mi servidor XAMPP(para macOS X 1.0.1). Muchas gracias!

  69. ESTUARDO dice:

    GRACIAS son de mucha ayuda .

  70. ESTUARDO dice:

    por favor talves pueden poner como maiobrar satelites o redes inalambricas

  71. CaSi dice:

    Excelente, tu web, sabes como manera de mejorarlo porque no haces una actualizacion y pones lo nuevo de php 5.0, todo lo potente que es ante la tecnología de POO. Una sana sugerencia, me ayudo con algunos buenos ejemplos, y muy didácticos, Felicidades.

  72. Nicolas dice:

    Hola, es muy buenos los datos que dan de PHP. Yo estoy teniendo un problema con un formulario que hice. Es este: En el formulario no tengo un campo donde se coloque el mail del que lo esta respondiendo, pero quiero que me llegue su mail de todas formas. Como se hace? Porque los datos del formulario me llegan bien, pero cuando me llega el mail con los datos, en mi casilla no aparece nada en De: o dice Remitente Desconocido. Como hago para que aparezca el mail de quien responde el formulario?. Muchas gracias.

  73. rubi dice:

    hola se q a lamejor ya no contestas pero es q apenas encontre este tutorial q graciasesta muy bien pero tengo 2 dias con un problema en le mail primero me aparesia lo de astp con un documnto q hice e yo como no olo pude hacer para ver el error lo copie exactamnte el q tu propones pero sabes q me marca eror en alla linea 15 y detalle s asi es igualito al tuyo y nose por queosea q no me puede enviar a mi correo espero me respondas justi se claroaun o no se mucho de hp estoy atorada en esta clase

  74. Justi dice:

    @rubi puede que el problema sea porque no esta bien configurado el envio de emails en tu servidor, si usas xampp o similar es muy probable que sea eso.

  75. rubi dice:

    hola si ya resolvi ese problema pedi prestado un servidor elcual solo si pongo la funcion mail si la envia me aparese como error pero si llega a mi correo el t detalle ahora es cuando quiero agregar datos hice mi codigo y me marca error y lo que hice para ver es q piratie el q tu pones y aun asi me marca error en la linea 16 o 17 segun sea pero esta copiado tal cual de echo le puse cortar y pegar y no sirve ni siquiera funciona directamnte me manda a erorr. gracias por el tutorial encerio para gnete como yo ses genial y entonces que puedo hacer
    gracias por contestar. dedicar tiempo a gente extra√Īa

  76. rubi dice:

    mira este esl el tuyo igualito y no funciona para na me marca q ay error en una linea auxilio

    para enviar datos

    Nombre y Apellido

    Email

    Sexo

    Masculino
    Femenino

    Mensaje

  77. rubi dice:

    Parse error: syntax error, unexpected T_STRING in /home/miguelg/public_html/pruebas_rubi/prueba.php on line 16
    es te es el herror mas exacto

  78. Justi dice:

    @rubi hola, borrale las comillas y agregalas a mano vos, eso es porque el blog este cambia las comillas que hay que usar, en programacion tanto las comillas dobles como simples tienen que ser siempre las que son perfectamente vertical, no las inclinaditas.

  79. Mario dice:

    Hola Justi, estoy siguiendo tu curso online, y me parece muy fascinante… ahora mi pregunta va, en este tema de la redireccion del formulario, en donde se envia el email, se puede agregar mas de uno, o simplemente esta dise√Īado para un correo, nada mas por ahora, y otra vez excelente explicacion… hasta la proxima….

  80. Justi dice:

    @Mario hola, en el string donde va el destinatario lo podes armar con multiples email, admite los siguientes formatos

  81. rubi dice:

    no habia visto tu respuesta pero sabes eso tambien ya le habia cambiado y aun asi me marc ERROR DE SINTAXIS TALVEZ POR Q EN LA MISMA PAGIAN ESTA EL DE HTML Y PHP LO METI EN EL BODY SERA. LO TENDRE Q METER EN PAGINAS DISTINTAS DISCULPA SI SONTONTAS O OBIAS MIS RESPUESTAS ES Q NO SE MUCHO DE PHP LO Q SE ES LO Q E LEIDO CON TIGO PERO SIGO A TORADA AQUI EN LO DEL MAIL MIRA LO TENGO ASI. DE ECHO ESTABA HACIENDO EL MIO PERO ME SALIO MAL ENTONCES DESIDI PARA APRENDER PIRATIAR EL TUYO ENLO Q LO COMPRENDIA Y ME MARCO EL MISMO ERROR, AYUDAME POR FIS PUEDES ENVIARME A MI CORREO LO Q SEA

    para enviar datos

    Nombre y Apellido

    Email

    Sexo

    Masculino
    Femenino

    Mensaje

  82. rubi dice:

    AAAAAAAAAAAAAAAAA NO YO TE QUIERO ENVIAR EL CODIGO

  83. rubi dice:

    jajaj ya pude gracias si me faltaba una comilla q no veia hasta q me puse a ver y separe el codigo todo en 2 hojas no se por q me dio esa idea jajaja q mensa gracias por tus tuturiales encerio no sabes cuanta ayuda a los q no podemos pagar un curso gracias

  84. Justi dice:

    @rubi no hay drama que tengas el php y el html en el mismo archivo, fijate que tenes en la linea 16 de tu codigo que es donde esta marcando el error y cualquier cosa pegamela aca.

  85. Nely Soca Olaz√°bal dice:

    Tengo un problema:
    Cómo insertar los datos que vienen de un select multiple, los marco como has explicado, pero solo me inserta uno de los varios marcados.
    Me podrias ayudar.
    Gracias

  86. Justi dice:

    @nely hola, los datos te van a llegar como un array, lo que podes hacer es recorrer ese array con un foreach e insertar el valor en cada vuelta del bucle

  87. Nely Soca Olaz√°bal dice:

    Gracias por la respuesta, ya lo he logrado y no tengo problemas.
    Ahora la duda es que cuando quiero una lista con los datos me pone por ejemplo:
    para varias materias, me pone en cada fila los datos con una materia (las materias vienen del select multiple)
    pero yo quiero que me ponga los datos y en la misma fila materias:……. y ponga todas las materias que corresponden a ese dato separadas por coma.
    Te comento que tengo una tabla (temas) donde cada dato (tabla dato) tiene iddato e idmateria, asi sé que dato tiene asociada varias materias, pero te repido ahora el porblema es que quiero que en una sola fila salgan todas las materias correspondientes a ese dato y no una fila para cada meteria con los datos correspondientes que es lo que me pasa ahora.
    Gracias y perdona tanta lata

  88. Messiha dice:

    Hola gente… tenemos un problema… en la siguiente seccion:

    // definimos el cuerpo del email
    $cuerpo = “
    De: $nombres \n\r
    Email: $email \n\r
    Sexo: $sexo \n\r
    Mensaje: \n\r
    $mensaje
    “;

    Primero, corregimos todo el tema de las comillas y demas, pero cuando logramos que el php mande el mail al correo, llega con la info de la siguiente manera:

    De: $nombre \n\r
    Email: $email \n\r
    Telefono: $telefono \n\r
    Localidad: $localidad \n\r
    Asunto: $asunto \n\r
    Mensaje: \n\r
    $mensaje

    No somos grande maestros ni nada por el estilo, pero creemos que al enviar no esta leyendo las variables, sino todo como un gran cuerpo de mensaje.
    Separamos las variables con puntos (ej: ‘De: ‘ .$nombre. ‘\n\r’), ya que en otro ejemplo vimos que las escribian de esa manera.

    Ahora, sigue tirando error. En nuestro caso el siguiente:
    Parse error: syntax error, unexpected T_VARIABLE in /home/messiha/public_html/hiddenband.com.ar/A/enviar.php on line 19

    La respectiva linea es la misma del ejemplo anterior: ‘De: ‘ .$nombre. ‘\n\r’

    Les agradeceriamos una ayuda para poder hacer andar esto!.

    Saludos!

  89. Justi dice:

    @Messiha hola, usa comillas dobles en lugar de comillas simples en el primer ejemplo, las comillas dobles permite a php interpretar variables dentro del string, las simples no.

  90. Ruben Pisatti dice:

    esto anda bien… obviamente tenes que cambiar los contenidos de la variables, con esto estoy trabajando ahora y funciona

    $cabeza = “MIME-Version: 1.0\r\n”;
    $cabeza .= “Content-type: text/html; charset=iso-8859-1\r\n”;
    $autor1=”messiha.com.ar”;
    $autormail=”gerencia@messiha.com.ar”;
    $remitente=”From: “.$autor1.”\nReply-To:”.$autormail;
    $cabeza .=$remitente;
    $destino=”gerencia@messiha.com.ar”;
    $asunto=$autor.”PLAYA COSTA MAGNA INFORMA”;
    $men = $mensaje;

    mail($destino, $asunto, $men, $cabeza);

  91. Luis dice:

    Hola chicos buen dia, alguien me puede guiar como hacer para que no llegue como remitente desconocido asi hotmail no me lo toma como no seguro ????? estoy trabajando con un formulario flash y phpmail, estaria muy agradecido por su ayuda y felices fiestas

  92. Juan Manuel dice:

    @Luis la variable del mail o el nombre del usuario que envi√≥ el mensaje las tienes, de modo que puedes enviarlas desde la funci√≥n mail() como par√°metros ūüėČ

  93. minerva dice:

    Hola tengo una pregunta .. con el primer formulario como haria para que guarde los datos ingresados de varias personas y luego me muestre un reporte con php ( no con pdf , ni con excel .. menos usando programas) …. please!!

  94. Thor dice:

    @minerva

    Hola minerva.
    Para poder guardar esos datos y luego mostrarlos en un reporte, tienes que usar una base de datos(DB) y cada vez que una persona use el formulario, meter todos los datos dentro.
    Luego en otra p√°gina php, debes traer un listado de las personas desde la misma DB e imprimirlo en pantalla.

    Aquí tienes otras clases del taller de php que muestran como usar bases de datos.
    http://www.elwebmaster.com/talleres/taller-de-php-base-de-datos

    Leyendo el taller completo estar√°s 100% capacitado para hacer la tarea que preguntas arriba.

    Saludos!

  95. javier dice:

    Me encanta este taller aunque ya tenia algo de practica en php o almenos en cuanto a lo basico se refiere. Me parece un excelente taller para aquellos que se van inicando en el mundo de PHP MUCHAS FELICIDADES!!!

  96. Sebas dice:

    hola, bueno primero muy bueno el curso este, he estudiado muchos cursos de php pero este me parecio muy copado, siempre a los otros los abandono porque son muy tecnicos pero este me parece muy copado y bien explicado, los felicito…ahora mi pregunta, mi error, me sale todo bien, pero no puedo enviar el msj, siempre me lleva a la pagina que dice que hubo algun error, osea siempre me lleva a [b]contacto_error.php[/b], y el formulario esta bien completado, cual puede ser el error?

    PD: lo estoy probando en localhost, con el apache, osea todavia no lo subi

  97. Sebas dice:

    lo subi a un host, al servidor de mi web e igual me pasa lo mismo, siempre me dice que algo fallo y me manda a la web contacto_error.php

  98. Daniel Guerrero dice:

    Hola, para solucionar el problema de Elvis y de otros que sale >>> Warning: mail() [function.mail]: ‚Äúsendmail_from‚ÄĚ not set in php.ini or custom ‚ÄúFrom:‚ÄĚ header missing in C:\AppServ\www\practicando\contacto_script.php on line 29 y por ahi otro error mas, la solucion es configurar el archivo PHP.INI, este se encuentra ubicado generalmente en C:/WINDOWS/PHP.INI, obviamente si no esta ahi pueden usar la funcion BUSCAR que traen todos los sistemas operativos windows. En este archivo PHP.INI (solo aparece PHP por que la extension esta oculta), damos doble click sobre el y se abre en el block de notas, MUCHO CUIDADO, SI CAMBIAS ALGO POR ERROR MALOGRARIAS LA CONFIGURACION DE TU PHP, por lo que te recomiendo hagas una copia de seguridad.
    Abres el archivo PHP.INI, te desplazas hasta casi la parte central del documento y vas a encontrar esto:

    [mail function]
    ; For Win32 only.
    SMTP = localhost
    smtp_port = 25

    ; For Win32 only.
    ;sendmail_from = me@example.com

    o algo parecido a eso.. asegurate que el smtp este asi:
    SMTP = localhost

    y en donde dice sendmail_from cambiamos el valor por el mail a donde keremos que lleguen los datos
    ;sendmail_from = micorreodondequeiroquelleguenlosdatos@ejemplo.com

    una ves hecho esto guardas los cambios y reinicias el equipo.
    Ahora abre tu pagina y el envio de datos estara listo… por si acaso yo tengo el APPSERVER!! que trae el apache, php , mysql y phpadmyn, muy bueno para uso personal. Exitos

  99. Rosalina Saturno dice:

    Muchas gracias, al fin pude hacer mi formulario que funcionara para enviarlo donde quiera usando mi servidor.Felicidades.

  100. Juan Carlos dice:

    Una aclaración sobre lo que dice tan correctamente Daniel sobre el fichero php.ini
    en la linea ;sendmail_from = micorreodondequeiroquelleguenlosdatos@ejemplo.com hay que quitarle el ; de delante para que la instrucción se ejecute, sino es como un comentario.
    Un saludo

  101. Daniel dice:

    No funciona el if, no me redireccion a las paginas que quiero, ¬ŅCual es el error?

  102. Daniel dice:

    session_start();
    include(“conexion.php”);
    $link = conectarse(); //Invocar metodo para la conexion
    $usuario = htmlspecialchars(trim($_POST[‘usuario’])); //Recibir usuario
    $clave = sha1(md5(trim($_POST[‘clave’]))); //Recibir clave y encriptala con sha1 y MD5
    if (enlace($usuario, $clave)){ //Verificar si hay sesion
    header(‘Location: ../modules/’); //Si hay sesion inicia los modulos
    die;
    }else{
    header(‘Location: ../index.php’); //Si no hay sesion manda iniciar el sistema
    die;
    }
    function enlace($usuario, $clave){ //Funcion para crear sesion o bien negar sesion
    $ubication = conectarse(); //Invocar metodo para la conexion
    $query = sprintf(“SELECT usuario, clave FROM usuarios WHERE usuario = ‘%s’ && clave = ‘%s'”, mysql_real_escape_string($usuario), mysql_real_escape_string($clave));
    $result = mysql_query($query, $ubication) or die(“No se pudo realizar la consulta a la Base de Datos”);
    if(mysql_num_rows($result)){
    $array = mysql_fetch_array($result);
    $_SESSION[“usuario”] = $array[“usuario”];
    return (true);
    }else{
    return (false);
    }
    }
    function status(){ //Funcion para verificar si hay sesion
    session_start();
    if ($_SESSION[“usuario”]){
    return (true);
    }
    }

  103. gabatx dice:

    A LOS QUE LES ESTEN DANDO ESTE ERROR:

    Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in

    ESTE JODIDO ERROR!!!!!, toda la tarde para solucionarlo…. bueno, la cuestion es que yo tenia bien configurada la funcion de email :

    [mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP = localhost
    ; http://php.net/smtp-port
    smtp_port = 25

    ; For Win32 only.
    ; http://php.net/sendmail-from
    sendmail_from = postmaster@localhost

    y tambien me habia creado un servidor local de pruebas (mercury el que te viene con Xampp) en donde habia seguido mil veces el tutorial este que tanto se ve por ahi (http://www.joomleros.com/28-instalacion/16559-configurar-el-mercury32-del-xampp-para-enviar.html). Bueno, pues no iva, habia hecho de todo y nada. Al final leyendo en foro encuentro esto: QK SMTP. Un programilla super pestoso, en donde lo instalas, no hacer falta tocar nada, solo siguiente y te envia el mensaje. Espero de verdad que alguien le sirva esto.

    la pagina es de foros del web (http://www.forosdelweb.com/f18/warning-mail-function-mail-localhost-443592/).
    El link de descarga es este: http://www.qksoft.com/

    Suerte…

  104. jose antonio dice:

    hola amigos necesito una ayudita no se como aser q mi formulario q ise en esta pagina http://www.carpiforma.com en la parte donde dice optimizacion llegue mi correo tal como esta dise√Īado el formulario

  105. Yovanna Rodriguez dice:

    hola! oigan me dejaron una tarea para el lunes de esto y nad amas no me sale!!!! alguien me podria dar su mail para auxiliarme?? por favor!!!

  106. oveimar dice:

    ma gustaria hacer este codigo porque yo tambien tengo que hacer un proyecto y tengo que hacer un codigo higualito a este y no tengo la ayuda suficiente para crearlo

  107. javier vargas dice:

    hola tengo problemas con la funci√≥n header hago todo bien pero no me direciona,,, y tambien con la funci√≥n mail, de esta ultina “mail” uno pone un correo normal puede ser ejemplo@hotmail.com y ejemplo@gmail.com??????
    estoy utilizando un servidor local es el xaMPP

  108. Ruben dice:

    Hola esta excelente el tutorial, gracias a la explicacion he podido entender varios puntos que no me resultaban. ahora recibo bien los mail del formulario.
    Solo tengo una pregunta, yo quiero agregar otro mail para recibir el formularios aparte de mimail@miservidor.com pero no me resulta como lo dice la explicacion de mas arriba, como debo hacerlo para que quede bien? El codigo del formulario send.php es:

    espero que me puedan ayudar.Gracias

  109. Ruben dice:

    Hola esta excelente el tutorial, gracias a la explicacion he podido entender varios puntos que no me resultaban. ahora recibo bien los mail del formulario.
    Solo tengo una pregunta, yo quiero agregar otro mail para recibir el formularios aparte de mimail@miservidor.com pero no me resulta como lo dice la explicacion de mas arriba, como debo hacerlo para que quede bien? El codigo del formulario send.php es:

    ///$mail=’mimail@servidor.com’;

    $nombre = $_POST[‘nombre’];
    $email = $_POST[‘email’];
    $nacionalidad = $_POST[‘nacionalidad’];
    $hotel = $_POST[‘hotel’];
    $evento = $_POST[‘evento’];
    $fecha = $_POST[‘fecha’];
    $mes = $_POST[‘mes’];
    $paxs = $_POST[‘paxs’];
    $mensaje = $_POST[‘mensaje’];

    $thank=”gracias.html”;

    $message = ”
    Nombre: “.$nombre.”
    Email: “.$email.”
    Nacionalidad: “.$nacionalidad.”
    Hotel: “.$hotel.”
    Evento: “.$evento.”
    Dia: “.$fecha.”
    Mes: “.$mes.”
    Paxs: “.$paxs.”
    Mensaje: “.$mensaje.””;

    if (mail($mail,”Formulario de Consulta”,$message))
    Header (“Location: $thank”);

    ///
    espero que me puedan ayudar.Gracias

  110. Ruben dice:

    Hola, yo de nuevo… ya encontre la solucion, para los que lo necesiten, el error que cometia era que los correos los separaba mal:

    $mail=’mimail@servidor.com’; ‘contacto@miservidor.com’; ‘otro@miservidor.com’;
    y la forma correcta es:

    $mail=’mimail@servidor.com,contacto@miservidor.com,otro@miservidor.com’;

    la comilla va al principio y al final y no entre email como lo hacia. espero que a alguien mas le sirva.
    saludos

  111. Alejandro dice:

    Les quer√≠a consultar si a trav√©s de una opci√≥n dentro de un formulario se podr√≠an crear nuevos campos… aclaro un poco.
    Al ingresar una cantidad en un campo (ej.: 5) dentro de un formulario quiero que se generen 5 campos para poder ser rellenados y ésos campos ser enviados a través del mail.
    Desde ya muchas gracias!

  112. Dani dice:

    Buenas me gustarias que sean mas explicitos que ponga el moderador porfavor que nombre se le pone a cada script por en el ejemplo no se entiende bien

    Lea agradeceria .

    Saludos.

  113. yo dice:

    hola

  114. Miguel dice:

    Hola. Gracias por este s√ļper blog.
    Al hacer el formulario tal como dice el inicio me da este error:
    [Not Found The requested URL /√Ę‚ā¨¬Ěcontacto_script.php√Ę‚ā¨¬Ě was not found on this server.
    Apache/2.2.3 (CentOS) Server at http://www.instalahogar.com Port 80]
    y s√≠ que est√° la p√°gina .php en el servidor…
    ¬ŅPor qu√© puede ser?

  115. Richard dice:

    Como hago para procesar un archivo que tengo en php en una tabla de excel… claro ya he intentado con varias opciones pero siempre me manda directo al archivo lo que quisiera es que me ayudaran a saber como le hago para colocar un enlace desde la pagina de php para enviar a q lo abra por excel…. quien me pueda ayudar con esto le estar√≠a agradecido…

  116. eduardo dice:

    oie tengo un bronkon no c mucho de php pero tengo una bronca para un proyecto que me encargaron ,como puedo mandar a un correo electronico tipo como una ultima hoja como pedido ,mi pag es como un carrito de compras se almacena y al ver el pedido esa la quiero mandar a un correo pero no puedo me podrias hayudar

  117. jorge dice:

    hola estoy aqui para ver si me podrian ayudar estoy haciendo un peke√Īo sistema que se utilizara para llevar el control de unos productores de ca√Īa que al introducir la clave del productor me arroje sus datos, pero no me sale el codigo cuando le doy buscar me lo muestra el codigo como descarga y no me arroja los datos que deseo podrian ayudarme que sera lo que esta pasando

  118. Daniel dice:

    Hola!

    Estoy aprendiendo a crear web por mi cuenta y ahora he empezado con formularios siguiendo tu cursillo.

    Hasta he hecho lo mismo que tu pero resulta que despues de subir todo al servidor y hacer unas pruebas siempre me sale el error siguiente cuando no relleno todo el formulario:
    “Warning: Cannot modify header information – headers already sent by (output started at /home/kmercult/public_html/opinion.php:9) in /home/kmercult/public_html/opinion.php on line 30”. Y cuando lo hago todo bien me sale este: Warning: “Cannot modify header information – headers already sent by (output started at /home/kmercult/public_html/opinion.php:9) in /home/kmercult/public_html/opinion.php on line 43”.

    Ya he intentado todo pero nada, a ver en que medida me podeis ayudar.

    Gracias!!

  119. pedro dice:

    tengo el formulario elaborado en html, la validacion en js y por el lado del servidor en php, pero no logre que me redireccione a una pagina especifica despues de enviar el mensaje, el comadno o la orden:
    header( ‘Location:contacto.html’ );
    die;
    no me sirve me genera error sobre que los header ya han sido declarados y no pueden modificarse.

    Agradezco la ayuda prestada.

  120. Belen dice:

    Hola

  121. Gual dice:

    Les dejo el codigo de php al subirlo a al dominio me marca lo siguiente les dejo el codigo si me pueden ayudar gracias.

    <form action=¬®”” method=”post”>

    Nombre:

    Correo electronico:

    Mensaje:

    Tu mensaje fue enviado correctamente.

  122. Oscar dice:

    Hola Amigos, mi pregunta es que mi servidor me envia un correo a la cuenta q tengo programada en mi script pero me envia un correo todos los dias a la misma hora con campos vacios, es decir sin q nadie ingrese datos a la misma hora hace el envio todos los dias.

    pq sera que pasa esto?

    Gracias

  123. Ronnye dice:

    El c√≥digo me funciona perfecto pero cuando me llega el mensaje me sale un remitente web31@educacionvirtual.info…. como lo cambio?? gracias por su ayuda.

  124. Joug dice:

    Hola me paso lo mismos con mi web que ha Oscar porque puede ser?

    Me envia un correo todos los dias a la misma hora con campos vacios, es decir sin q nadie ingrese datos a la misma hora hace el envio todos los dias.
    pq sera que pasa esto?”

  125. ricardo dice:

    Mi nombre es Ricardo envíe mal mi formulario como puedo volverlo a enbiar

  126. ricardo dice:

    Pero si me pueden para enviarlo otra ves

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder