Foros del Web » Programando para Internet » PHP »

Email de Confirmacion

Estas en el tema de Email de Confirmacion en el foro de PHP en Foros del Web. Son exactamente las 1 de la mañana, me canse de buscar. estoy desde las 21 hrs... mañana me levanto a las 7 a trabajar.... alguien ...
  #1 (permalink)  
Antiguo 06/05/2010, 22:02
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Email de Confirmacion

Son exactamente las 1 de la mañana, me canse de buscar. estoy desde las 21 hrs...

mañana me levanto a las 7 a trabajar....



alguien me ayuda con un codigo para enviar un mail de confirmacion o q le lleguen los datos como nick y contraseña al nuevo usuarios q se registro en mi web?


a la persona q me ayude.... ufff le voy a deber mucho. me voy a descansar, les dejo el sistema de reg/login q tengo. saludos. Walter..-


(la contraseña esta encriptada)




TABLA SQL____________________________________

CREATE TABLE usuarios(
`id` int( 4 ) NOT NULL AUTO_INCREMENT ,
`nombre` text,
`apaterno` text,
`amaterno` text,
`login` varchar( 40 ) NOT NULL ,
`password` varchar( 80 ) NOT NULL ,
`email` text,
UNIQUE KEY ( id )
);

FORMULARIO HTML______________________________________


<html><body>
<h1>SectorWeb.net</h1>
<form action="crea_usuarios.php" method="POST">
Login(nick): <input type="text" name="login"><br>
Password: <input type="password" name="pass1"><br>
Repite Password: <input type="password" name="pass2"><br>
Nombre: <input type="text" name="nombre"><br>
Apellido Paterno: <input type="text" name="apaterno"><br>
Apellido Materno: <input type="text" name="amaterno"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="Crear">
</form>
</body></html>

Crea Usuarios.php______________________________________ ________


<?
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net
include("config.php"); /*Traemos el archivo config*/
/*Recibimos las variables por el metodo POST*/
$login = htmlspecialchars(trim($_POST['login']));
$pass1 = trim($_POST['pass1']);
$pass2 = trim($_POST['pass2']);
$nombre= htmlspecialchars(trim($_POST['nombre']));
$apaterno= htmlspecialchars(trim($_POST['apaterno']));
$amaterno= htmlspecialchars(trim($_POST['amaterno']));
$email = htmlspecialchars(trim($_POST['email']));
/*Hacemos la consulta */
// $query="SELECT * FROM usuarios WHERE login='$login'"; //ANTES

$link=mysql_connect($server,$dbuser,$dbpass);
$query = sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'", // Ahora
mysql_real_escape_string($login));
$result=mysql_db_query($database,$query,$link);
if(mysql_num_rows($result)){
echo "El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pass1!=$pass2) {

echo "Los passwords deben coincidir";

echo 'Click <a href="form.html">aquÃ*</a> para volver al formulario';

} else {

/* Encriptamos "Ciframos" el password

// $pass1=crypt($pass2, "semilla"); // ANTES */

$pass1=sha1(md5($pass1)); // Ahora

/* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */ // Antes

$query = sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')", // Ahora
mysql_real_escape_string($login), mysql_real_escape_string($nombre),
mysql_real_escape_string($apaterno),mysql_real_esc ape_string($amaterno),
mysql_real_escape_string($pass1), mysql_real_escape_string($email));


$result=mysql_db_query($database,$query,$link);

if(mysql_affected_rows()){

echo "Usuario introducido correctamente";

} else {

echo "Error introduciendo el usuario";

} /* Cierre del else */

} /* Cierre del else que corresponde a if(mysql_affected_rows.....) */
} /* Cierre del else que corresponde a if(mysql_num_rows...) */
?>


Config.php________________________________________ ___________


<?
$server=""; /* Nuestro server mysql */
$database=""; /* Nuestra base de datos */
$dbpass=""; /*Nuestro password mysql */
$dbuser=""; /* Nuestro user mysql */
?>

Comprueba.php_____________________________________ ____________


<?php
session_start();
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net
include("config.php");
$login = htmlspecialchars(trim($_POST['login']));
$pass = sha1(md5(trim($_POST['pass']))); // encriptamos en MD5 para despues comprar (Modificado)
// $query="SELECT * FROM usuarios WHERE login='$login'"; Antes
$link=mysql_connect($server,$dbuser,$dbpass);

$query = sprintf("SELECT usuarios.login,
usuarios.nombre,
usuarios.apaterno,
usuarios.amaterno,
usuarios.email
FROM usuarios WHERE usuarios.login='%s' && usuarios.password = '%s'", // Ahora
mysql_real_escape_string($login),mysql_real_escape _string($pass));
$result=mysql_db_query($database,$query,$link);
// if(mysql_num_rows($result)==0){ // antes
if(mysql_num_rows($result)){ // nos devuelve 1 si encontro el usuario y el password

$array=mysql_fetch_array($result);
// if($array["password"]==crypt($pass,"semilla") ){ // Antes
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar semilla para encriptar los dos passwords. */
$_SESSION["login"]=$array["login"];
$_SESSION["nombre"]=$array["nombre"];
$_SESSION["apaterno"]=$array["apaterno"];
$_SESSION["amaterno"]=$array["amaterno"];
$_SESSION["email"]=$array["email"]; // Agrgado Nuevo
header("Location:user.php");
} else {
echo "Login o Password Incorrectos"; // Ahora
}

?>


Login.php_________________________________________ ______________


<?
session_start();
if(isset($SESSION)){
header("location:user.php"); /* Si ha iniciado la sesion, vamos a user.php */
} else {
/* Cerramos la parte de codigo PHP porque vamos a escribir bastante HTML y nos será mas cómodo así que metiendo echo's */
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Identificaci&oacute;n </title>
</head>
<body>
<h1>SectorWeb.net</h1>
<h2>Identificaci&oacute;n </h2>
<form action="comprueba.php" method="POST" class="miform">
Login: <input type="text" name="login"><br>
Password: <input type="password" name="pass"><br><br>
<input type="submit" value="Entrar" class="boton">
</form>
</body></html>
<?
} /* Y cerramos el else */
?>


logout.php________________________________________ ______________


<?
session_start();
if(!isset($_SESSION["login"])){
header("location:login.php");
} else {
session_unset();
session_destroy();
echo "<h1>SectorWeb.net</h1>";
echo "Las variables de sesión han sido eliminadas, y la sesión se ha dado por finalizada correctamente da click <a href=\"login.php\">aqui para loguearte</a>";
}
?>


user.php__________________________________________ ______________



<?
session_start();
if(!isset($_SESSION["login"])){
header("location:login.php");
} else {
echo "<html><body>";
echo "<h1>SectorWeb.net</h1>";
echo "Bienvenido al Area de usurios: <strong>";
echo $_SESSION["nombre"]." ".$_SESSION["apaterno"]." ".$_SESSION["amaterno"]." ";
echo "</strong><br>Has entrado con el nick: <strong> ";
echo $_SESSION["login"];
echo "</strong><br>Para cerrar la sesión, pulsa: <a href='logout.php'>Aqui</a>";
echo "</body></html>".isset($_SESSION);
}
?>

y eso es todo!_____________________________________________ _________
  #2 (permalink)  
Antiguo 06/05/2010, 22:46
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Email de Confirmacion

Hola yo te recomiendo que descargues la clase PHPMailer
Descargar: http://blog.unijimpe.net/download/phpmailer-gmail.zip

En el archivo donde estas haciendo el INSERT a la DB agrega esto al comienzo.

Código PHP:
Ver original
  1. include("class.phpmailer.php");  //Indica la direccion de los archivos que acabas de descargar
  2. include("class.smtp.php"); //Indica la direccion de los archivos que acabas de descargar
  3.  
  4. //No modifiques nada excepto si se indica
  5. $mail = new PHPMailer();
  6. $mail->IsSMTP();
  7. $mail->SMTPAuth = true;
  8. $mail->SMTPSecure = "ssl";
  9. $mail->Host = "smtp.gmail.com";
  10. $mail->Port = 465;
  11. $mail->Username = "[email protected]"; //Agrega tu email de gmail
  12. $mail->Password = "userpass";  //Agrega tu password de tu cuenta de gmail


Y ahora agrega esto despues del INSERT

