我目前正在开展一个项目,要求我将单个表单字段中的数据发布到脚本中,然后执行以下操作:
这是我到目前为止所得到的:
if(!empty($_POST['data'])) {
$post = $_POST['data'];
$array = explode(" ", $post);
foreach($array as $k=>$v) {
$array[$k] = explode(':', $v);
$username = $array[$k][0];
$password = $array[$k][1];
function IMAP($username, $password) {
$domain_hostname= '{imap.domain.net:993/imap/ssl}INBOX';
$domain_username= $username;
$domain_password= $password;
$imap_inbox = @imap_open($domain_hostname,$domain_username,$domain_password,0,1);
if($imap_inbox == true) {
imap_close($imap_inbox);
$valid = "1";
echo $domain_username. "/" . $domain_password. " is a valid combination.\r\n";
}
else {
$error_array = imap_errors();
$error = $error_array[0];
$error_string = "[AUTHENTICATIONFAILED] Authentication failed.";
$error_string2 = "LOGIN failed";
if (strpos($error, $error_string) !== false) {
$valid = "0";
echo $domain_username. "/" . $domain_password. " is an invalid combination.\r\n";
}
if (strpos($error, $error_string2) !== false) {
$valid = "0";
echo $domain_username. "/" . $domain_password. " is an invalid combination.\r\n";
}
}
}
IMAP($username, $password);
}
}
在我对已发布的字符串进行双重爆炸以删除空格和冒号之后,我最终得到$array[0][0]
和$array[0][1]
形式的数组作为第一对(value1:value2) ,然后$ array [1] [0]和$ array [1] [1]用于第二对(value3:value4),依此类推。
如何对每个2个值进行反复操作,在同一页面的上下文中反复重复某个操作,然后根据响应,为每对编辑相应的文本?< / p>
一旦我运行上面的代码,并且POST包含2组用户名/密码,IMAP服务器只检查第一组,而不是第二个被验证,我得到一个致命的错误说:< / p>
致命错误:无法重新声明IMAP()(之前已声明)
为什么它停止而不是对第二对做同样的事情?
答案 0 :(得分:0)
[AcceptVerbs("DELETE")]
[Route("MicrosoftDynamicsContactFieldMappings({key})")]
public IHttpActionResult Delete([FromUri] int key)
{
}
[AcceptVerbs("PATCH", "MERGE")]
[Route("MicrosoftDynamicsContactFieldMappings({key})")]
public IHttpActionResult Patch([FromODataUri] int key,
Delta<MicrosoftDynamicsContactFieldMapping> item)
{
}
只需编写一个函数来执行您想对该数据执行的任何操作,在爆炸时将它们传递给两个参数并打印函数的输出?
答案 1 :(得分:0)
你不能在foreach
循环中声明你的函数 - php被告知在每次迭代时重新声明相同的函数。
只需在开始时声明该函数,并在循环内多次调用它。
function IMAP($username, $password){
$domain_hostname= '{imap.domain.net:993/imap/ssl}INBOX';
$domain_username= $username;
$domain_password= $password;
$imap_inbox = @imap_open($domain_hostname,$domain_username,$domain_password,0,1);
if($imap_inbox == true){
imap_close($imap_inbox);
$valid = "1";
echo $domain_username. "/" . $domain_password. " is a valid combination.\r\n";
}else{
$error_array = imap_errors();
$error = $error_array[0];
$error_string = "[AUTHENTICATIONFAILED] Authentication failed.";
$error_string2 = "LOGIN failed";
if(strpos($error, $error_string) !== false){
$valid = "0";
echo $domain_username. "/" . $domain_password. " is an invalid combination.\r\n";
}
if(strpos($error, $error_string2) !== false){
$valid = "0";
echo $domain_username. "/" . $domain_password. " is an invalid combination.\r\n";
}
}
}
if(!empty($_POST['data'])){
$post = $_POST['data'];
$array = explode(" ", $post);
foreach($array as $k=>$v){
$array[$k] = explode(':',$v);
$username = $array[$k][0];
$password = $array[$k][1];
IMAP($username, $password);
}
}
这将消除您的错误。