PHP Ausgabe eines Suchergenisses

tammyTUX

Lt. Junior Grade
Registriert
Sep. 2002
Beiträge
345
Hallo Forum,

ich sehe gerade den Wald for lauter Bäumen (bzw. vor lauter geschweifter Klammern) nicht mehr.
Ich habe ein kleines Script erstellt, welches aus einer Datenbank Daten heraussucht.
Man hat ein Eingabeformular, wo man z.B. den Namen eingibt und einen Button. Sobald man den Button drückt, wird die Suche ausgefüht. Soweit funktioniert das auch, aber ich sehe keine Ausgabe. Ich glaube, ich hab da was vergessen, finde den Fehler aber nicht.
Kann mir da jemand weiterhelfen?

PHP:
<?php


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function setFocus() {document.suchformular.suchbegriff.focus();}
</script>


<style type="text/css">
<!--
a:active     { font-family: Verdana; font-size: 8pt; color: #800000; text-decoration: none}

a:hover      { font-family: Verdana; font-size: 8pt; color: #800000; text-decoration: 
               overline underline }               
a:link       { font-family: Verdana; font-size: 8pt; text-decoration: none; color: #800000 }
a:visited    { font-family: Verdana; font-size: 8pt; text-decoration: none; color: #800000 }
a:visited:hover    { font-family: Verdana; font-size: 8pt; text-decoration: overline underline; color: #800000 }
body         { font-family: Verdana; font-size: 8pt }
html         { font-family: Verdana; font-size: 8pt }
table        { font-family: Verdana; font-size: 8pt }
option       { font-family: Verdana; font-size: 8pt }
input        { font-family: Verdana; font-size: 8pt }
textarea     { font-family: Verdana; font-size: 8pt }
-->
</style>
<title>Telefonbuch</title></head>

<body onLoad="setFocus()" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0"> 

<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td align="center" valign="top">
		<table border="0" width="760" id="table2" cellspacing="0" cellpadding="0">

			<tr>
				<td align="center">
[IMG Telefonbuch Platzhalter]<br />
<form method="GET" action="<?php echo $PHP_SELF; ?>" name="suchformular">
<table width="400" border="0">
  <tr>
    <td align="center" valign="middle"><input type="text" name="suchbegriff" size="30" value="Suchbegriff" onBlur="if(this.value=='') this.value='Suchbegriff';" onFocus="if(this.value=='Suchbegriff') this.value='';" style="padding:5px;border:2px solid #009900;background:#FFFFCC;text-align:center;border-radius:10px;-moz-border-radius:10px;"><br /><input type="submit" style="margin-top:5px;padding:2px;border:2px solid #009900;background:#FFFFCC;color:#009900;border-radius:10px;-moz-border-radius:10px;" value="Suchen" name="aktion"></td>
    <td valign="top"><p><strong>Suchoptionen:</strong><br />
      <input type="radio" value="nachname" name="optionen">Nachname<br />
      <input type="radio" value="vorname" name="optionen">Vorname<br />
      <input type="radio" value="firma" name="optionen">Firma<br />
      <input type="radio" value="durchwahl" name="optionen">Durchwahl<br />
      <input type="radio" value="allefelder" name="optionen" checked>in allen Feldern</p></td>
  </tr>
</table></form>
				
				</td>
			</tr>
			

<?php


if ($optionen)
{

	if ($optionen == "allefelder")
	{
		$filter = "(|(sn=$suchbegriff*)(givenname=$suchbegriff*)(physicaldeliveryofficename=$suchbegriff*)(telephonenumber=$suchbegriff*))";
		if (!$sort_by){$sort_by = "sn";}
	}
	
	elseif ($optionen == "vorname")
	{
		$filter = "(givenname=$suchbegriff*)";
		if (!$sort_by){$sort_by = "cn";}
	}
	
	elseif ($optionen == "nachname")
	{
		$filter = "(sn=$suchbegriff*)";
		if (!$sort_by){$sort_by = "cn";}
	}

	elseif ($optionen == "durchwahl")
	{
		$filter = "(telephonenumber=$suchbegriff*)";
		if (!$sort_by){$sort_by = "telephonenumber";}
	}
		
	elseif ($optionen == "firma")
	{
		$filter = "(physicaldeliveryofficename=*$suchbegriff*)";
		if (!$sort_by){$sort_by = "physicaldeliveryofficename";}
	}

	$get_this=array("cn", "telephonenumber", "physicaldeliveryofficename", "description", "mail", "givenname", "sn");
	
	$ad = ldap_connect("dc1")
	         or exit("&raquo; Konnte nicht mit dem LDAP-Server verbinden &laquo;");
	
	ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
	
	ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);
	
	$bd = ldap_bind($ad,"searchuser","password")
	     or exit("&raquo; Bindung mit LDAP-Server fehlgeschlagen &laquo;");
	
	$result = ldap_search($bd, "OU=User,DC=firma,DC=local", "(CN=*)")
	     or exit("&raquo; Konnte den LDAP-Searchstring nicht finden &laquo;");
	
	
	$entries = ldap_get_entries($bd, $result);
  

  
        		
	echo "<tr>";
	echo "<td align=\"center\">";
	echo "<p align=\"left\">";

	if ($entries["count"] == 1)
	{
		echo $entries["count"]." Eintrag wurde anhand Ihrer Eingaben \"$suchbegriff\" gefunden.<br /><br />";
	}else{
		echo $entries["count"]." Eintr&auml;ge wurden anhange Ihrer Eingaben \"$suchbegriff\" gefunden.<br /><br />";
	}

?>


</td>
			</tr>
			<tr>
				<td align="center">


<table border="1" width="100%" id="table4" bordercolorlight="#FFFFFF">
	<tr>
		<td width="13%" bgcolor="#000080"><a style="color: #FFFFFF" href="<?php echo "$PHP_SELF?optionen=$optionen&suchbegriff=$suchbegriff&sort_by=sn"; ?>"><b>Nachname <? if ($sort_by == "sn" || $sort_by == "cn"){echo "&raquo;"; } ?></b></a></td>
		<td width="13%" bgcolor="#000080"><a style="color: #FFFFFF" href="<?php echo "$PHP_SELF?optionen=$optionen&suchbegriff=$suchbegriff&sort_by=givenname"; ?>"><b>Vorname <? if ($sort_by == "givenname"){echo "&raquo;"; } ?></b></a></td>
		<td width="30%" bgcolor="#000080"><a style="color: #FFFFFF" href="<?php echo "$PHP_SELF?optionen=$optionen&suchbegriff=$suchbegriff&sort_by=physicaldeliveryofficename"; ?>"><b>B&uuml;ro <? if ($sort_by == "physicaldeliveryofficename"){echo "&raquo;"; } ?></b></a></td>
		<td width="22%" bgcolor="#000080"><a style="color: #FFFFFF" href="<?php echo "$PHP_SELF?optionen=$optionen&suchbegriff=$suchbegriff&sort_by=description"; ?>"><b>Position <? if ($sort_by == "description"){echo "&raquo;"; } ?></b></a></td>
		<td width="22%" bgcolor="#000080"><a style="color: #FFFFFF" href="<?php echo "$PHP_SELF?optionen=$optionen&suchbegriff=$suchbegriff&sort_by=telephonenumber"; ?>"><b>Durchwahl <? if ($sort_by == "telephonenumber"){echo "&raquo;"; } ?></b></a></td>
	</tr>
	
<?php
for ($a=0; $a<$entries["count"]; $a++)
{
		if ($a % 2 == 0)
		{
			$color = "#FFFFCC";
		}else{
			$color = "#FFFFFF";
		}
		$email = $entries[$a]["mail"][0];
		echo "<tr>";
		echo "<td bgcolor=\"$color\" width=\"13%\"><a href=\"mailto:$email\" title=\"E-Mail an ".$entries[$a]["givenname"][0]." ".$entries[$a]["sn"][0]."\"><b>".$entries[$a]["sn"][0]."</b></a>&nbsp;</td>";
		echo "<td bgcolor=\"$color\" width=\"13%\"><a href=\"mailto:$email\" title=\"E-Mail an ".$entries[$a]["givenname"][0]." ".$entries[$a]["sn"][0]."\"><b>".$entries[$a]["givenname"][0]."</b></a>&nbsp;</td>";
		echo "<td bgcolor=\"$color\" width=\"30%\">".$entries[$a]["physicaldeliveryofficename"][0]."&nbsp;</td>";
		echo "<td bgcolor=\"$color\" width=\"22%\">".$entries[$a]["description"][0]."&nbsp;</td>";
		echo "<td bgcolor=\"$color\" width=\"22%\">".$entries[$a]["telephonenumber"][0]."&nbsp;</td>";
		echo "</tr>";
}
ldap_unbind($ad);
}

echo "</table>";
?>				
				</td>
			</tr>
		</table>
		</td>
	</tr>
</table>

</body>

</html>
 
ist $optionen überhaupt gesetzt?

egal ob gesetzt oder nicht:
man sollte register_globals auf off haben, damit nicht jede POST, GET, REQUEST etc. auf eine variable direkt gemappt wird (in diesem fall $_GET[optionen] auf $optionen).

ergo anstatt $optionen besser $_GET[optionen] verwenden.
 
Zuletzt bearbeitet:
Zurück
Oben