Código PHP:
Ver original
  1. $query = sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')";
  2.  
  3. if($query){
  4.  
  5.    //Envio por email
  6.  
  7.    $mail->From = "[email protected]"; //Remitente (Si quieres especificarlo)
  8. $mail->FromName = "User Name";  //REmitente (Si quieres especificarlo)
  9. $mail->Subject = "Asunto del email";
  10. $mail->MsgHTML("<b>Bienvenido</b> <br> Estos son tus nuevos datos:<br><br> Username = ".$login." <br> Password = ".$pass1. "<br>");
  11. $mail->AddAddress($email,$nombre); //Agrega los datos de a donde queires enviar el email.
  12. $mail->IsHTML(true);
  13.  
  14. if(!$mail->Send()) {
  15.   echo "Error: " . $mail->ErrorInfo;
  16. } else {
  17.   echo "Mensaje enviado correctamente";
  18. }
  19.  
  20.  
  21. }

Ahi lo tienes.

Para mas información: http://www.programacion.com/articulo..._phpmailer_213

- Regalame un karma ;)
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 07/05/2010, 19:08
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: Email de Confirmacion

acabo de leer tu respuesta... manos a la obra...


luego te cuento, mil gracias New, te debo una.

Saludos...
  #4 (permalink)  
Antiguo 07/05/2010, 20:06
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Mensaje Respuesta: Email de Confirmacion

mira NEW, esto estoy usando para el INSERT. Pero... me salen algunos errores.

Donde exactamente tengo q poner los codigos q me diste? ya los configure.


Código PHP:
<?
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net
include("config.php"); /*Traemos el archivo config*/
/*Recibimos las variables por el metodo POST*/
$login htmlspecialchars(trim($_POST['login']));
$pass1 trim($_POST['pass1']);
$pass2 trim($_POST['pass2']);
$nombrehtmlspecialchars(trim($_POST['nombre']));
$apaternohtmlspecialchars(trim($_POST['apaterno']));
$amaternohtmlspecialchars(trim($_POST['amaterno']));
$email htmlspecialchars(trim($_POST['email']));
/*Hacemos la consulta */
// $query="SELECT * FROM usuarios WHERE login='$login'"; //ANTES

$link=mysql_connect($server,$dbuser,$dbpass);
$query sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'",  // Ahora
       
