elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  hmail
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hmail  (Leído 1,365 veces)
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
hmail
« en: 16 Agosto 2015, 19:41 pm »

hola,

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
  1.  
  2. $destinatario = $str_correo;                    //A quien se envia
  3.    $nomAdmin           = 'Jose numis';           //Quien envia
  4.    $mailAdmin      = 'bgnumis@gmail.com';       //Mail de quien envia
  5.  
  6.  


¿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
  1. <?php
  2.    /*
  3.         Instituto Tecnologico de Zacatepec, Morelos
  4.     Descripcion:   Este archivo permite guardar un nuevo usuario.
  5.     Author:     Gonzalo Silverio  gonzasilve@gmail.com
  6.     Archivo:    guardarRegistro.php
  7.     */
  8.    //Recuperar los datos del formulario de registro
  9.    $str_nombre         =trim($_POST['tx_nombre']);
  10.    $str_apPaterno  =trim($_POST['tx_apPaterno']);
  11.    $str_apMaterno  =trim($_POST['tx_apMaterno']);
  12.    $str_correo         =trim($_POST['tx_correo']);
  13.    $str_username       =trim($_POST['tx_username']);
  14.    $str_password       =trim($_POST['tx_password']);
  15.    $str_password2  =trim($_POST['tx_password2']);
  16.    $i_TipoUsuario  =trim($_POST['i_tipoUsuario']);
  17.  
  18.    //Devuelve true si la cadena que llega esta VACIA
  19.    function estaEnBlanco($cadena) {
  20.        if(strlen( trim($cadena) ) == 0 )
  21.            return true;
  22.        return false;
  23.    }
  24.  
  25.    //Devuelve true si la longitud de la cadena (primer parametro)
  26.    // que llega  es menor que el numero (segundo parametro)
  27.    function validaTamanio($cadena,$longitud) {
  28.        if(strlen( trim($cadena) ) < $longitud )
  29.            return true;
  30.        return false;
  31.    }
  32.  
  33.    // devuelve true SI ha escrito, un email NO VALIDO
  34.    function esCorreoInvalido($str_email) {
  35.        if(!filter_var(trim($str_email), FILTER_SANITIZE_EMAIL))
  36.            return true;
  37.        return false;
  38.    }
  39.  
  40.    // devuelve una cadena escapada de algunos caracteres que
  41.    // pudieran servir para un ataque de sql injection
  42.    function escaparQuery($cadena) {
  43.        $str_KeywordsSQL            = array("select ","insert ","delete ","update ","union ");
  44.        $str_OperadoresSQL      = array("like ","and ","or ","not ","<",">","<>","=","<");
  45.        $str_DelimitadoresSQL = array(";","(",")","'");
  46.  
  47.        //Quitar palabras reservadas y operadores
  48.        for($i=0; $i<count($str_KeywordsSQL); $i++) {
  49.            $cadena = str_replace($str_KeywordsSQL[$i], "",strtolower($cadena) );
  50.        }
  51.        for($i=0; $i<count($str_OperadoresSQL); $i++) {
  52.            $cadena = str_replace($str_OperadoresSQL[$i], "",strtolower($cadena) );
  53.        }
  54.        for($i=0; $i<count($str_DelimitadoresSQL); $i++) {
  55.            $cadena = str_replace($str_DelimitadoresSQL[$i], "",strtolower($cadena) );
  56.        }
  57.  
  58.        return $cadena;
  59.    }
  60.  
  61.  
  62.    $mensajesAll= "";
  63.  
  64.    //Mensajes para el nombre
  65.    if( estaEnBlanco($str_nombre) )
  66.        $mensajesAll = "<li>Por favor, escriba su Nombre.</li>";
  67.    if( validaTamanio($str_nombre,3) )
  68.        $mensajesAll .= "<li>Su Nombre como minimo debe tener 3 caracteres.</li>";
  69.    //Mensajes para el Apellido Paterno
  70.    if( estaEnBlanco($str_apPaterno) )
  71.        $mensajesAll .= "<li>Por favor, escriba su Apellido Paterno.</li>";
  72.    if( validaTamanio($str_apPaterno,3) )
  73.        $mensajesAll .= "<li>Su Apellido Paterno como minimo debe tener 3 caracteres.</li>";
  74.    //Mensajes para el Apellido Materno
  75.    if( estaEnBlanco($str_apMaterno) )
  76.        $mensajesAll .= "<li>Por favor, escriba su Apellido Materno.</li>";
  77.    if( validaTamanio($str_apMaterno,3) )
  78.        $mensajesAll .= "<li>Su Apellido Materno como minimo debe tener 3 caracteres.</li>";
  79.    //Mensajes para el Correo electronico
  80.    if( estaEnBlanco($str_correo) || validaTamanio($str_correo,5) || esCorreoInvalido($str_correo) )
  81.        $mensajesAll .= "<li>Por favor, escriba una direccion de correo electronico valida.</li>";
  82.    //Mensajes para el nombre de usuario
  83.    if( estaEnBlanco($str_username) )
  84.        $mensajesAll .= "<li>Por favor, escriba un nombre de usuario. Este dato le servira para iniciar sesion y ver el contenido.</li>";
  85.    if( validaTamanio($str_username,5) )
  86.        $mensajesAll .= "<li>Su nombre de usuario como minimo debe tener 5 caracteres.</li>";
  87.    //Mensajes para el password
  88.    if( estaEnBlanco($str_password) )
  89.        $mensajesAll .= "<li>Por favor, escriba una contrase&ntilde;a.</li>";
  90.    if( validaTamanio($str_password,5) )
  91.        $mensajesAll .= "<li>Su contrase&ntilde;a como minimo debe tener 5 caracteres.</li>";
  92.    //Mensajes para la confirmacion del password
  93.    if( estaEnBlanco($str_password2) || validaTamanio($str_password2,5) )
  94.        $mensajesAll .= "<li>Por favor, confirme la contrase&ntilde;a anterior.</li>";
  95.    if( trim($str_password) != trim($str_password2) )
  96.        $mensajesAll .= "<li>Por favor, repita la contrase&ntilde;a anterior.</li>";    
  97.    //Mensajes para el tipo de usuario
  98.    if( estaEnBlanco($i_TipoUsuario) )
  99.        $mensajesAll .= "<li>Por favor, indique el tipo de usuaurio.</li>";
  100.  
  101.    $log = $mensajesAll."<br>";
  102.  
  103.    //Si se generaron mensajes de error al validar...
  104.    if ( trim($mensajesAll) != "" ) {
  105.        //..Redireccion a la pagina de registro para mostrar msg de error al usuario
  106.        //Enviar los datos que habia escrito antes de enviar
  107.    ?>
  108.    <form id="frm_error"   name="frm_error" method="post" action="registro.php">
  109.        <input type="hidden" name="error" value="1" />
  110.        <input type="hidden" name="msgs_error" value='<?php echo $mensajesAll ?>' />
  111.        <input type="hidden" name="str_nombre" value='<?php echo $str_nombre ?>' />
  112.        <input type="hidden" name="str_apPaterno" value='<?php echo $str_apPaterno ?>' />
  113.        <input type="hidden" name="str_apMaterno" value='<?php echo $str_apMaterno ?>' />
  114.        <input type="hidden" name="str_correo" value='<?php echo $str_correo ?>' />
  115.        <input type="hidden" name="str_username" value='<?php echo $str_username ?>' />
  116.        <input type="hidden" name="str_password" value='<?php echo $str_password ?>' />
  117.        <input type="hidden" name="str_password2" value='<?php echo $str_password2 ?>' />
  118.    </form>
  119.    <script type="text/javascript">
  120.        //Redireccionar con el formulario creado
  121.        document.frm_error.submit();
  122.    </script>
  123. <?php
  124.        exit;
  125.    }
  126. ?>
  127. <!DOCTYPE html>
  128. <html xmlns="http://www.w3.org/1999/xhtml">
  129. <head>
  130.    <title>.:: Registrar Usuario ::. </title>
  131.  
  132.    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  133.    <link rel="stylesheet" href="estilos.css" type="text/css">
  134.    <script src="jquery171.js" type="text/javascript"></script>
  135.    <script src="jquery.validate.js" type="text/javascript"></script>
  136.    <script type="text/javascript" src="jquery.alerts.js"></script>
  137.    <link href="jquery.alerts.css" rel="stylesheet" type="text/css" />
  138.  
  139.    <script type="text/javascript">
  140.    <!--
  141.        $().ready(function() {
  142.  
  143.        });
  144.    // -->
  145.    </script>
  146.  
  147. </head>
  148. <body>
  149.  
  150. <?php
  151.    $mensajesAll                = "";
  152.    $username_duplicado = false;
  153.    $email_duplicado        = false;
  154.    //Escapar las cadenas para avitar SQL Injection
  155.    $str_username = escaparQuery($str_username);
  156.    $str_correo     = escaparQuery($str_correo);
  157.  
  158.    //Conectar la BD
  159.    include("conectar_bd.php");
  160.    conectar_bd();
  161.  
  162.  
  163.    //Validar que el nombre de usuario no exista en la BD
  164.    $sql = "SELECT  id_usuario  FROM tbl_users
  165.    WHERE tx_username = '".trim($str_username)."';";
  166.    $rs_sql = mysql_query($sql);
  167.    $log .=  $sql."<br>";
  168.  
  169.    //Si ya existe el usuario en la BD...
  170.    if ( $fila  = mysql_fetch_object($rs_sql) ) {
  171.        $mensajesAll = "<li>El nombre de usuario <b>".$str_username."</b> ya fue registrado
  172.        por otra persona. Por favor, escriba otro.</li>";
  173.        $username_duplicado = true;
  174.    }
  175.  
  176.    //Validar que el email no exista en la BD
  177.    $sql = "SELECT  id_usuario  FROM tbl_users
  178.    WHERE tx_correo='".$str_correo."';";
  179.    $rs_sql = mysql_query($sql);
  180.    $log .=  $sql."<br>";
  181.  
  182.  
  183.    //Si ya existe el email en la BD...
  184.    if ( $fila  = mysql_fetch_object($rs_sql) ) {
  185.        $mensajesAll = "<li>El correo electronico <b>".$str_correo."</b> ya fue registrado
  186.        por otra persona. Por favor, escriba otro.</li>";
  187.        $email_duplicado        = true;
  188.    }
  189.    //Si ambos datos ya estan en la Base de datos mostrar un solo msg
  190.    if( $username_duplicado && $email_duplicado)
  191.        $mensajesAll = "<li>Ambos, nombre de usuario <b>".$str_username."</b>
  192.        y correo electronico <b>".$str_correo."</b> ya fueron registrados por otra persona.
  193.        Por favor, cambie esos datos.</li>";
  194.    //..Redireccion a la pagina de registro para mostrar msg de error al usuario
  195.    //Enviar los datos que habia escrito antes de enviar
  196.  
  197.    $log .=  $mensajesAll."<br>";
  198.  
  199.  
  200.    if ( trim($mensajesAll) != "" ) {
  201.        //..Redireccion a la pagina de registro para mostrar msg de error al usuario
  202.        //Enviar los datos que habia escrito antes de enviar
  203.        ?>
  204.        <form id="frm_error"   name="frm_error" method="post" action="registro.php">
  205.            <input type="hidden" name="error" value="2" />
  206.            <input type="hidden" name="msgs_error" value='<?php echo $mensajesAll ?>' />
  207.            <input type="hidden" name="str_nombre" value='<?php echo $str_nombre ?>' />
  208.            <input type="hidden" name="str_apPaterno" value='<?php echo $str_apPaterno ?>' />
  209.            <input type="hidden" name="str_apMaterno" value='<?php echo $str_apMaterno ?>' />
  210.            <input type="hidden" name="str_correo" value='<?php echo $str_correo ?>' />
  211.            <input type="hidden" name="str_username" value='<?php echo $str_username ?>' />
  212.            <input type="hidden" name="str_password" value='<?php echo $str_password ?>' />
  213.            <input type="hidden" name="str_password2" value='<?php echo $str_password2 ?>' />
  214.        </form>
  215.        <script type="text/javascript">
  216.            //Redireccionar con el formulario creado
  217.            document.frm_error.submit();
  218.        </script>
  219.            <?php
  220.        exit;
  221.    }
  222.  
  223.  
  224.    //..Si llega asta aqui es que todos los datos son validos, procedemos a darlo de alta en BD
  225.    $str_elNombre               = $str_nombre." ".$str_apPaterno;
  226.    $str_elNombreCompleto = $str_nombre." ".$str_apPaterno." ".$str_apMaterno;
  227.  
  228.  
  229.    //Formar el query para el insert del nuevo usuario
  230.    $queryInsert="INSERT INTO tbl_users (
  231.    tx_nombre,
  232.    tx_apellidoPaterno,
  233.    tx_apellidoMaterno,
  234.    tx_correo,
  235.    tx_username,
  236.    tx_password,
  237.    id_TipoUsuario,
  238.    dt_registro )
  239.    VALUES(
  240.    '".$str_nombre."',
  241.    '".$str_apPaterno."',
  242.    '".$str_apMaterno."',
  243.    '".$str_correo."',
  244.    '".$str_username."',
  245.    '".md5($str_password)."',
  246.    ".$i_TipoUsuario.",
  247. '".date("Y-m-d H:i:s")."');";
  248.  
  249.    $log .=  $queryInsert."<br>";
  250.  
  251.    //echo $log;
  252.    //exit;
  253.  
  254.    mysql_query($queryInsert);
  255.  
  256.    // Le  Envio  un correo electronico  de bienvenida
  257.    $destinatario = $str_correo;                    //A quien se envia
  258.    $nomAdmin           = 'Jose numis';           //Quien envia
  259.    $mailAdmin      = 'bgnumis@gmail.com';       //Mail de quien envia
  260.    $urlAccessLogin = 'http://localhost/autenticar_usuarios';       //Url de la pantalla de login
  261.  
  262.    $elmensaje = "";
  263.    $asunto = $str_elNombre.", Gracias por registrarte!";
  264.  
  265.    $cuerpomsg ='
  266.    <h2>.::Registrar usuarios::.</h2>
  267.    <p>Le damos la mas cordial bienvenida, desde ahora usted podra gozar de los beneficios de
  268.    haberse identificado y acceder a contenido exclusivo de esta comunidad.</p>
  269.        <table border="0" >
  270.        <tr>
  271.            <td colspan="2" align="center" >Sus datos de acceso para <a href="'.$urlAccessLogin.'">'.$urlAccessLogin.'</a><br></td>
  272.        </tr>
  273.        <tr>
  274.            <td> Nombre </td>
  275.            <td> <b>'.$str_elNombreCompleto.'</b> </td>
  276.        </tr>
  277.        <tr>
  278.            <td> Nombre de usuario </td>
  279.            <td> <b>'.$str_username.'</b> </td>
  280.        </tr>
  281.        <tr>
  282.            <td> Password </td>
  283.            <td> <b>'.$str_password.'</b> </td>
  284.        </tr>
  285.        </table> <br/><br/>
  286.    <p><b>Gracias por su preferencia, hasta pronto.</b></p> <br><br>';
  287.  
  288.    date_default_timezone_set('America/Mexico_City');
  289.  
  290.    //Establecer cabeceras para la funcion mail()
  291.    //version MIME
  292.    $cabeceras = "MIME-Version: 1.0\r\n";
  293.    //Tipo de info
  294.    $cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
  295.    //direccion del remitente
  296.    $cabeceras .= "From: ".$nomAdmin." <".$mailAdmin.">";
  297.    $i_EmailEnviado = 0;
  298.  
  299.    //Si se envio el email
  300.    if( mail($destinatario,$asunto,$cuerpomsg,$cabeceras) )
  301.        $i_EmailEnviado = 1;
  302.  
  303.    //Cerrrar conexion a la BD
  304.    mysql_close($conexio);
  305.  
  306.    // Mostrar resultado del registro
  307.    ?>
  308.    <form id="frm_registro_status"   name="frm_registro_status" method="post" action="index.php">
  309.        <input type="hidden" name="status_registro" value="1" />
  310.        <input type="hidden" name="i_EmailEnviado" value='<?php echo $i_EmailEnviado ?>' />
  311.    </form>
  312.    <script type="text/javascript">
  313.        //Redireccionar con el formulario creado
  314.        document.frm_registro_status.submit();
  315.    </script>
  316. </body>
  317. </html>
  318.  
  319.  
  320.  


Mod: Temas sobre PHP van al subforo de PHP.


« Última modificación: 18 Agosto 2015, 14:28 pm por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines