Получить хэш пароля для работы над сценарием сброса пароля
Я пытаюсь хэшировать пароль из сценариев сброса пароля, но он не хэшируется, поэтому, если вы можете сказать мне, где я должен поместить его в сценарий. Большое спасибо!
<?php session_start(); $servername = "localhost"; $username = "root"; $password = ""; $dbname = "vuyanii"; $conn = null; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo $e->getMessage(); } if(isset($_POST['submit'])){ $username = strip_tags($_POST['username']); $npassword = ($_POST['password']); $cpassword = ($_POST['cpassword']); //echo $username;exit(); $message =""; try{ $query = "SELECT * FROM users WHERE username= '".$username."'"; $stmt = $conn->prepare($query); $stmt->execute(); if($stmt->rowCount() < 1){ $message = '<p style="color:red;">Incorrect username entered</p>'; }else if($npassword != $cpassword){ $message = '<p style="color:red;">New password does not match confirm password</p>'; } else{ $password = password_hash($npassword, PASSWORD_DEFAULT); $query = "UPDATE users SET password = '$npassword' WHERE username = '$username'"; $stmt2 = $conn->prepare($query); if ($stmt2->execute()){ $message = '<p style="color:red;">Password Changed Successfully</p>'; header('location:index.php'); }else{ $message = '<p style="color:red;">Password Not Changed</p>'; } } }catch(PDOException $e){ echo $e->getMessage();} } ?>
Что я уже пробовал:
учебники и отредактировал мой сценарий пару раз
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
gavin_daCEO
я проверю это большое вам спасибо
phil.o
В качестве побочного замечания, сообщая миру, является ли это имя учетной записи или пароль, который является неправильным, является недостатком безопасности, имхо. Вы должны выдать общее сообщение "недопустимые учетные данные" для обоих случаев.
gavin_daCEO
спасибо. я так и сделаю
gavin_daCEO
спасибо. я так и сделаю