Foros del Web » Programando para Internet » PHP »

Solucion Email Confirmacion

Estas en el tema de Solucion Email Confirmacion en el foro de PHP en Foros del Web. Hola gente, como va... espero q bien Hace ya un tiempo q necesito solucionar un pequeño problema con esto de PHP MAILER. O sea... quisiera ...
  #1 (permalink)  
Antiguo 18/05/2010, 20:06
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años, 7 meses
Puntos: 0
Solucion Email Confirmacion

Hola gente, como va... espero q bien



Hace ya un tiempo q necesito solucionar un pequeño problema con esto de PHP MAILER. O sea... quisiera saber como puedo enviar los datos de la persona q se registro en mi WEB. O enviarle un link de confirmacion, en si... LO Q SEA MAS SIMPLE. Lo mas sencillo posible. Si es mas sencillo enviarle los datos de nuevo usuario... bienvenido sea.



Les dejo el sistema de registro y login q estoy usando... de paso si alguien esta buscando... a mi me funciona perfecto. Claro aqui esta como lo consegui yo. Luego yo le hice mis cosillas jeje...


TABLA SQL

Código PHP:
CREATE TABLE usuarios(
`
idintNOT NULL AUTO_INCREMENT ,
`
nombretext,
`
apaternotext,
`
amaternotext,
`
loginvarchar40 NOT NULL ,
`
passwordvarchar80 NOT NULL ,
`
emailtext,
UNIQUE KEY id )
); 

Formulario HTML

Código PHP:
<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

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="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

Código PHP:
<?
$server
=""/* Nuestro server mysql */
$database=""/* Nuestra base de datos */
$dbpass=""/*Nuestro password mysql */
$dbuser=""/* Nuestro user mysql */
?>

comprueba.php

Código 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


Código 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

Código 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


Código 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);
}
?>


Bien, eso seria todo.


Ahora............... tengo estos archivos:


class.phpmailer.php

y

class.smtp.php


y esto:


Código PHP:
01.<?php    
02.    
require("class.phpmailer.php");   
03.    $mail = new PHPMailer();   
04.    $mail->IsSMTP(); // Envia el correo via SMTP   
05.    $mail->SMTPAuth true// Encienda la autenticacion SMTP   
06.    $mail->Username "[email protected]"// Uusuario SMTP   
07.    $mail->Password "contrasena"// Contrasena SMTP   
08.    $webmaster_email ="[email protected]"//Direccion desde donde se envia el correo   
09.    $email="[email protected]"// Correo del receptor   
10.    $name="Britney Maria"// Nombre del receptor   
11.    $mail->From $webmaster_email;   
12.    $mail->FromName "Dargor"//Nombre del que envia el correo   
13.    $mail->AddAddress($email,$name);   
14.    $mail->AddReplyTo($webmaster_email,FromName);   
15.    $mail->WordWrap 50// Word wrap   
16.    $mail->IsHTML(true); // Enviar como HTML   
17.    $mail->Subject "Correo por phpmailer"//Asunto   
18.    $mail->Body 'Es el cuerpo del mensaje en HMTL'//Cuerpo en HMTL   
19.    $mail->AltBody ""//Cuerpo en Texto plano   
20.    if(!$mail->Send()){   
21.      echo "Error: " $mail->ErrorInfo;   
22.    }else{   
23.      echo "El Correo se ha enviado satisfactoriamente";   
24.    }   
25.?>

La pregunta es...

En usuario SMTP y contraseña etc etc. tengo q poner los datos de mi cuenta GMAIL?

y...


En correo receptor y demas... q pongo ahi? porque supuestamente ahi es donde le llega el email al nuevo usuario? eso no entiendo muy bien. Alguien me puede ayudar?

Desde ya... Gracias
  #2 (permalink)  
Antiguo 18/05/2010, 21:25
Avatar de christianphp  
Fecha de Ingreso: mayo-2010
Ubicación: Rosario
Mensajes: 79
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Solucion Email Confirmacion

Hola amigo:

Tengo algo parecido, me surgieron estos problemas cuando mi servidor se protegía de SPAM.

En usuario SMPT : pones el correo que creaste en tu servidor : contacto@*****.com

En contraseña SMPT : va el password de esa cuenta de correo: contacto@*****.com


y aca : $webmaster_email ="[email protected]"; // Ahí va tu Gmail o Hotmail que es donde

recibes los correos del formulario...


En receptor bueno me queda pendiente esa si lo solucionas agradeceria ya que estoy haciendo algo parecido

Última edición por christianphp; 18/05/2010 a las 21:30
  #3 (permalink)  
Antiguo 21/05/2010, 14:57
Avatar de dargor  
Fecha de Ingreso: octubre-2009
Mensajes: 134
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Solucion Email Confirmacion

Cita:
$mail->Username = "[email protected]"; // Uusuario SMTP
$mail->Password = "contrasena"; // Contrasena SMTP
En estos deben ir tu cuenta y contrasena de gmail o en su defecto si usas GoogleApps, la direccion conque quieres utilizar la clase.

Cita:
$webmaster_email ="[email protected]";
Es la dirección desde donde se envía el correo, debe ser la misma que la username, realmente no he probado si se puede poner otra direccion distinta de correo.

Lo del receptor, talves debi utilizar otra palabra, es el correo y el nombre de la persona que va a recibir el correo.

Última edición por dargor; 21/05/2010 a las 15:03

Etiquetas: confirmacion, email, mailer, solucion, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:14.