Laravel 5.7 при ошибке apache Вызов неопределенной функции Illuminate \ Encryption \ openssl_cipher_iv_length ()

Не думайте, что это возможно с помощью PasswordBox ... просто мысль, но вы можете выполнить тот же результат, используя скрытый TextBox, и когда пользователь нажмет на CheckBox, вы просто скроете PasswordBox и покажете TextBox; если он снова щелкнет, вы снова переключите свое состояние видимости и так далее ...

Edit

И вот как это делается!

Просто добавьте страницу , измените ContentPanel на StackPanel и добавьте этот код XAML:

<PasswordBox x:Name="MyPasswordBox" Password="{Binding Text, Mode=TwoWay, ElementName=MyTextBox}"/>
<TextBox x:Name="MyTextBox" Text="{Binding Password, Mode=TwoWay, ElementName=MyPasswordBox}" Visibility="Collapsed" />
<CheckBox x:Name="ShowPasswordCharsCheckBox" Content="Show password" Checked="ShowPasswordCharsCheckBox_Checked" Unchecked="ShowPasswordCharsCheckBox_Unchecked" />

Далее, в коде страницы добавьте следующее:

private void ShowPasswordCharsCheckBox_Checked(object sender, RoutedEventArgs e)
{
    MyPasswordBox.Visibility = System.Windows.Visibility.Collapsed;
    MyTextBox.Visibility = System.Windows.Visibility.Visible;

    MyTextBox.Focus();
}

private void ShowPasswordCharsCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
    MyPasswordBox.Visibility = System.Windows.Visibility.Visible;
    MyTextBox.Visibility = System.Windows.Visibility.Collapsed;

    MyPasswordBox.Focus();
}

Это отлично работает, но с еще несколько работ, вы можете сделать это полностью MVVM'ed!

0
задан TDK 17 January 2019 в 16:46
поделиться

1 ответ

openssl_cipher_iv_length() - это стандартная PHP-функция из модуля OpenSSL. Ваше сообщение об ошибке гласит:

undefined function Illuminate\Encryption\openssl_cipher_iv_length()

Обратите внимание, что имени функции предшествует Illuminate\Encryption - это указывает на то, что PHP считает, что функция находится в пространстве имен Illuminate\Encryption, но это не так. Чтобы исправить это, вы можете явно связать вызов функции с корневым пространством имен, добавив перед ним обратную косую черту:

\openssl_cipher_iv_length()

Эта ошибка также может означать, что openssl_cipher_iv_length() просто нигде не доступен, а [116 ] namespace - это просто последнее место, где оно выглядело. В этом случае вам нужно убедиться, что у вас установлен модуль OpenSSL, но учтите, что конфигурация командной строки отличается от конфигурации встроенного веб-сервера. То есть, запуск php -m из командной строки может сообщить о доступности OpenSSL, но он может быть не загружен для версии веб-сервера. Поэтому запустите phpinfo() на странице, обслуживаемой вашим веб-сервером, чтобы убедиться, что OpenSSL действительно загружен.

0
ответ дан Alex Howansky 17 January 2019 в 16:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: