Me "copié" un registro de Gonzalo Silverio que circulaba por la Red y el registro me funciona pero no consigo hacer que me envie el mail. Me he bajado el hmailserver pero no sé si en este archivo debo de modificar algo más
Lo único que he cambiado es:
Código
$destinatario = $str_correo; //A quien se envia $nomAdmin = 'Jose numis'; //Quien envia $mailAdmin = 'bgnumis@gmail.com'; //Mail de quien envia
¿Debería cambiar algo más de lo que venía por defecto? ¿Hay algún ejemplo de como enviar mails con hmailserver que sea sencillo?
Código
<?php /* Instituto Tecnologico de Zacatepec, Morelos Descripcion: Este archivo permite guardar un nuevo usuario. Author: Gonzalo Silverio gonzasilve@gmail.com Archivo: guardarRegistro.php */ //Recuperar los datos del formulario de registro //Devuelve true si la cadena que llega esta VACIA function estaEnBlanco($cadena) { return true; return false; } //Devuelve true si la longitud de la cadena (primer parametro) // que llega es menor que el numero (segundo parametro) function validaTamanio($cadena,$longitud) { return true; return false; } // devuelve true SI ha escrito, un email NO VALIDO function esCorreoInvalido($str_email) { return true; return false; } // devuelve una cadena escapada de algunos caracteres que // pudieran servir para un ataque de sql injection function escaparQuery($cadena) { //Quitar palabras reservadas y operadores for($i=0; $i<count($str_KeywordsSQL); $i++) { } for($i=0; $i<count($str_OperadoresSQL); $i++) { } for($i=0; $i<count($str_DelimitadoresSQL); $i++) { } return $cadena; } $mensajesAll= ""; //Mensajes para el nombre if( estaEnBlanco($str_nombre) ) $mensajesAll = "<li>Por favor, escriba su Nombre.</li>"; if( validaTamanio($str_nombre,3) ) $mensajesAll .= "<li>Su Nombre como minimo debe tener 3 caracteres.</li>"; //Mensajes para el Apellido Paterno if( estaEnBlanco($str_apPaterno) ) $mensajesAll .= "<li>Por favor, escriba su Apellido Paterno.</li>"; if( validaTamanio($str_apPaterno,3) ) $mensajesAll .= "<li>Su Apellido Paterno como minimo debe tener 3 caracteres.</li>"; //Mensajes para el Apellido Materno if( estaEnBlanco($str_apMaterno) ) $mensajesAll .= "<li>Por favor, escriba su Apellido Materno.</li>"; if( validaTamanio($str_apMaterno,3) ) $mensajesAll .= "<li>Su Apellido Materno como minimo debe tener 3 caracteres.</li>"; //Mensajes para el Correo electronico if( estaEnBlanco($str_correo) || validaTamanio($str_correo,5) || esCorreoInvalido($str_correo) ) $mensajesAll .= "<li>Por favor, escriba una direccion de correo electronico valida.</li>"; //Mensajes para el nombre de usuario if( estaEnBlanco($str_username) ) $mensajesAll .= "<li>Por favor, escriba un nombre de usuario. Este dato le servira para iniciar sesion y ver el contenido.</li>"; if( validaTamanio($str_username,5) ) $mensajesAll .= "<li>Su nombre de usuario como minimo debe tener 5 caracteres.</li>"; //Mensajes para el password if( estaEnBlanco($str_password) ) $mensajesAll .= "<li>Por favor, escriba una contraseña.</li>"; if( validaTamanio($str_password,5) ) $mensajesAll .= "<li>Su contraseña como minimo debe tener 5 caracteres.</li>"; //Mensajes para la confirmacion del password if( estaEnBlanco($str_password2) || validaTamanio($str_password2,5) ) $mensajesAll .= "<li>Por favor, confirme la contraseña anterior.</li>"; $mensajesAll .= "<li>Por favor, repita la contraseña anterior.</li>"; //Mensajes para el tipo de usuario if( estaEnBlanco($i_TipoUsuario) ) $mensajesAll .= "<li>Por favor, indique el tipo de usuaurio.</li>"; $log = $mensajesAll."<br>"; //Si se generaron mensajes de error al validar... //..Redireccion a la pagina de registro para mostrar msg de error al usuario //Enviar los datos que habia escrito antes de enviar ?> <form id="frm_error" name="frm_error" method="post" action="registro.php"> <input type="hidden" name="error" value="1" /> <input type="hidden" name="msgs_error" value='<?php echo $mensajesAll ?>' /> <input type="hidden" name="str_nombre" value='<?php echo $str_nombre ?>' /> <input type="hidden" name="str_apPaterno" value='<?php echo $str_apPaterno ?>' /> <input type="hidden" name="str_apMaterno" value='<?php echo $str_apMaterno ?>' /> <input type="hidden" name="str_correo" value='<?php echo $str_correo ?>' /> <input type="hidden" name="str_username" value='<?php echo $str_username ?>' /> <input type="hidden" name="str_password" value='<?php echo $str_password ?>' /> <input type="hidden" name="str_password2" value='<?php echo $str_password2 ?>' /> </form> <script type="text/javascript"> //Redireccionar con el formulario creado document.frm_error.submit(); </script> <?php exit; } ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>.:: Registrar Usuario ::. </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="estilos.css" type="text/css"> <script src="jquery171.js" type="text/javascript"></script> <script src="jquery.validate.js" type="text/javascript"></script> <script type="text/javascript" src="jquery.alerts.js"></script> <link href="jquery.alerts.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> <!-- $().ready(function() { }); // --> </script> </head> <body> <?php $mensajesAll = ""; $username_duplicado = false; $email_duplicado = false; //Escapar las cadenas para avitar SQL Injection $str_username = escaparQuery($str_username); $str_correo = escaparQuery($str_correo); //Conectar la BD include("conectar_bd.php"); conectar_bd(); //Validar que el nombre de usuario no exista en la BD $sql = "SELECT id_usuario FROM tbl_users $log .= $sql."<br>"; //Si ya existe el usuario en la BD... $mensajesAll = "<li>El nombre de usuario <b>".$str_username."</b> ya fue registrado por otra persona. Por favor, escriba otro.</li>"; $username_duplicado = true; } //Validar que el email no exista en la BD $sql = "SELECT id_usuario FROM tbl_users WHERE tx_correo='".$str_correo."';"; $log .= $sql."<br>"; //Si ya existe el email en la BD... $mensajesAll = "<li>El correo electronico <b>".$str_correo."</b> ya fue registrado por otra persona. Por favor, escriba otro.</li>"; $email_duplicado = true; } //Si ambos datos ya estan en la Base de datos mostrar un solo msg if( $username_duplicado && $email_duplicado) $mensajesAll = "<li>Ambos, nombre de usuario <b>".$str_username."</b> y correo electronico <b>".$str_correo."</b> ya fueron registrados por otra persona. Por favor, cambie esos datos.</li>"; //..Redireccion a la pagina de registro para mostrar msg de error al usuario //Enviar los datos que habia escrito antes de enviar $log .= $mensajesAll."<br>"; //..Redireccion a la pagina de registro para mostrar msg de error al usuario //Enviar los datos que habia escrito antes de enviar ?> <form id="frm_error" name="frm_error" method="post" action="registro.php"> <input type="hidden" name="error" value="2" /> <input type="hidden" name="msgs_error" value='<?php echo $mensajesAll ?>' /> <input type="hidden" name="str_nombre" value='<?php echo $str_nombre ?>' /> <input type="hidden" name="str_apPaterno" value='<?php echo $str_apPaterno ?>' /> <input type="hidden" name="str_apMaterno" value='<?php echo $str_apMaterno ?>' /> <input type="hidden" name="str_correo" value='<?php echo $str_correo ?>' /> <input type="hidden" name="str_username" value='<?php echo $str_username ?>' /> <input type="hidden" name="str_password" value='<?php echo $str_password ?>' /> <input type="hidden" name="str_password2" value='<?php echo $str_password2 ?>' /> </form> <script type="text/javascript"> //Redireccionar con el formulario creado document.frm_error.submit(); </script> <?php exit; } //..Si llega asta aqui es que todos los datos son validos, procedemos a darlo de alta en BD $str_elNombre = $str_nombre." ".$str_apPaterno; $str_elNombreCompleto = $str_nombre." ".$str_apPaterno." ".$str_apMaterno; //Formar el query para el insert del nuevo usuario $queryInsert="INSERT INTO tbl_users ( tx_nombre, tx_apellidoPaterno, tx_apellidoMaterno, tx_correo, tx_username, tx_password, id_TipoUsuario, dt_registro ) VALUES( '".$str_nombre."', '".$str_apPaterno."', '".$str_apMaterno."', '".$str_correo."', '".$str_username."', ".$i_TipoUsuario.", $log .= $queryInsert."<br>"; //echo $log; //exit; // Le Envio un correo electronico de bienvenida $destinatario = $str_correo; //A quien se envia $nomAdmin = 'Jose numis'; //Quien envia $mailAdmin = 'bgnumis@gmail.com'; //Mail de quien envia $urlAccessLogin = 'http://localhost/autenticar_usuarios'; //Url de la pantalla de login $elmensaje = ""; $asunto = $str_elNombre.", Gracias por registrarte!"; $cuerpomsg =' <h2>.::Registrar usuarios::.</h2> <p>Le damos la mas cordial bienvenida, desde ahora usted podra gozar de los beneficios de haberse identificado y acceder a contenido exclusivo de esta comunidad.</p> <table border="0" > <tr> <td colspan="2" align="center" >Sus datos de acceso para <a href="'.$urlAccessLogin.'">'.$urlAccessLogin.'</a><br></td> </tr> <tr> <td> Nombre </td> <td> <b>'.$str_elNombreCompleto.'</b> </td> </tr> <tr> <td> Nombre de usuario </td> <td> <b>'.$str_username.'</b> </td> </tr> <tr> <td> Password </td> <td> <b>'.$str_password.'</b> </td> </tr> </table> <br/><br/> <p><b>Gracias por su preferencia, hasta pronto.</b></p> <br><br>'; //Establecer cabeceras para la funcion mail() //version MIME $cabeceras = "MIME-Version: 1.0\r\n"; //Tipo de info $cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n"; //direccion del remitente $cabeceras .= "From: ".$nomAdmin." <".$mailAdmin.">"; $i_EmailEnviado = 0; //Si se envio el email $i_EmailEnviado = 1; //Cerrrar conexion a la BD // Mostrar resultado del registro ?> <form id="frm_registro_status" name="frm_registro_status" method="post" action="index.php"> <input type="hidden" name="status_registro" value="1" /> <input type="hidden" name="i_EmailEnviado" value='<?php echo $i_EmailEnviado ?>' /> </form> <script type="text/javascript"> //Redireccionar con el formulario creado document.frm_registro_status.submit(); </script> </body> </html>
Mod: Temas sobre PHP van al subforo de PHP.