Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel中的Ldap绑定消息_Php_Laravel_Ldap - Fatal编程技术网

Php Laravel中的Ldap绑定消息

Php Laravel中的Ldap绑定消息,php,laravel,ldap,Php,Laravel,Ldap,我有个问题。目前我正在使用ldap连接 我没有ldap连接问题,因为我使用的是手动ldap代码。我与ldap的连接成功 当我输入正确的用户名和密码时,一切看起来都很好。我有问题,当我输入错误的密码时,页面将显示“ErrorException ldap_bind():无法绑定到服务器:无效凭据”,页面还显示所有登录功能代码 如何在没有页面显示错误异常的情况下显示正确的错误消息?仅供参考,我没有使用任何ldap安装框架 我的代码示例: public function process_login(Re

我有个问题。目前我正在使用ldap连接

我没有ldap连接问题,因为我使用的是手动ldap代码。我与ldap的连接成功

当我输入正确的用户名和密码时,一切看起来都很好。我有问题,当我输入错误的密码时,页面将显示“ErrorException ldap_bind():无法绑定到服务器:无效凭据”,页面还显示所有登录功能代码

如何在没有页面显示错误异常的情况下显示正确的错误消息?仅供参考,我没有使用任何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
@if($errors->any())
{{$errors->first()}
@恩迪夫

有人能帮我吗?

我和其他许多人在使用PHP的LDAP身份验证时遇到了同样的问题。完全同意,显示这些错误是相当草率的。信不信由你,最常见的解决方案之一就是用标准的PHP
@
使绑定过程静音,以避免显示不需要的错误消息

在您的情况下,类似于:

if (@ldap_bind($ldapconn, $ldap_credential, $ldappass)) {
   return redirect()->route('dashboard');
}
else
{
    return Redirect::back()->withErrors(['msg', 'Wrong Password/Username']);
}

一、 与其他许多人一样,在使用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页面查找PHP.ini文件的位置)应具有
display_errors
display_startup_errors
设置为
false
,但
error_log
设置为euther
syslog
或错误日志文件路径

此外,您不应将“错误报告”设置为0,因为这样您将很难调试生产站点

如果您不希望来自
ldap\u bind
的消息显示在错误日志中,您应该使用
set\u error\u handler
设置一个错误处理程序,专门删除这条消息,可能只针对这一个函数调用,并重置原始错误处理程序


特别是在
ldap\u bind
的情况下,否则您可能会在调试发生的事情时遇到问题,因为这通常是实际打开与服务器连接的第一个命令,因此此函数的消息中会出现很多连接问题。当您在网站上看到来自PHP的消息时,通常意味着您的PHP安装配置错误,使用
@

关闭函数中的每条消息时,您将永远不会看到这些消息

在生产网站上,PHP.ini文件(使用phpinfo页面查找PHP.ini文件的位置)应具有
display_errors
display_startup_errors
设置为
false
,但
error_log
设置为euther
syslog
或错误日志文件路径

此外,您不应将“错误报告”设置为0,因为这样您将很难调试生产站点

如果您不希望来自
ldap\u bind
的消息显示在错误日志中,您应该使用
set\u error\u handler
设置一个错误处理程序,专门删除这条消息,可能只针对这一个函数调用,并重置原始错误处理程序


特别是在
ldap\u bind
的情况下,否则您可能会在调试发生的事情时遇到问题,因为这通常是实际打开与服务器连接的第一个命令,因此此函数的消息中会出现很多连接问题。当您使用
@

关闭函数中的每条消息时,您将永远看不到这一点。非常感谢。它起作用了。我还尝试使用adldap2框架,但它不起作用。也许我不熟悉,没有人能指导我如何使用它。再一次,谢谢:)使用错误抑制在网站上不显示任何消息是一个坏习惯…一般来说,是的。但是,如果您特别不希望向您的用户提供这些错误消息以支持我们自己的错误处理,那么这是完全可以接受的。他追求的是为信息量身定做。说到你的观点,不显示任何错误肯定不是一个好主意。因此他显示了一个更具体的错误。非常感谢。它起作用了。我还尝试使用adldap2框架,但它不起作用。也许我不熟悉,没有人能指导我如何使用它。再一次,谢谢:)使用错误抑制在网站上不显示任何消息是一个坏习惯…一般来说,是的。但是,如果您特别不希望向您的用户提供这些错误消息以支持我们自己的错误处理,那么这是完全可以接受的。他追求的是为信息量身定做。说到你的观点,不显示任何错误肯定不是一个好主意。因此,他显示了一个更具体的错误。