PHP Ldap
Ik heb een basis scriptje in elkaar gezet voor het doorzoeken van de LDAP.
Het script werkt en ik zie netjes alle gebruikers.. Ik zal nu het liefst willen filteren op samba groep, echter kan ik daar geen goede resources van terug vinden.
Daarom dacht ik; misschien kan ik filteren op of er een telefoonnummer wel of niet is ingevuld.
Ik zit al een tijd te rommelen, en hoop dat jullie mij verder kunnen helpen.
Hier het script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<html>
<!-- styles -->
<link href="style.css" rel="stylesheet"> <div id="imp_style" class="imp_form">
<form action="" method="post">
<h1>Zoek criteria:</h1><br>
<input type="text" name="keyword" size="30" maxlength="30" value="" />
<!--Filter:-->
<select name="filter">
<option value="sn">Ik wil zoeken op:</option>
<option value="givenname">Voornaam</option>
<option value="sn">Achternaam</option>
<option value="postalcode">Kantoor</option>
<option value="gecos">Functie</option>
</select>
<input type="submit" value="Zoeken" size="20" />
</form>
<?php
//if(isset ($_POST['q']) &&!empty($_POST['q']) )
//{
// Designate a few variables
$host = "192.168.60.1";
$user = "";
$pswd = "";
$ad = ldap_connect($host)
or die( "Could not connect!" );
// Set version number
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3)
or die ("Could not set ldap protocol");
// Binding to ldap server
$bd = ldap_bind($ad)
or die ("Could not bind");
// Create the DN
$dn = "ou=Users,dc=****,dc=nl";
// Specify only those parameters we're interested in displaying
$attrs = array("postalcode","cn","givenname","mail","telephoneNumber", "gecos", "description");
// Create the filter from the search parameters
$filter = $_POST['filter']."=".$_POST['keyword']."*";
$search = ldap_search($ad, $dn, $filter, $attrs)
or die ("");
$entries = ldap_get_entries($ad, $search);
if ($entries["count"] > 0)
{
for ($i=0; $i<$entries["count"]; $i++)
{
echo "<br>";
echo "<p><b>Naam: </b>".$entries[$i]["cn"][0]."<br />";
echo "<b>Functie: </b>".$entries[$i]["gecos"][0]."<br />";
echo "<b>Kantoor: </b>".$entries[$i]["postalcode"][0]."<br />";
echo "<b>Mobiel nummer: </b>".$entries[$i]["telephonenumber"][0]."<br />";
echo "<b>Email: </b><a href=mailto:".$entries[$i]["mail"][0].">".$entries[$i]["mail"][0]."</a></p>";
}
} else {
echo "<p>Geen resultaten gevonden!</p>";
}
ldap_unbind($ad);
//}
?>
</div>
</html>
<!-- styles -->
<link href="style.css" rel="stylesheet"> <div id="imp_style" class="imp_form">
<form action="" method="post">
<h1>Zoek criteria:</h1><br>
<input type="text" name="keyword" size="30" maxlength="30" value="" />
<!--Filter:-->
<select name="filter">
<option value="sn">Ik wil zoeken op:</option>
<option value="givenname">Voornaam</option>
<option value="sn">Achternaam</option>
<option value="postalcode">Kantoor</option>
<option value="gecos">Functie</option>
</select>
<input type="submit" value="Zoeken" size="20" />
</form>
<?php
//if(isset ($_POST['q']) &&!empty($_POST['q']) )
//{
// Designate a few variables
$host = "192.168.60.1";
$user = "";
$pswd = "";
$ad = ldap_connect($host)
or die( "Could not connect!" );
// Set version number
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3)
or die ("Could not set ldap protocol");
// Binding to ldap server
$bd = ldap_bind($ad)
or die ("Could not bind");
// Create the DN
$dn = "ou=Users,dc=****,dc=nl";
// Specify only those parameters we're interested in displaying
$attrs = array("postalcode","cn","givenname","mail","telephoneNumber", "gecos", "description");
// Create the filter from the search parameters
$filter = $_POST['filter']."=".$_POST['keyword']."*";
$search = ldap_search($ad, $dn, $filter, $attrs)
or die ("");
$entries = ldap_get_entries($ad, $search);
if ($entries["count"] > 0)
{
for ($i=0; $i<$entries["count"]; $i++)
{
echo "<br>";
echo "<p><b>Naam: </b>".$entries[$i]["cn"][0]."<br />";
echo "<b>Functie: </b>".$entries[$i]["gecos"][0]."<br />";
echo "<b>Kantoor: </b>".$entries[$i]["postalcode"][0]."<br />";
echo "<b>Mobiel nummer: </b>".$entries[$i]["telephonenumber"][0]."<br />";
echo "<b>Email: </b><a href=mailto:".$entries[$i]["mail"][0].">".$entries[$i]["mail"][0]."</a></p>";
}
} else {
echo "<p>Geen resultaten gevonden!</p>";
}
ldap_unbind($ad);
//}
?>
</div>
</html>
Ik hoop uiteraard op bruikbare tips!
Misschien kan er ook iets met als er geen telefoon nummer is, laat dan niks zien.. (ik ben echt een php noob dus geen idee hoe zoiets werkt)
Thanks,
John
Er zijn nog geen reacties op dit bericht.