我试图弄清楚如何以这种方式自定义这段 PHP 代码,以便我可以根据收到的 PHP 错误通知设置两个特定条件。
<?php
/* connect to yahoo */
$hostname = '{imap.mail.yahoo.com:993/imap/ssl}INBOX';
$username = 'user@yahoo.com';
$password = 'password';
$alerts = imap_alerts()
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to yahoo: ' . $alerts);
if ( $inbox === false ) {
exit ("Can't connect: " . imap_last_error() ."\n");
}
else
{
echo"Logined:";
//do stuff
}
?>
我想要完成的是:
- 连接到 IMAP 服务器。
- 检查用户/密码组合是否正确,如果正确,请登录(我已经知道了)。
- 如果不是,我只会收到一个 IMAP 错误,指出“登录失败太多”。
- 如果是,但我试图从雅虎无法识别的位置登录,也就是说,我以前从未从那里登录过,我会得到同样的错误。
- 根据用户/通行证组合是否不正确,或者位置未被识别,将用户重定向到“page1”或“page2”。
imap_last_error 对两种情况都返回相同的错误。但是,两种情况的错误警报 ( imap_alerts ) 是不同的,这是我可以区分它们的地方。
我该如何设置它,以便当它尝试登录并收到包含特定文本字符串的错误通知时,它只会读取该文本字符串(根本不显示错误),并重定向到“1 ”还是“2”?
重定向本身应该不是问题。差异化是让我在这里绊倒的原因。我希望将收到的 IMAP 通知转储到文本文件中(或者,理想情况下,直接读取),并且根据它是否包含“字符串 A”或“字符串 B”,下一个脚本操作将重定向到第 1 页或第 2 页。
IMAP 错误用户/密码组合通知:
注意:未知:[AUTHORIZATIONFAILED] 用户名或密码不正确。
IMAP 未知位置通知:
注意:未知:[AUTHORIZATIONFAILED] 请在https://login.yahoo.com验证您的帐户。