我创建了一个PHP页面,在数据库中查找Constant Contact电子邮件地址,并返回一个表格,列出了它们的名称,电子邮件地址和邮件列表 . 您可以在此处输入地址:联系查找工具以及您的常量联系用户名和密码 .
出于某种原因,只有结果页面的最后一行有一个邮件列表列表 . 其他的有“Array”这个词,我把它剥离了,所以现在这些行都是空白的 . 这是我的意思的屏幕截图:
http://www.advantage-computer.com/images/ScreenCap.png
不过,他们都在列表中 . 这是search.php的代码 . 表单提交到该文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>List of Contacts</title>
<style type="text/css">
.hdr
{
margin-bottom: 0px;
padding-bottom: 0px;
}
</style>
</head>
<body>
<table width="75%">
<tr>
<td class="hdr">Name</td>
<td class="hdr">E-mail address</td>
<td class="hdr">List(s)</td>
</tr>
<tr>
<td colspan="3">
<hr style="padding:0; margin:0">
</td>
</tr>
<?PHP
require_once('./class.cc.php');
/*VARIABLES*/
$cc = new cc($_POST['userName'], $_POST['password']);
if($cc)
{
$strEmails = $_REQUEST['emails'];
$aryEmails = explode("\n", $strEmails);
$page = (isset($_GET['page'])) ? $_GET['page'] : 'lists';
$lists = $cc->get_lists($page);
/*METHODS*/
foreach ($aryEmails as $email)
{
if($lists)
{
foreach($lists as $k => $v)
{
$list = $v['Name'];
$page = (isset($_GET['page'])) ? $_GET['page'] : 'members';
$members = $cc->get_list_members($v['id'], $page);
if($members)
{
foreach($members as $k => $v)
{
if($v['EmailAddress'] == $email)
{
$strLists .= $list . ", ";
}
}
}
}
}
$strLists = str_replace("Array", "", $strLists);
$strLists = substr($strLists, 0, -2);
$contact = $cc->query_contacts(trim($email));
if($contact)
{
$strName = $contact['Name'];
if(is_array($strName))
{
$strName = "";
}
echo
(
"<tr><td>".$strName."</td>".
"<td>".$contact['EmailAddress']."</td>".
"<td>".$strLists."</td></tr>"
);
}
else
{
echo("<tr><td colspan='3'>Could not find {$email}.</td></tr>");
}
}
}
else
{
echo "Invalid user name or password";
}
?>
</table>
</body>
</html>
这是class.cc文件:http://advantage-computer.com/tools/class.cc.txt
2 回答
首先,一旦你匹配了一条记录,你应该突破那个循环,而你没有使用$ k所以我们也可以从循环中删除它,例如:
我还会在那里添加一行来调试$ list变量中的什么,当它是一个数组时:
我会说无论是什么设置“$ _list ['content'] ['ContactList'] ['Name']”在你的 class 中没有正确地做到这一点 .
感谢大家的回复 . 我哥哥发现了这个问题 . 他变了
至
它似乎只匹配文本区域中的最后一行,因为文本区域中剩余的电子邮件数组中仍有回车符 . 他添加了rtrim来删除它们 .