Laravel 中的 Ldap 绑定消息
Ldap bind message in Laravel
我有一个问题。目前我正在使用 ldap 连接。
我使用的是手动 ldap 代码,因此 ldap 连接没有问题。我与ldap的连接是成功的。
输入正确的用户名和密码后一切正常。当我输入错误的密码时出现问题,页面将显示“ErrorException ldap_bind():无法绑定到服务器:无效的凭据”页面还显示所有登录功能代码。
如何在页面不显示 ErrorException 的情况下显示正确的错误消息?供参考,我没有使用任何 ldap 安装框架。
例如我的代码:
public function process_login(Request $request)
{
$username = $request->username;
$password = $request->password;
$ldaphost= "xxxx";
$ldapconn = ldap_connect($ldaphost) or die("That LDAP-URI was not parseable");
$ldap_credential= 'uid='.$username.',cn=xxx';
$ldappass = $password;
if ($ldapconn)
{
$ldapbind = ldap_bind($ldapconn, $ldap_credential, $ldappass);
if ($ldapbind) {
return redirect()->route('dashboard');
}
else
{
return Redirect::back()->withErrors(['msg', 'Wrong Password/Username']);
}
}
}
login.blade:
@if($errors->any())
<h4>{{$errors->first()}}</h4>
@endif
谁能帮帮我?
我和许多其他人 运行 遇到了来自 PHP 的 LDAP 身份验证的相同问题。完全同意,显示这些错误非常草率。信不信由你,最常见的解决方案之一就是使用标准 PHP@
静默绑定进程,以避免显示不需要的错误消息。
在你的情况下,类似于:
if (@ldap_bind($ldapconn, $ldap_credential, $ldappass)) {
return redirect()->route('dashboard');
}
else
{
return Redirect::back()->withErrors(['msg', 'Wrong Password/Username']);
}
当您在您的网站上看到来自 PHP 的消息时,通常意味着您的 PHP 安装配置错误。
在生产网站上,PHP.ini 文件(使用 phpinfo-page 查找 PHP.ini 文件的位置)应将 display_errors
和 display_startup_errors
设置为false
但 error_log
到 syslog
或 error-log 文件的路径。
此外,您不应将 error_reporting
设置为 0,因为这样您将很难调试您的生产站点。
如果您不希望来自 ldap_bind
的消息出现在您的错误日志中,您应该使用 set_error_handler
设置一个错误处理程序,专门删除这条消息,可能只是为了这个一个函数调用,并重置原始错误处理程序。
特别是在 ldap_bind
的情况下,否则您可能会在调试所发生的事情时遇到问题,因为这通常是实际打开与服务器连接的第一个命令,因此消息中会出现很多连接问题从这个函数。当您使用 @
将来自该函数的每条消息静音时,您将永远看不到它
我有一个问题。目前我正在使用 ldap 连接。
我使用的是手动 ldap 代码,因此 ldap 连接没有问题。我与ldap的连接是成功的。
输入正确的用户名和密码后一切正常。当我输入错误的密码时出现问题,页面将显示“ErrorException ldap_bind():无法绑定到服务器:无效的凭据”页面还显示所有登录功能代码。
如何在页面不显示 ErrorException 的情况下显示正确的错误消息?供参考,我没有使用任何 ldap 安装框架。
例如我的代码:
public function process_login(Request $request)
{
$username = $request->username;
$password = $request->password;
$ldaphost= "xxxx";
$ldapconn = ldap_connect($ldaphost) or die("That LDAP-URI was not parseable");
$ldap_credential= 'uid='.$username.',cn=xxx';
$ldappass = $password;
if ($ldapconn)
{
$ldapbind = ldap_bind($ldapconn, $ldap_credential, $ldappass);
if ($ldapbind) {
return redirect()->route('dashboard');
}
else
{
return Redirect::back()->withErrors(['msg', 'Wrong Password/Username']);
}
}
}
login.blade:
@if($errors->any())
<h4>{{$errors->first()}}</h4>
@endif
谁能帮帮我?
我和许多其他人 运行 遇到了来自 PHP 的 LDAP 身份验证的相同问题。完全同意,显示这些错误非常草率。信不信由你,最常见的解决方案之一就是使用标准 PHP@
静默绑定进程,以避免显示不需要的错误消息。
在你的情况下,类似于:
if (@ldap_bind($ldapconn, $ldap_credential, $ldappass)) {
return redirect()->route('dashboard');
}
else
{
return Redirect::back()->withErrors(['msg', 'Wrong Password/Username']);
}
当您在您的网站上看到来自 PHP 的消息时,通常意味着您的 PHP 安装配置错误。
在生产网站上,PHP.ini 文件(使用 phpinfo-page 查找 PHP.ini 文件的位置)应将 display_errors
和 display_startup_errors
设置为false
但 error_log
到 syslog
或 error-log 文件的路径。
此外,您不应将 error_reporting
设置为 0,因为这样您将很难调试您的生产站点。
如果您不希望来自 ldap_bind
的消息出现在您的错误日志中,您应该使用 set_error_handler
设置一个错误处理程序,专门删除这条消息,可能只是为了这个一个函数调用,并重置原始错误处理程序。
特别是在 ldap_bind
的情况下,否则您可能会在调试所发生的事情时遇到问题,因为这通常是实际打开与服务器连接的第一个命令,因此消息中会出现很多连接问题从这个函数。当您使用 @