hola chicos, de vuelta a la rutina, logre solucionar el acceder a localhost desde gmail, pero ahora me dice undefine index, esta claro , no escuentra los datos, pero no si si es al venir desde gmail, en cuestion se trata de una recuperacion de contraseña, con varios archivos php, dejo los codigos a ver si hay suerte
index.php aqui recoge el email de acceso para recuperar contraseña
Código PHP:
Ver original<?php require_once('../Connections/conexion.php'); ?>
<div class="sidebar1"></div>
<div class="content">
<form id="frmRestablecer" action="validaremail.php" method="post">
<div class="panel-heading"> Restaurar contraseña </div>
<div class="panel-body">
<p></p>
<div class="form-group">
<label for="email"> Escribe el email asociado a tu cuenta para recuperar tu contraseña </label>
<input type="email" id="email" class="alta1" name="email" required>
<input type="hidden" id="asunto" name="asunto" value="Recuperar password">
</div>
<div class="form-group">
<input type="submit" class="boton" value="Recuperar datos" >
</div>
</form>
<div id="mensaje">
</div>
</div>
<!-- /container --></div>
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$("frmRestablecer").submit(function(event){
event.preventDefault();
$.ajax({
url:'validaremail.php',
type:'post',
dataType:'json',
data:$("frmRestablecer").serializeArray()
}).done(function(respuesta){
$("mensaje").html(respuesta.mensaje);
$("email").val('');
});
});
});
</script>
</body>
validaremail.php recoge datos y los manda por email con phpmailer
Código PHP:
Ver original<?php
include_once('../phpmailer/class.phpmailer.php');
include_once('../phpmailer/class.smtp.php');
$idusuario="idusuario";
$token="token";
function generarLinkTemporal($idusuario, $username){
// Se genera una cadena para validar el cambio de contraseña
$cadena = $idusuario.$username.rand(1,9999999).date('Y-m-d');
$conexion = new mysqli('localhost', 'root', 'xxx', 'carritocompras');
// Se inserta el registro en la tabla pass
$sql = "INSERT INTO pass (idusuario, username, token, creado) VALUES($idusuario,'$username','$token',NOW());";
$resultado = $conexion->query($sql);
if($resultado){
$enlace = $_SERVER["SERVER_NAME"]. '/pass/http://localhost/tienda cachemira/nueva carpeta/restablecer.php?idusuario='.md5($idusuario).'&token='.$token; return $enlace;
}
else
return FALSE;
}
$para = $_POST['email'];
$asunto = $_POST['asunto'];
//$Usuario = $_POST['Usuario'];
//$mensaje = $_POST['mensaje'];
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Password = 'xxxx';
$mail->AddAddress($para);
$mail->Subject = $asunto;
$mail->Body = '?><html>
<head>
<title>Restablece tu contraseña</title>
</head>
<body>
<p>Hemos recibido una petición para restablecer la contraseña de tu cuenta.</p>
<p>Si hiciste esta petición, haz clic en el siguiente enlace, si no hiciste esta petición puedes ignorar este correo.</p>
<p>
<strong>Enlace para restablecer tu contraseña</strong><br>
<a href=http://localhost/tienda%20cachemira/nueva%20carpeta/restablecer.php>Restablecer contraseña</a>
</p>
</body>
</html>';
$enlace ='/pass/http://localhost/tienda%20cachemira/nueva%20carpeta/restablecer.php?idusuario='.md5($idusuario).'&token='.$token ;
$mail->IsHTML(true);
if($mail->Send())
{
echo'<script type="text/javascript">
alert("Enviado Correctamente");
window.location="index.php"
</script>';
}
else{
echo'<script type="text/javascript">
alert("NO ENVIADO, intentar de nuevo");
window.location="index.php"
</script>';
}?>
crea un link en gmail, que al clicar lo lleva a esta pagina
restablecer.php
Código PHP:
Ver original<?php
include_once('../phpmailer/class.phpmailer.php');
include_once('../phpmailer/class.smtp.php');
$token = $_GET['token'];
$idusuario = $_GET['idusuario'];
$conexion = new mysqli('localhost', 'root', 'sarat0ga76', 'carritocompras');
$sql = "SELECT * FROM pass WHERE token = '$token'";
$resultado = $conexion->query($sql);
if( $resultado->num_rows > 0 ){
$usuario = $resultado->fetch_assoc();
if( md5($usuario['idusuario']) == $idusuario ){ ?>
<div class="container" role="main">
<div class="col-md-4"></div>
<div class="col-md-4">
<form action="cambiarpassword.php" method="post">
<div class="panel panel-default">
<div class="panel-heading"> Restaurar contraseña </div>
<div class="panel-body">
<p></p>
<div class="form-group">
<label for="password"> Nueva contraseña </label>
<input type="password" class="form-control" name="password1" required>
</div>
<div class="form-group">
<label for="password2"> Confirmar contraseña </label>
<input type="password" class="form-control" name="password2" required>
</div>
<input type="hidden" name="token" value="<?php echo $token ?>">
<input type="hidden" name="idusuario" value="<?php echo $idusuario ?>">
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Recuperar contraseña" >
</div>
</div>
</div>
</form>
</div>
<div class="col-md-4"></div>
</div> <!-- /container -->
<script src="js/jquery-1.11.1.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
<?php
}}?>
gracias