16 changed files with 194 additions and 11 deletions
@ -0,0 +1,80 @@ |
|||||
|
<?php |
||||
|
include_once './api/send_mail.php'; |
||||
|
@include('components/breadcrumb/breadcrumb.php'); |
||||
|
setlocale(LC_MONETARY, 'it_IT.UTF-8'); |
||||
|
|
||||
|
if(isset($_POST['reset_usr'])) { |
||||
|
|
||||
|
$query = "SELECT * FROM `users` WHERE email = '".trim($_POST['reset_usr'])."'"; |
||||
|
$q = mysqli_query($conn, $query); |
||||
|
if(mysqli_affected_rows($conn)) { |
||||
|
$new_password = base_convert(date('Y-m-d H:i:s'), 10, 36).rand(1,99)."+"; |
||||
|
$user = mysqli_fetch_array($q); |
||||
|
|
||||
|
$query = "UPDATE `users` SET `password` = '".md5($new_password)."' WHERE id = '".$user['id']."'"; |
||||
|
$q = mysqli_query($conn, $query); |
||||
|
|
||||
|
$toEmail = $user['email']; |
||||
|
$toName = $user['first_name']." ".$user['last_name']; |
||||
|
$subject = 'Iolovolio - Reimposta password'; |
||||
|
$body = emailHeader(); |
||||
|
|
||||
|
$body .= "<tr><td colspan=\"4\" style=\"padding: 10px 20px\">Ciao ".$user['first_name'].",<br>". |
||||
|
"ricevi questa mail perchè hai richiesto il reset della tua password su Iolovolio, di seguito troverai la tua nuova password temporanea, ti consigliamo di modificarla al primo accesso:<br><br>". |
||||
|
"Username: ".$user['email']."<br>". |
||||
|
"Nuova password: ".$new_password."<br>". |
||||
|
"</td></tr>"; |
||||
|
|
||||
|
$body .= "<tr><td colspan=\"4\" style=\"padding: 10px 20px\">Grazie,<br>Servizio Clienti Iolovolio<br><br></td></tr>"; |
||||
|
$body .= emailFooter(); |
||||
|
|
||||
|
|
||||
|
$sent = sendEmail($toEmail, $toName, $subject, $body, 'noreply'); |
||||
|
if($sent === true) { |
||||
|
$message = "Password reimpostata correttamente!<br> |
||||
|
Ti abbiamo inviato la nuova password provvisoria all'indirizzo ".trim($_POST['reset_usr']); |
||||
|
} else { |
||||
|
$message = "Erore invio mail!<br> |
||||
|
Contatta l'assistenza"; |
||||
|
} |
||||
|
|
||||
|
} else { |
||||
|
$message = "ERRORE: L'indirizzo email inserito non è presente nel database!<br>Controlla l'indirizzo inserito e riprova."; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
?> |
||||
|
|
||||
|
<div class="component-passwordRecovery"> |
||||
|
<div class="container"> |
||||
|
<div class="row"> |
||||
|
|
||||
|
<?php |
||||
|
if($message) { |
||||
|
echo "<div class=\"message col-12\">$message</div>"; |
||||
|
} |
||||
|
?> |
||||
|
|
||||
|
<div class="content col-12"> |
||||
|
<div class="row"> |
||||
|
<div class="col-12 col-md-6 mb-5"> |
||||
|
<span class="title">Hai dimenticato la password?</span> |
||||
|
<span class="subtitle">Inserisci l'indirizzo email-con il quale ti sei registrato</span> |
||||
|
<form class="reset-form <?= $no_user ? 'error' : '';?>" action="/recupera-password" method="POST"> |
||||
|
<div class="row"> |
||||
|
<div class="col-12"> |
||||
|
<span class="label">E-mail</span> |
||||
|
<input type="email" name="reset_usr" class="input input-text"> |
||||
|
</div> |
||||
|
<div class="col-12 mt-4"> |
||||
|
<button class="button button-brown button-big mr-auto">Reimposta password</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
@ -0,0 +1,5 @@ |
|||||
|
|
||||
|
$(document).ready( () => { |
||||
|
console.log('Load component - passwordRecovery') |
||||
|
|
||||
|
}) |
@ -0,0 +1,60 @@ |
|||||
|
@import "../../src/scss/variables.scss"; |
||||
|
@import "../../src/scss/mixins.scss"; |
||||
|
|
||||
|
.component-passwordRecovery { |
||||
|
padding: 10px 0 40px 0; |
||||
|
min-height: 100vh; |
||||
|
|
||||
|
.message { |
||||
|
color: $white; |
||||
|
background: $brown; |
||||
|
padding: 10px; |
||||
|
margin-bottom: 20px; |
||||
|
@include font-style($font-sans, 'regular', $font-12); |
||||
|
animation: blinker 2s linear 1; |
||||
|
} |
||||
|
|
||||
|
.content { |
||||
|
|
||||
|
.title { |
||||
|
display: block; |
||||
|
@include font-style($font-serif, 400, $font-32); |
||||
|
color: $black; |
||||
|
height: 50px; |
||||
|
} |
||||
|
|
||||
|
.subtitle { |
||||
|
display: block; |
||||
|
@include font-style($font-sans, 700, $font-16); |
||||
|
color: $gray; |
||||
|
height: 40px; |
||||
|
} |
||||
|
|
||||
|
.label { |
||||
|
display: block; |
||||
|
@include font-style($font-sans, 700, $font-16); |
||||
|
color: $gray; |
||||
|
padding: 15px 0 5px 0; |
||||
|
} |
||||
|
|
||||
|
.errors { |
||||
|
display: block; |
||||
|
@include font-style($font-sans, 700, $font-16); |
||||
|
color: $red; |
||||
|
padding: 15px 0 5px 0; |
||||
|
} |
||||
|
|
||||
|
.input { |
||||
|
max-width: 400px; |
||||
|
&.error { |
||||
|
border: 1px solid $red; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.submit { |
||||
|
@include font-style($font-serif, 700, $font-16); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
@ -0,0 +1,2 @@ |
|||||
|
|
||||
|
${require('../components/passwordRecovery/passwordRecovery.html')} |
Loading…
Reference in new issue