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(
`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
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']);
$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
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ón </title>
</head>
<body>
<h1>SectorWeb.net</h1>
<h2>Identificació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