Cześć. Próbuję napisać skrypt przywracania hasła. Jak narazie mój kod jest tak złożony:
<?php
session_start();
require_once "connect.php";
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
{
if(isset($_POST['reset_password'])){
if(!isset($_POST['login']) || empty($_POST['login'])){
$_SESSION['blad'] = '<span style="color:red">Nie podano loginu!</span>';
header("location: ind.php");
exit;
}
$login = $_POST['login'];
$acces_token = md5(mt_rand());
$reset = $polaczenie -> Prepare("UPDATE `uzytkownicy` SET `acces_token` = :acces_token WHERE `user` LIKE :user");
$reset -> bindParam(':acces_token', $acces_token, PDO::PARAM_STR);
$reset -> bindParam(':user', $login, PDO::PARAM_STR);
$reset -> Execute();
$_SESSION['wyslany'] = '<span style="color:red">Wysłano maila resetującego hasło na Twojego maila.</span>';
header("Location: ind.php");
exit;
}
$polaczenie->close();
}
?>
<div id="loginind">
<form action="odzyskaj.php" method="post">
Login: <input type="text" name="login" />
<br></br>
Hasło: <input type="password" name="haslo" />
<br></br>
<input type="submit" value="Zaloguj się" />
<input type="submit" value="Odzyskaj hasło" name="reset_password" />
<div style="clear:both;"></div>
</form>
</div>
No i wyskakuje mi fatal error przy lini 24:
Fatal error: Uncaught Error: Call to a member function bindParam() on bool in C:\xampp\nowy\htdocs\liga\odzyskaj.php:24 Stack trace: #0 {main} thrown in C:\xampp\nowy\htdocs\liga\odzyskaj.php on line 24.
Linia 24 to:
$reset -> bindParam(':acces_token', $acces_token, PDO::PARAM_STR);
Ktoś może wyjaśnic co mam źle i co poprawić? Pierwszy raz próbuję ustawić tą bibliotekę PDO.
Dodam jeszcze że mój submit "Odzyskaj hasło" działa identycznie jak "Zaloguj się"... Zamiast metody przywracania hasła teraz dwa przyciski mają dokładnie to samo działanie :/