2015-07-17 2 views
0

Итак, я слежу за учебниками phpacademy Authentication System, и мне удалось подняться до видео 15 в серии, но в последнем видео, которое я имел tot загрузить сайт на веб-сервер, который не был локализован.Неустранимая ошибка: вызов неопределенной функции Frisbee Helpers password_hash()

Однако при этом моя функция хэширования больше не работает, и я получаю упомянутую выше ошибку.

<?php 
namespace Frisbee\Helpers; 
class Hash { 
    protected $config; 

    public function __construct($config){ 
     $this->config = $config; 
    } 

    public function password($password){ 
     return password_hash($password, $this->config->get('app.hash.algo'), 
      ['cost' => $this->config->get('app.hash.cost')] 
    ); 
    } 

    public function passwordCheck($password, $hash){ 
     return password_verify($password, $hash); 
    } 
} 

Исследуя онлайн Я обнаружил, что это может быть что-то делать с PHP версии, но я не могу видеть на моем CPanel, который PHP версии я использую.

+0

где определяется функция password_hash? Я не вижу никакого класса. Работает ли функция проверки паролей? (предполагается, что password_verify находится в том же файле, что и пароль_hash) –

+0

вы на v5.5.0 + Вот когда был введен пароль_hash(). –

ответ

1

password_hash и password_verify где добавлено в php 5.5, так что, вероятно, это то, что вам не хватает. Вы можете исправить это, используя библиотеку ircmaxells password_compat, которая определяет те же функции, но работает над более старыми версиями PHP.

+0

О, круто спасибо, мне, наверное, придется изучить это, прежде чем переключиться на другой веб-хостинг! : P –

0

Функции password() и password_verify() не установлены на всех версиях PHP. Поэтому, скорее всего, на вашем сервере не установлена ​​последняя версия PHP. Вы можете проверить версию PHP на своем сервере либо с помощью phpinfo() или phpversion().

«Изучая онлайн, я обнаружил, что это может быть связано с версиями PHP, но я не вижу на своей CPanel, какую версию PHP я использую».

Просто создайте новый файл PHP и эхо из phpversion()

echo phpversion(); 
+0

Интересно ... так во-первых, спасибо за код. Добавив его в мой index.php, на моем сервере работает версия PHP 5.4.39, которая глупа. Я даже не могу его настроить, что является шуткой. В любом случае, еще раз спасибо! : P –

+0

Там вы идете. Поскольку @Orangepill заявила, что это не было введено до 5.5, так что это не работает. Вам необязательно переключать хосты, вместо этого попросите их обновить. Если никто не попросит их обновиться, они почувствуют, что им этого не понадобится. И если они отказываются обновляться, а затем уходят, они просто теряют клиента. Удачи! – m1xolyd1an

+0

О, ладно, это действительно приятно знать. Я отправил им электронное письмо с вопросом о том, какую версию они запускали, и почему я не смог настроить версию PHP самостоятельно в разделе «Конфигурация PHP», но они еще не ответили, но, надеюсь, они скоро! : D –

 Смежные вопросы

  • Нет связанных вопросов^_^