Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP脚本中轮换不同的用户_Php_Sorting - Fatal编程技术网

如何在PHP脚本中轮换不同的用户

如何在PHP脚本中轮换不同的用户,php,sorting,Php,Sorting,好的,我有一个问题,我正在努力解决。我有5个用户,我需要发送电子邮件给一个接一个。因此,如果我只是给John发了一封电子邮件,那么下次调用脚本时,我需要给Joe发一封电子邮件 John Joe Ashley Brandon Bill 我试图解决的问题是,我如何知道下一个要发送给谁。我要求我采用表单字段并创建一个.txt。这一部分并不难,但我如何知道下一个用户是谁呢。我在考虑某种计数器,但我真的不知道最好的方法是什么…所以你有一个发送电子邮件的脚本。有一个HTML表单,用户填写后提交使用该脚本

好的,我有一个问题,我正在努力解决。我有5个用户,我需要发送电子邮件给一个接一个。因此,如果我只是给John发了一封电子邮件,那么下次调用脚本时,我需要给Joe发一封电子邮件

John
Joe
Ashley
Brandon
Bill

我试图解决的问题是,我如何知道下一个要发送给谁。我要求我采用表单字段并创建一个.txt。这一部分并不难,但我如何知道下一个用户是谁呢。我在考虑某种计数器,但我真的不知道最好的方法是什么…

所以你有一个发送电子邮件的脚本。有一个HTML表单,用户填写后提交使用该脚本

从一个提交到另一个提交之间没有关系,因此您必须建立关系以进行循环

换句话说,在后端、数据库或平面文件(文本文件)的某个地方,您必须标记上次发送电子邮件的人


这有意义吗?

为什么不直接查询数据库(获取列表)并通过userse发送电子邮件到

比如:

$users = array('john' => 'john@email.com', 'Joe' => 'joe@email.com');

foreach($users as $name => $email){
  email_user($name, $email, $subject, $message); 
    // email_user is just a made up email function.
}

如果将所有信息放在.txt文件中,可以在用户名后面添加类似“| sent”的内容。这样,您就可以(在使用explode()之后)看到哪个用户已经收到了邮件


此外,如果您告诉我们更多关于您实际要做的事情,我们可以给出更好的答案。

您需要将关于下一个用户的数据存储在某种持久性存储中,如数据库或文件

使用文件:

$users = array( "John", "Joe", "Ashley", "Brandon", "Bill" );

$next_user_index = file_get_contents( "next-user" );

$user_to_send_to = $users[ $next_user_index ];

file_put_contents( "next-user", ( $user_to_send_to + 1 ) % count( $users ) );

一旦您说脚本将一次向一个用户发送邮件。然后你说表单负责发送给所有人。清楚你的程序将做什么。一个或多个?我需要向下一个用户发送一封电子邮件(一次发送一封电子邮件)…不完全是hey@mat这是做什么的..下一个用户是文件吗?是的,下一个用户将是与运行脚本位于同一目录中的文件。这不是一个放置文件的好地方,只是为了举例而已!文件的内容将是一个数字,表示您将在用户列表中查找下一个用户的位置。最后一件事($user_to_send_to+1)输出总是1对不起,您是对的。它应该是$next_user_index+1。这种方法的唯一问题是,当我现在只发送一个脚本时,它会同时发送所有的用户,下次调用脚本时,我需要从一个持久位置查找下一个用户。您可以在数据库/文本文件中轻松设置标志以跟踪用户(我建议使用db,因为它简化了流程)。这很有意义……我使用的是不同答案的组合