mysql_real_escape_string($login)); 
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)){
  echo 
"El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
  
if($pass1!=$pass2) {

      echo 
"Los passwords deben coincidir";

      echo 
'Click <a href="registro.html">aqui*</a> para volver al formulario';

  } else {

    
/* Encriptamos "Ciframos" el password

    // $pass1=crypt($pass2, "semilla"); // ANTES */

    
$pass1=sha1(md5($pass1)); // Ahora
    
    /* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */  // Antes
  
    
$query  =  sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')",  // Ahora
                
mysql_real_escape_string($login),   mysql_real_escape_string($nombre),
                
mysql_real_escape_string($apaterno),mysql_real_escape_string($amaterno), 
                
mysql_real_escape_string($pass1),   mysql_real_escape_string($email));       
    

    
$result=mysql_db_query($database,$query,$link);

    if(
mysql_affected_rows()){
                
    echo 
"Usuario introducido correctamente, en un momento seras redireccionado...";

    } else {

    echo 
"Error introduciendo el usuario";

    } 
/* Cierre del else */

  
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */
/* Cierre del else que corresponde a if(mysql_num_rows...) */
?>
  #5 (permalink)  
Antiguo 07/05/2010, 20:07
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: Email de Confirmacion

El archivo se llama crea_usuarios.php ese es mi INSERT
  #6 (permalink)  
Antiguo 07/05/2010, 22:52
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Email de Confirmacion

Hola quedaría así

Código PHP:
Ver original
  1. <?
  2. // modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net
  3. include("config.php"); /*Traemos el archivo config*/
  4. /*Recibimos las variables por el metodo POST*/
  5. $login = htmlspecialchars(trim($_POST['login']));
  6. $pass1 = trim($_POST['pass1']);
  7. $pass2 = trim($_POST['pass2']);
  8. $nombre= htmlspecialchars(trim($_POST['nombre']));
  9. $apaterno= htmlspecialchars(trim($_POST['apaterno']));
  10. $amaterno= htmlspecialchars(trim($_POST['amaterno']));
  11. $email = htmlspecialchars(trim($_POST['email']));
  12. /*Hacemos la consulta */
  13. // $query="SELECT * FROM usuarios WHERE login='$login'"; //ANTES
  14.  
  15. $link=mysql_connect($server,$dbuser,$dbpass);
  16. $query = sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'",  // Ahora
  17.        mysql_real_escape_string($login));  
  18. $result=mysql_db_query($database,$query,$link);
  19. if(mysql_num_rows($result)){
  20.   echo "El usuario ya existe en la BD";
  21. } else {
  22. /* Ahora comprovamos que los dos pass coinciden */
  23.   if($pass1!=$pass2) {
  24.  
  25.       echo "Los passwords deben coincidir";
  26.  
  27.       echo 'Click <a href="registro.html">aqui*</a> para volver al formulario';
  28.  
  29.   } else {
  30.  
  31.     /* Encriptamos "Ciframos" el password
  32.  
  33.     // $pass1=crypt($pass2, "semilla"); // ANTES */
  34.  
  35.     $pass1=sha1(md5($pass1)); // Ahora
  36.      
  37.     /* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */  // Antes
  38.    
  39.     $query  =  sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')",  // Ahora
  40.                 mysql_real_escape_string($login),   mysql_real_escape_string($nombre),
  41.                 mysql_real_escape_string($apaterno),mysql_real_escape_string($amaterno),  
  42.                 mysql_real_escape_string($pass1),   mysql_real_escape_string($email));        
  43.      
  44.  
  45.     $result=mysql_db_query($database,$query,$link);
  46.  
  47.     if(mysql_affected_rows()){
  48.                  
  49.     echo "Usuario introducido correctamente, en un momento seras redireccionado...";
  50.  
  51.  
  52.    //Envio por email
  53.  
  54.    $mail->From = "[email protected]"; //Remitente (Si quieres especificarlo)
  55. $mail->FromName = "User Name";  //REmitente (Si quieres especificarlo)
  56. $mail->Subject = "Asunto del email";
  57. $mail->MsgHTML("<b>Bienvenido</b> <br> Estos son tus nuevos datos:<br><br> Username = ".$login." <br> Password = ".$pass1. "<br>");
  58. $mail->AddAddress($email,$nombre); //Agrega los datos de a donde queires enviar el email.
  59. $mail->IsHTML(true);
  60.  
  61. if(!$mail->Send()) {
  62.   echo "Error: " . $mail->ErrorInfo;
  63. } else {
  64.   echo "Mensaje enviado correctamente";
  65. }
  66.  
  67.  
  68.  
  69.     } else {
  70.  
  71.     echo "Error introduciendo el usuario";
  72.  
  73.     } /* Cierre del else */
  74.  
  75.   } /* Cierre del else que corresponde a if(mysql_affected_rows.....) */
  76. } /* Cierre del else que corresponde a if(mysql_num_rows...) */
  77. ?>
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #7 (permalink)  
Antiguo 08/05/2010, 13:33
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: Email de Confirmacion

hola new, mira cargue el php q me diste "crea_usuarios.php"

y me sale este error



PHP Error Message

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/a1682164/public_html/crea_usuarios.php on line 2

Free Web Hosting

PHP Error Message

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/a1682164/public_html/crea_usuarios.php on line 4

Free Web Hosting

PHP Error Message

Parse error: syntax error, unexpected T_STRING in /home/a1682164/public_html/crea_usuarios.php on line 4

Free Web Hosting
  #8 (permalink)  
Antiguo 08/05/2010, 23:16
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Email de Confirmacion

Hola amigo.

Mira yo te escribí un ejemplo, por darle una pequeña explicacion. es ovbio que debe tener errores.

Pero esos tu los tienes que ir solucionando.

Una de las cosas que no me quedan muy claras es por que usas sprintf o mysql_real_escape_string. Si las necesitas ?? SAbes para que sirven o solo copiaste el script de otro sitio y estas tratando de adaptarlo a tus necesidades.

Si es por esta última razón. Te recomiendo que lo empiezes desde 0 porque ese código se ve algo desordenado, muy teórico y poco práctico.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #9 (permalink)  
Antiguo 09/05/2010, 01:28
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: Email de Confirmacion

Cita:
Iniciado por New Ver Mensaje
Hola amigo.

