Boa noite, amigos. Estou criando um sistema de login, com a funcionalidade de redefinir senha.
Criei o formulário:
<?php
require_once '../classes/usuarios.php';?><htmllang="pt-br"><head><metacharset="utf-8"><title>SGI - PAINEL DE CONTROLE</title><linktype="text/css"rel="stylesheet"media="screen"href="estilos.css"/><scripttype="text/javascript"language="javascript">function valida_form(){if(document.getElementById("email").value ==""){
alert('Por favor, digite o E-mail do usuário!');
document.getElementById("email").focus();returnfalse}}</script></head><body><divstyle="text-align:center"><h2><fontcolor="#ffffff">ESQUECI MINHA SENHA...</h2></font><br><br></div><divid="form"><formmethod="POST"action="envia-nova-senha.php"onsubmit="return valida_form(this)"><label>Informe seu e-mail:</label><inputtype="email"id="email"name="email"placeholder="E-mail"maxlength="520"><br><inputtype="submit"name="postar"value="SOLICITAR"><br></form><?php
?></div></body></head></html>
o arquivo "envia-nova-senha.php:
<?php
session_start();//require_once "../config.php";if(isset($_POST['postar'])){if(empty(trim($_POST["email"]))){
header("location: redefine_password_usu.php");}else{
$email = trim($_POST["email"]);
$dsn =("mysql:host=localhost;dbname="meu banco";charset=utf8");
$user ="meu usuario";
$pass ="minha senha";
$pdo =new PDO($dsn,$user,$pass);
$sql =("SELECT * FROM usuarios WHERE email='$email'");
$stm = $pdo->prepare($sql);
$stm->execute();
$dados = $stm->fetchAll(PDO::FETCH_OBJ);foreach($dados as $reg):
$id = $reg->id ."";
$nome = $reg->nome ."";
$senha = $reg->senha ."";
$mail = $reg->email ."";
$chave = sha1($id.$senha);
endforeach;if($chave){
header("location: altera_senha.php?$chave");
$_SESSION['destinatario']= $mail;
$_SESSION['nome']= $nome;}else{
echo '<script> alert ("E-mail não consta em nosso banco de dados. Por favor, entre em contato com o administrador do sistema."); location.href=("redefine_password_usu.php")</script>';}}}?>
e o arquivo "altera_senha.php":
<?php
session_start();
$chave = $_SERVER['QUERY_STRING'];
$value = $_SESSION['destinatario'];
$name = $_SESSION['nome'];if(empty($chave)){
echo '<script> alert ("E-mail não consta em nosso banco de dados."); location.href=("redefine_password_usu.php")</script>';}else{
$nome = $name;
$email = $value;
$link_adress ='http://meu_dominio/alterar_senha_usu.php?chave='.$chave.'';
$to = $value;
$subject ='Redefinição de Senha - SGI';
$message ='Olá. Esqueceu a sua senha? Tudo bem, acontece! Vamos te ajudar a redefinir. Clique no link '.$link_adress.' e redefina. Ah, uma coisinha importante: Para a sua segurança, este link só é válido por 2 horas. Após este tempo, você vai precisar fazer um novo pedido de redefinição, tudo bem?';
$headers = array('From'=>'webmaster@meu_dominio','Reply-To'=>'webmaster@meu_dominio','X-Mailer'=>'PHP/'. phpversion());
mail($to, $subject, $message, $headers);}?>
Só que não envia o e-mail. O que poderia estar errado ou faltando?
Pergunta
Edilson Santiago
Boa noite, amigos. Estou criando um sistema de login, com a funcionalidade de redefinir senha.
Criei o formulário:
o arquivo "envia-nova-senha.php:
e o arquivo "altera_senha.php":
Só que não envia o e-mail. O que poderia estar errado ou faltando?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.