dqpkea9486 2019-05-15 12:52
浏览 650


I am working to validate users from LDAP via PHP. I have tried some code and I can now validate users perfectly. But in the case of an unsuccessful login, I want to display a modal popup with some custom message. Here is my code -


    // username and password sent from form 

    $username = $_POST['username'];
    $password = $_POST['password'];
    // using ldap bind

    $ldaprdn  = 'uid=' .$username. ',ou=People,ou=AP,o=abcd.com'; // ldap rdn or dn
    $ldappass = $password;

    // connect to ldap server
    $ldapconn = ldap_connect("ad.abcd.com") or die("Could not connect to LDAP server.");

    if ($ldapconn) {

        try {
    $ldapbind = @ldap_bind($ldapconn, $ldaprdn, $ldappass);
} catch (Exception $e) {

    //echo "<script type='text/javascript'>$('#myModal').modal('show');</script>";
                //echo "<script type='text/javascript'>$('#myModal').fadeIn('show');</script>";
                echo "<script>
        if ($ldapbind) {

            $filter = '(sAMAccountName='.$username.')';
            $result = ldap_search($ldapconn, $ldaprdn, "(cn=*)") or exit("Unable to search LDAP server");
            $entries = ldap_get_entries($ldapconn, $result); 
            $userDN = $entries[0]["ikealegacyuid"][0];          

            echo ('<p style="color:green;">I have the user DN: '.$userDN.'</p>');
            $url = 'Location: logpage01.html?uid=' .$userDN;
            echo $url;
        } else {
         //echo "<script type='text/javascript'>$('#myModal').modal('show');</script>";
                //echo "<script type='text/javascript'>$('#myModal').fadeIn('show');</script>";
                echo "<script>



      <title>Login Page</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
      <style type = "text/css">
         body {
            font-family:Arial, Helvetica, sans-serif;
         label {
         .box {
            border:#666666 solid 1px;


   <body bgcolor = "#FFFFFF">

      <div align = "center">
         <div style = "width:300px; border: solid 1px #333333; " align = "left">
            <div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div>

            <div style = "margin:30px">

               <form action = "" method = "post">
                  <label>UserName  :</label><input type = "text" name = "username" class = "box"/><br /><br />
                  <label>Password  :</label><input type = "password" name = "password" class = "box" /><br/><br />
                  <input type = "submit" value = " Submit "/><br />



      <div class="container">

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <!-- <button type="button" class="close" data-dismiss="modal">&times;</button> -->
          <h4 class="modal-title">System Message : Failure</h4>
        <div class="modal-body">
          <p>Sorry !! Something went wrong. Please contact your administrator.</p>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal" onclick="window.location.href = 'logpage01.html';">Close</button>




I tried many solutions found here. But nothing worked. Need some help on this.

UPDATE: Checked Page Source Also. Seems it's fine. If not, please let me know the issue. enter image description here

I tried to call modal on page load also. It is working perfectly.

<script type="text/javascript">
  • 写回答

2条回答 默认 最新

  • doushang4274 2019-05-15 19:25

    Just echoing the script won't work here, at best your browser will end up running a script that references $ before loading the html that loads jQuery, so even if it runs your script it will throw Uncaught ReferenceError: $ is not defined.

    Instead you can use a flag to tell the browser whether or not to show the modal. For example, you can set a variable in your else (and catch) statement :

    if ($ldapbind) { /*...*/ }
    else {

    and insert it into the html so that the browser knows it must load the modal when access_denied===1, for this you also need to add the script that will load the modal only under that condition :

    <div id="myModal" access_denied="<?php print $access_denied ?>" > ... </div>

    In another context using ajax requests you would probably just echo some json or output the modal html directly.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?



  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)
  • ¥15 基于8255的交通灯设计
  • ¥15 w3wp,exe 中发生未处理的 Microsoft ,NETFramework 异常。
  • ¥20 C51单片机程序及仿真(加减器)
  • ¥15 AQWA | 水动力分析 二阶波浪力
  • ¥15 c语言题目:成绩管理系统