Una de las cosas que no me quedan muy claras es por que usas sprintf o mysql_real_escape_string. Si las necesitas ?? SAbes para que sirven o solo copiaste el script de otro sitio y estas tratando de adaptarlo a tus necesidades.

Si es por esta última razón. Te recomiendo que lo empiezes desde 0 porque ese código se ve algo desordenado, muy teórico y poco práctico.
Vamos, seamos coherentes. por un lado le recomiendas phpmailer que es un script creado por terceros, y luego le dices que no utilice script ajenos.

Yo creo q lo mas simple era utilizar la funcion mail de php

quedaria asi

pasas la pass1 a otra variable para poder enviarla al mail sin encriptar
Código PHP:
$pass2 $pass1;
$pass1=sha1(md5($pass1)); // Ahora 
luego dentro del if que dice q fue insertado correctamente quedaria asi

Código PHP:
if(mysql_affected_rows()){
$mensaje "aqui pones lo que quieras
usuario: $login
pass: $pass2 "
;

mail($email'aqui va el titulo'$mensaje);
echo 
"Usuario introducido correctamente";



creo que con eso bastaba, bastante simple, ahora si quieres un email mas elaborado con formato html tendrias q comenzar a jugar con las cabeceras del mail.

saludos
__________________
http://chicho.ninja yiaaaa
  #10 (permalink)  
Antiguo 09/05/2010, 01:54
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Email de Confirmacion

no, la funcion de mail no es muy recomendada.

Si usas algúna que te envie por SMTP te evitarás de caer en la bandeja de no deseados de tu destinatario o de aparecer como email inseguro.

Con phpmailer te evitas de ese tipo de cosas. Y por lo regular los mails que mandes con phpmailer llegan a la bandeja de "mensajes entrantes" sin tener que parar en la bandeja de no deseaos y cosas por el estilo.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #11 (permalink)  
Antiguo 09/05/2010, 09:55
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: Email de Confirmacion

Cita:
Iniciado por New Ver Mensaje
no, la funcion de mail no es muy recomendada.

Si usas algúna que te envie por SMTP te evitarás de caer en la bandeja de no deseados de tu destinatario o de aparecer como email inseguro.

Con phpmailer te evitas de ese tipo de cosas. Y por lo regular los mails que mandes con phpmailer llegan a la bandeja de "mensajes entrantes" sin tener que parar en la bandeja de no deseaos y cosas por el estilo.
Creo que estas muy equivocado. De hecho como crees que phpmailer hace los envios? con la funcion mail.
El tema de los spam es para largo, yo lo he trabajado por años, y he leido mucho al respecto y no depende solo de la funcion mail, influyen las cabeceras que crees, si incluiste html, con o sin imagenes, y lo mas importante el servidor, hotmail por ejemplo maneja una lista negra y una categoriazacion de servidores con lo cual discrimina para enviar o no a la bandeja de entrada. si los server de tu hosting llegan a estar en la lista negra o tienen mala reputacion por el envio de spam, hagas lo q hagas tus correos llegaran a spam, y lo peor, ni siquiera llegaran.

Phpmailer no funciona por si solo, solo es una libreria que lo que hace es utilizar la funcion mail, solo que tiene un mayor trabajo de las cabeceras, con lo cual puedes enviar en formato html, adjuntar archivos, etc. pero nada ni nadie te puede asegurar que van a llegar a la bandeja de entrada.

saludos
__________________
http://chicho.ninja yiaaaa
  #12 (permalink)  
Antiguo 09/05/2010, 11:21
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
De acuerdo Respuesta: Email de Confirmacion

hola cherivera, te cuento que ayer estuve nuevamente buscando y buscando la solucion para esto de enviarle un mail de confirmacion o datos del nuevo usuario... y la verdad... es muy agotador.


Con el solo hecho de que hayas comentado en un post mio... es un placer, ya que para mi es muy valioso q alguien trate de ayudarme, eso es muy valioso para mi.
Soy nuevo en esto de PHP. Y hace poco estoy leyendo algunos manuales.

Pero en si... me gustaria saber si puedes pasarme el codigo ya armado con el INSERT q puse mas arriba, q lo llamo "crea_usuarios.php" que es el que lo mete en la BD obviamente.

Agradezco tu ayuda y a NEW tambien por darme una mano con esto...

De verdad valoro mucho su ayuda. Walter.-
  #13 (permalink)  
Antiguo 10/05/2010, 10:16
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: Email de Confirmacion

Hola djwall:

lee mas arriba, te puse la respuesta, es cosa de que veas en q seccion va, lo describi muy claro, no deberias perderte.

saludos
__________________
http://chicho.ninja yiaaaa
  #14 (permalink)  
Antiguo 10/05/2010, 11:11
Avatar de dargor  
Fecha de Ingreso: octubre-2009
Mensajes: 134
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Email de Confirmacion

aquí hay un código para utilizar phpmailer, que ya te da sus clases arregladas para funcionar con Gmail o GoogleApps y trae notas de donde poner cada campo que va a ir en el correo. la solución me parece corta y funcional. Deberías poner todo el código después de confirmar que se introducen los campos correctamente en la base de datos, separarlo solo podría confundirnos a nosotros mismos a veces.
http://mundo-php.blogspot.com/2010/0...n-gmail-o.html

Espero te sea de ayuda y cualquier cosa estamos para ayudar.
  #15 (permalink)  
Antiguo 10/05/2010, 11:29
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Email de Confirmacion

Te cuento como lo hago yo, este sería mi formulario de registro:

Código PHP:
<p align="center"><strong>Registro de Promotores </strong></p>
<
table width="661" height="393" border="0" align="center" cellpadding="0" cellspacing="0">
        <
tr>
          <
td width="662" colspan="3" align="center" valign="top" >
          <
form action="registra.php" method="post">
          <
table width="59%" border="0" cellspacing="0" cellpadding="0">
            <
tr>
              <
td height="18" colspan="4" align="center"><a href="javascript:history.go(-1)" class="Estilo19">Volver</a></td>
            </
tr>
            <
tr>
              <
td height="54" colspan="4"><div align="center"><span class="Estilo18">Esta intentando entrar en una zona restringida a usuariospor favorregistresele llevara 30 sgdespues podr&aacutetener acceso a todas las secciones.</span></div></td>
            </
tr>
            <
tr>
              <
td height="21" colspan="4"><div align="center" class="Estilo17"><strong>Registro</strong></div></td>
            </
tr>
            <
tr>
              <
td width="14%" align="right" class="Estilo18">&nbsp;</td>
              <
td width="33%" height="31" class="Estilo24">Usuario <span class="Estilo27">(max 10):</span></td>
              <
td width="43%"><input type="text" name="username" size="20" maxlength="20" class="estilotextarea44" style="font-family:verdana;  font-size:10pt" /></td>
              <
td width="10%">&nbsp;</td>
            </
tr>
            <
tr>
              <
td align="right" class="Estilo18">&nbsp;</td>
              <
td height="29" class="Estilo24">Password <span class="Estilo27">(max 10):</span></td>
              <
td><input type="password" name="password" size="10" maxlength="10" class="estilotextarea43" style="font-family:verdana;  font-size:10pt" id="password" /></td>
              <
td>&nbsp;</td>
            </
tr>
            <
tr>
              <
td align="right" class="Estilo18">&nbsp;</td>
              <
td height="29" class="Estilo24">Confirmar passw:</td>
              <
td><input type="password" name="password2" size="10" maxlength="10" class="estilotextarea42" style="font-family:verdana;  font-size:10pt" /></td>
              <
td>&nbsp;</td>
            </
tr>
            <
tr>
              <
td align="right" class="Estilo18">&nbsp;</td>
              <
td height="29" class="Estilo24">Email <span class="Estilo25"><span class="Estilo28">(max 40)</span>:</span> </td>
              <
td><input type="text" name="email" size="20" maxlength="40" class="estilotextarea41" style="font-family:verdana;  font-size:10pt" /></td>
              <
td>&nbsp;</td>
            </
tr>
            <
tr>
              <
td height="35" colspan="4" align="center"><input type="submit" value="Registrar" class="boton" /></td>
            </
tr>
            <
tr>
              <
td height="40" colspan="4" align="center"><span class="Estilo18">Le ser&aacuteenviado un correo electr&oacute;nico para confirmar sus datos por favor ingrese correctamente su e-mailgracias.</span></td>
            </
tr>
          </
table>
          </
form
Esto genera un correo con el que grabo la cadena a validar en registra.php:

Código PHP:
//añadimos la funcion que se encargara de generar un numero aleatorio
function genera_random($longitud){ 
    
$exp_reg="[^A-Z0-9]"
    return 
substr(eregi_replace($exp_reg""md5(rand())) . 
       
eregi_replace($exp_reg""md5(rand())) . 
       
eregi_replace($exp_reg""md5(rand())), 
       
0$longitud); 
}



// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
    
$username $_POST["username"];
    
$password $_POST["password"];
    
$password2 $_POST["password2"];
    
$email $_POST["email"];
    
// Hay campos en blanco
    
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
        echo 
"un campo está vacio.";
    }else{
        
// ¿Coinciden las contraseñas?
        
if($password!=$password2) {
            echo 
"Las contraseñas no coinciden";
            
        }else{
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
            
$checkuser mysql_query("SELECT usuario FROM promuser WHERE usuario='$username'");
            
$username_exist mysql_num_rows($checkuser);
            
$checkemail mysql_query("SELECT email FROM promuser WHERE email='$email'");
            
$email_exist mysql_num_rows($checkemail);
            if (
$email_exist>0) {
                echo 
"La cuenta de correo estan ya en uso";
                
        }else{
                if (
$username_exist>0) {
                echo 
"El nombre de usuario  esta ya en uso";
                
                
                
            }else{
            
                  
//agregamos la variable $activate que es un numero aleatorio de 
                  //20 digitos crado con la funcion genera_random de mas arriba
                  
                  
$activate genera_random(20);  
                  
                  
//aqui es donde insertamos los nuevos valosres en la BD  activate y el valor 1 que es desactivado
                  
                
$query 'INSERT INTO promuser (usuario, password, email, fecha, activate, estado)
                VALUES (\''
.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\',\''.$activate.'\', 1)';
                
mysql_query($query) or die(mysql_error());
                
                
                
                echo 
"<table width=70%><tr bgcolor= #61e877 class= estilo30><div align=center>";
                echo 
'Has sido registrado en tusitio como: <b>'.$username.' </b>de manera satisfactoria.<br />';
                echo 
' Gracias. Te enviaremos ahora un email<br />';
                echo 
'para activar tu cuenta, al correo que nos indicaste.<br />';
                echo 
"</div></tr>";
                echo 
"</table>";
                
                
                
                
$query   "SELECT * FROM promuser WHERE usuario='$username'";
         
$result mysql_query($query $conexion) or die ( mysql_error() );
         
$row   mysql_fetch_array($result);
         
         
$path="http://misitio.com/"//creamos nuestra direccion, con las carpetas que sean si hay
         //armamos nuestro link para enviar por mail en la variable $activateLink
$activateLink=$path."activar_cuenta.php?id=".$row['id_usuarios']."&activateKey=".$activate."";
                
                          
// Datos del email

$nombre_origen    "*Fulanito";
$email_origen     "[email protected]";
$email_destino    "".$row['email']."";  



$asunto           "".$row['usuario']." Datos de registro en TUSITIO, guarda este email.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son tus datos de registro, '
.$row['usuario'].'</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>
          <strong>TU CLAVE : </strong>'
.$row['password'].'</strong><br><br><br>
          <strong>TU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>
          <strong>TU LINK DE ACTIVACION:<br><a href="'
.$activateLink.'">'.$activateLink.' </strong></a><br><br><br>
          <strong>POR FAVOR HAs CLICK EN LINK DE ARRIBA PARA ACTIVAR tU CUENTA E INGRESAR A LA PAGINA SIN RESTRICCIONES</strong><br><br><br>
          
          <strong>GRACIAS POR REGISTRARTE EN X SITIO</strong><br><br><br>
    </div>
    </td>
  </tr>
</table>'
;



$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";


$headers .= "X-Sender: $email_origen \r\n";

$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

@
mail($email_destino$asunto$mensaje$headers); 
    }
    }
    }
    }
}else{
    

Bueno, ya has enviado el correo con la liga. Ahora, es aquí en donde valido que el usuario me haya dando un correo que sea de él, en activar_cuenta.php:

Código PHP:
//recogemos los valores enviados por el link de activacion que mandamos por mail
if (isset($_GET['id'])) {

$idval=$_GET['id'];
$activate2=$_GET['activateKey'];  ;




        //y aqui es donde cambiamos el valor 1=desactivado  por valor 0=activado

$query = "UPDATE promuser
            SET estado = '0' WHERE  id_usuarios = $idval and activate ='$activate2' ;
                mysql_query($query) or die(mysql_error());
    
                
            


?>
            
            <SCRIPT LANGUAGE="javascript">
            location.href = "index.php";
            
        </SCRIPT>
        
<?

}else{
        echo 
"activacion incompleta.";
        
        }
Gran parte de este código creo haberlo tomado de este foro, pero no recuerdo quién fue quien lo posteo, pero igual creo que funciona bien.

Saludos y espero que te sirva!
  #16 (permalink)  
Antiguo 11/05/2010, 18:02
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Exclamación Respuesta: Email de Confirmacion

Ok, hoy probe el codigo cherivera y me sale el siguiente error:



PHP Error Message

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/a1682164/public_html/crea_usuarios.php on line 3

Free Web Hosting

PHP Error Message

Parse error: syntax error, unexpected T_INCLUDE in /home/a1682164/public_html/crea_usuarios.php on line 5

Free Web Hosting



Algo hice mal verdad?


Código PHP:
<? 
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net 
include("config.php"); /*Traemos el archivo config*/ 
/*Recibimos las variables por el metodo POST*/ 
$login htmlspecialchars(trim($_POST['login'])); 
$pass2 $pass1;
$pass1=sha1(md5($pass1)); // Ahora 
$nombrehtmlspecialchars(trim($_POST['nombre'])); 
$apaternohtmlspecialchars(trim($_POST['apaterno'])); 
$amaternohtmlspecialchars(trim($_POST['amaterno'])); 
$email htmlspecialchars(trim($_POST['email'])); 
/*Hacemos la consulta */ 
// $query="SELECT * FROM usuarios WHERE login='$login'"; //ANTES 
$link=mysql_connect($server,$dbuser,$dbpass); 
$query sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'"// Ahora 
mysql_real_escape_string($login)); 
$result=mysql_db_query($database,$query,$link); 
if(
mysql_num_rows($result)){ 
echo 
"El usuario ya existe en la BD"
} else { 
mysql_free_result($result); 
/* Ahora comprovamos que los dos pass coinciden */ 
if($pass1!=$pass2) { 
echo 
"Los passwords deben coincidir"
echo 
'Click <a href="registro.html">aqui*</a> para volver al formulario'
} else { 
/* Encriptamos "Ciframos" el password 
// $pass1=crypt($pass2, "semilla"); // ANTES */ 
$pass1=sha1(md5($pass1)); // Ahora 
/* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */ // Antes 
$query sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')"// Ahora 
mysql_real_escape_string($login), mysql_real_escape_string($nombre), 
mysql_real_escape_string($apaterno),mysql_real_escape_string($amaterno), 
mysql_real_escape_string($pass1), mysql_real_escape_string($email)); 
$result=mysql_db_query($database,$query,$link);
if(
mysql_affected_rows()){
$mensaje "aqui pones lo que quieras
usuario: $login
pass: $pass2 "
;

mail($email'aqui va el titulo'$mensaje);
echo 
"Usuario introducido correctamente";



 
//Envio por email
$mail->From "[email protected]"//Remitente (Si quieres especificarlo)
$mail->FromName "Chat Musica - Tucuman"//REmitente (Si quieres especificarlo)
$mail->Subject "Bienvenido a Chat Musica!";
$mail->MsgHTML("<b>Bienvenido</b> <br> Estos son tus nuevos datos:<br><br> Username = ".$login." <br> Password = ".$pass1"<br>");
$mail->AddAddress($email,$nombre); //Agrega los datos de a donde queires enviar el email.
$mail->IsHTML(true);
if(!
$mail->Send()) {
echo 
"Error: " $mail->ErrorInfo;
} else {
echo 
"Mensaje enviado correctamente";
}
} else { 
echo 
"Error introduciendo el usuario"
/* Cierre del else */ 
/* Cierre del else que corresponde a if(mysql_affected_rows.....) */ 
/* Cierre del else que corresponde a if(mysql_num_rows...) */ 
?>



Gracias por tan valiosa ayuda. Sinceramente, a todos. Muy agradecido

Etiquetas: confirmacion, contraseña, email, login, registro, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:56.