脚本语言新用简易的PHP通讯簿[1]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:


  管理员可以手动建立选单,从LDAP服务器中选择个别部门名单,并且可以选取多笔收件人和副本、密件副本,并且使用预设邮件客户端寄出。
  
  共有三个档案:
  
  ldap.html 纯粹的框架档。
  ldap.php 使用选单,经由php 来取得邮件地址,并建立javascript选单。
  select.html 从ldap.php 获取选择项目,并建立一个连结,让邮件客户端取用。
  
  剪剪贴贴来的。由于部份程序代码来自 Squirrel Mail,本程序为 GPL。功力不佳,请高手好好修改一番吧。 icon_redface.gif
  
  ldap.html(不需修改)
  
  代码:
  
  <html>
  <head><title>Java Script LDAP Addressbook</title></head>
  <frameset rows="*,130">
  <frame alt="脚本语言新用简易的PHP通讯簿" src=http://www.chinaitlab.com/www/news/ldap.php name="fr1">
  <frame alt="脚本语言新用简易的PHP通讯簿" src=http://www.chinaitlab.com/www/news/select.html name="fr2">
  </frameset>
  </html>
  ldap.php(请修改ldap服务器连结、部门清单和搜寻基础的部份,以符合您的需求。)
  
  ※特别说明,我们公司的搜寻是以lastname 为基础。并不是以部门区分。请自行修改以符合需求。
  
  代码:
  
  <h3>自由原始码公司通讯簿查询</h3>
  <Script language="javascript">
  
  function to_addr($addr)
  {
  var prefix = "";
  var pwintype = typeof parent.fr2.document.selectaddr;
  
  $addr = $addr.replace(/ {1,35}$/, "");
  
  if (pwintype != "undefined") {
  if (parent.fr2.document.selectaddr.toaddr.value) {
  prefix = ", ";
  parent.fr2.document.selectaddr.toaddr.value =
  parent.fr2.document.selectaddr.toaddr.value + ", " + $addr;
  } else {
  parent.fr2.document.selectaddr.toaddr.value = $addr;
  }
  }
  
  }
  
  function cc_addr($addr)
  {
  var prefix = "";
  var pwintype = typeof parent.fr2.document.selectaddr;
  
  $addr = $addr.replace(/ {1,35}$/, "");
  
  if (pwintype != "undefined") {
  if (parent.fr2.document.selectaddr.ccaddr.value) {
  prefix = ", ";
  parent.fr2.document.selectaddr.ccaddr.value =
  parent.fr2.document.selectaddr.ccaddr.value + ", " + $addr;
  } else {
  parent.fr2.document.selectaddr.ccaddr.value = $addr;
  }
  }
  
  }
  
  function bcc_addr($addr)
  {
  var prefix = "";
  var pwintype = typeof parent.fr2.document.selectaddr;
  
  $addr = $addr.replace(/ {1,35}$/, "");
  
  if (pwintype != "undefined") {
  if (parent.fr2.document.selectaddr.bccaddr.value) {
  prefix = ", ";
  parent.fr2.document.selectaddr.bccaddr.value =
  parent.fr2.document.selectaddr.bccaddr.value + ", " + $addr;
  } else {
  parent.fr2.document.selectaddr.bccaddr.value = $addr;
  }
  }
  
  }
  </Script>
  
  <form method="post" action=ldap.php?$query>
  <SELECT NAME="query" SIZE="1" onChange="submit();">
  
  <OPTION VLAUE="" SELECTED>
  <OPTION VALUE=01*>01研发部
  <OPTION VALUE=02*>02行政部
  <OPTION VALUE=03*>03品保部
  <OPTION VALUE=*>全部列出
  
  </SELECT>
  </form>
  
  <?php
  // basic sequence with LDAP is connect, bind, search, interpret search
  // result, close connection
  
  $ds=ldap_connect("localhost"); // must be a valid LDAP server!
  //echo "connect result is ".$ds."<p>";
  if (empty($query))
  {
  echo "请从下拉式选单中选择欲查询部门";
  }
  else
  {
  if ($ds) {
  // echo "Binding ...";
  $r=ldap_bind($ds); // this is an "anonymous" bind, typically
  // read-only access
  // echo "Bind result is ".$r."<p>";
  
  echo "搜寻 $query .... ";
  // Search surname entry
  $sr=ldap_search($ds,"o=oss, c=tw", "cn=$query");
  // echo "搜寻结果 ".$sr."<p>";
  
  echo "总共 ".ldap_count_entries($ds,$sr)."笔<p>";
  
  echo "取得资料 ...<p>";
  $info = ldap_get_entries($ds, $sr);
  // echo "Data for ".$info["count"]." items returned:<p>";
  
  echo "<table border=black>";
  echo "<th>姓名<th>E-mail<th>收件者<th>副本<th>密件副本";
  for ($i=0; $i<$info["count"]; $i++) {
  echo "<tr><td width=180>" . $info[$i]["cn"][0] . "<td>" . '<a href=mailto:' . $info[$i]["mail"][0].'>'. $info[$i]["mail"][0]."</a>";
  echo "<td>" . '<a href=javascript:to_addr(\' . $info[$i]["mail"][0].'\');>'.'收件者'."</a><br>";

本文关键:脚本语言新用简易的PHP通讯簿
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top