Пытаюсь шифровать пароли, вводимые при регистрации, с помощью функции password_hash(). Но получаю ошибку:
PHP Fatal error: Call to undefined function password_hash()
Не могу понять причины. PHP у меня на хостинге версии 7.0.3. Никаких упоминаний о том, что эта функция не работает в данной версии я не нашла.
В чем может быть проблема, подскажите, пожалуйста. И как исправить? Спасибо!
Код такой:
if(isset($_POST['pass'])) {$prepass = $_POST['pass'];};
if(isset($_POST['repass'])) {$prerepass = $_POST['repass'];};
$pass1=serialize($prepass);
$repass1=serialize($prerepass);
$pass = password_hash($pass1);
$repass = password_hash($repass1);
P.S. Уточнила у хостера версию php: - версия 7.3.13 (alt)
Функция password_hash требует как минимум 2 параметра - само значение и тип шифорвания - параметр algo подробнее Тут
Пример:
<?php
if(isset($_POST['pass'])) {$prepass = $_POST['pass'];};
if(isset($_POST['repass'])) {$prerepass = $_POST['repass'];};
$pass1=serialize($prepass);
$repass1=serialize($prerepass);
$pass = password_hash($pass1, PASSWORD_BCRYPT);
$repass = password_hash($repass1, PASSWORD_BCRYPT);
print_r($pass);
?>
<form action="" method="post">
<input id="pass" name="pass">
<input id="repass" name="repass">
<button formmethod="post">Send</button>
</form>
Код
Результат выполнения при введённых данных
Судя по Call to undefined function, можно сделать вывод что идет вызов не объявленной функции.
Cоздайте тестовый файл и вызовите в нём phpinfo(). В самом начале будет написана текущая версия, не может быть что в 7 версии пишет подобную ошибку.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей