Hej, chciałbym się dowiedzieć czy żeby skonfigurować poczte na serwisie (np użytkownik zapomni hasła, kliknie w przycisk 'odzyskaj' i dostanie na maila nowe hasło), należy skonfigurować jakieś SMTP czy coś? Czy wystarczy zwykły skrypt w PHP?
Strona znajduje się na cba.pl, tam też założyłem konto email odzyskaj@liga.cba.pl.
I teraz czy sam kod PHP wystarczy czy nalezy zrobić coś jeszcze? Bo to co aktualnie posiadam nie działa mi jeszcze:
Wstecz (accesskey b) Zapisz (accesskey s) plik: /liga.cba.pl/odzyskaj.php
Character encoding: Status: Zapisany 2019-05-25 22:12:15 w trybie FTP_ASCII
<?php
require_once "connect.php";
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
if(isset($_GET['resetpassword'])){
$key = $_GET['resetpassword'];
$zapytanie = "SELECT acces_token FROM uzytkownicy WHERE acces_token = $acces_token";
}
if(isset($_POST['email'])){
if(empty($_POST['email'])){
$_SESSION['blad'] = '<span style="color:red">Nie podano maila!</span>';
//header("location: odzyskaj.php");
//exit;
}
else {
$email = $_POST['email'];
$haslo=mt_rand();
$acces_token= password_hash($haslo, PASSWORD_DEFAULT);
$zapytanie = "UPDATE uzytkownicy SET pass = '$acces_token' WHERE email LIKE '$email'";
$wynik = mysqli_query($polaczenie, $zapytanie);
$_SESSION['blad']= '<span style="color:red">Wysłano maila resetującego hasło na Twojego maila.
<br>
Twoje hasło to: '.$haslo.' </span>';
$email_template = "email_resetpassword_template.html";
$wiadomosc = file_get_contents($email_template);
$wiadomosc = str_replace("[login]", $user, $wiadomosc);
$wiadomosc = str_replace("[key]", $acces_token, $wiadomosc);
$wiadomosc = str_replace("[url]","http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ,$wiadomosc);
$naglowki = 'From: odzyskaj@liga.cba.pl' . "\r\n" .
'Replay-To: odzyskaj@liga.cba.pl' . "\r\n" .
'Content-type: text/html; charset=utf-8' . "\r\n";
mail($user, "Aktywacja konta " . $user, $wiadomosc, $naglowki);
//header("Location: odzyskaj.php");
//exit;
}
}
else {
$_SESSION['blad'] = '<span style="color:red">Wpisz swój E-mail</span>';
}
$polaczenie->close();
?>
<?php
if(isset($_SESSION['blad'])) echo $_SESSION['blad'];
?>
<div id="loginind">
<form action="odzyskaj.php" method="post">
email <input type="text" name="email" />
<br></br>
<input type="submit" value="Odzyskaj hasło"/>
<div style="clear:both;"></div>
</form>
</div>