-1

我试图弄清楚如何以这种方式自定义这段 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

}


?>

我想要完成的是:

  1. 连接到 IMAP 服务器。
  2. 检查用户/密码组合是否正确,如果正确,请登录(我已经知道了)。
  3. 如果不是,我只会收到一个 IMAP 错误,指出“登录失败太多”。
  4. 如果是,但我试图从雅虎无法识别的位置登录,也就是说,我以前从未从那里登录过,我会得到同样的错误。
  5. 根据用户/通行证组合是否不正确,或者位置未被识别,将用户重定向到“page1”或“page2”。

imap_last_error 对两种情况都返回相同的错误。但是,两种情况的错误警报 ( imap_alerts ) 是不同的,这是我可以区分它们的地方。

我该如何设置它,以便当它尝试登录并收到包含特定文本字符串的错误通知时,它只会读取该文本字符串(根本不显示错误),并重定向到“1 ”还是“2”?

重定向本身应该不是问题。差异化是让我在这里绊倒的原因。我希望将收到的 IMAP 通知转储到文本文件中(或者,理想情况下,直接读取),并且根据它是否包含“字符串 A”或“字符串 B”,下一个脚本操作将重定向到第 1 页或第 2 页。

IMAP 错误用户/密码组合通知:

注意:未知:[AUTHORIZATIONFAILED] 用户名或密码不正确。

IMAP 未知位置通知:

注意:未知:[AUTHORIZATIONFAILED] 请在https://login.yahoo.com验证您的帐户。

4

1 回答 1

-1

阻止错误在使用后在您的情况下@imap_open在函数之前显示 use @

imap_errors();
imap_alerts();

得到错误例如:

$errors = imap_errors();
for ($i=0; $i<count($errors); $i++) {
   echo "{$errors[$i]} <BR>\n";
}
于 2013-10-09T09:28:09.343 回答